Loading services/tests/servicestests/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ LOCAL_SRC_FILES += $(call all-java-files-under, test-apps/SuspendTestApp/src) LOCAL_JAVA_LIBRARIES := \ android.hidl.manager-V1.0-java \ android.hardware.tv.cec-V1.0-java \ android.test.mock \ android.test.base android.test.runner \ Loading services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java 0 → 100644 +113 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.hdmi; import android.hardware.hdmi.HdmiPortInfo; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.MessageQueue; import com.android.server.hdmi.HdmiCecController.NativeWrapper; /** Fake {@link NativeWrapper} useful for testing. */ final class FakeNativeWrapper implements NativeWrapper { private final int[] mPollAddressResponse = new int[] { SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, }; private HdmiCecMessage mResultMessage; @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand( long controllerPtr, int srcAddress, int dstAddress, byte[] body) { if (body.length == 0) { return mPollAddressResponse[dstAddress]; } else { mResultMessage = HdmiCecMessageBuilder.of(srcAddress, dstAddress, body); } return SendMessageResult.SUCCESS; } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) {} @Override public int nativeGetPhysicalAddress(long controllerPtr) { return 0; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[1]; hdmiPortInfo[0] = new HdmiPortInfo(1, 1, 0x1000, true, true, true); return hdmiPortInfo; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) {} @Override public void nativeSetLanguage(long controllerPtr, String language) {} @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) {} @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } public HdmiCecMessage getResultMessage() { return mResultMessage; } public void setPollAddressResponse(int logicalAddress, int response) { mPollAddressResponse[logicalAddress] = response; } } services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java +16 −94 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.hdmi; import android.content.Context; import android.hardware.hdmi.HdmiPortInfo; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.Looper; import android.os.MessageQueue; import android.os.test.TestLooper; Loading Loading @@ -48,69 +49,7 @@ import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class HdmiCecControllerTest { private static final class NativeWrapperImpl implements NativeWrapper { @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand(long controllerPtr, int srcAddress, int dstAddress, byte[] body) { return mOccupied[srcAddress] ? 0 : 1; } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) { } @Override public int nativeGetPhysicalAddress(long controllerPtr) { return 0; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { return new HdmiPortInfo[0]; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) { } @Override public void nativeSetLanguage(long controllerPtr, String language) { } @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) { } @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } } private FakeNativeWrapper mNativeWrapper; private class MyHdmiControlService extends HdmiControlService { Loading @@ -129,10 +68,8 @@ public class HdmiCecControllerTest { } } private static final String TAG = HdmiCecControllerTest.class.getSimpleName(); private HdmiControlService mHdmiControlService; private HdmiCecController mHdmiCecController; private static boolean[] mOccupied = new boolean[15]; private int mLogicalAddress = 16; private AllocateAddressCallback mCallback = new AllocateAddressCallback() { @Override Loading @@ -148,8 +85,9 @@ public class HdmiCecControllerTest { mMyLooper = mTestLooper.getLooper(); mMyLooper = mTestLooper.getLooper(); mHdmiControlService = new MyHdmiControlService(null); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, new NativeWrapperImpl()); mHdmiControlService, mNativeWrapper); } /** Loading @@ -157,8 +95,6 @@ public class HdmiCecControllerTest { */ @Test public void testAllocatLogicalAddress_TvDevicePreferredNotOcupied() { mOccupied[ADDR_TV] = false; mOccupied[ADDR_SPECIFIC_USE] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_TV, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_TV, mLogicalAddress); Loading @@ -166,8 +102,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_TvDeviceNonPreferredNotOcupied() { mOccupied[ADDR_TV] = false; mOccupied[ADDR_SPECIFIC_USE] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_TV, mLogicalAddress); Loading @@ -175,8 +110,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_TvDeviceNonPreferredFirstOcupied() { mOccupied[ADDR_TV] = true; mOccupied[ADDR_SPECIFIC_USE] = false; mNativeWrapper.setPollAddressResponse(ADDR_TV, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_SPECIFIC_USE, mLogicalAddress); Loading @@ -184,8 +118,8 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_TvDeviceNonPreferredAllOcupied() { mOccupied[ADDR_TV] = true; mOccupied[ADDR_SPECIFIC_USE] = true; mNativeWrapper.setPollAddressResponse(ADDR_TV, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_SPECIFIC_USE, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_UNREGISTERED, mLogicalAddress); Loading @@ -193,7 +127,6 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_AudioSystemNonPreferredNotOcupied() { mOccupied[ADDR_AUDIO_SYSTEM] = false; mHdmiCecController.allocateLogicalAddress( DEVICE_AUDIO_SYSTEM, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); Loading @@ -202,7 +135,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_AudioSystemNonPreferredAllOcupied() { mOccupied[ADDR_AUDIO_SYSTEM] = true; mNativeWrapper.setPollAddressResponse(ADDR_AUDIO_SYSTEM, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress( DEVICE_AUDIO_SYSTEM, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); Loading @@ -211,9 +144,6 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackPreferredNotOccupied() { mOccupied[ADDR_PLAYBACK_1] = false; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_1, mLogicalAddress); Loading @@ -221,9 +151,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackPreferredOcuppied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress( DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mTestLooper.dispatchAll(); Loading @@ -232,9 +160,6 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNoPreferredNotOcuppied() { mOccupied[ADDR_PLAYBACK_1] = false; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_1, mLogicalAddress); Loading @@ -242,9 +167,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNoPreferredFirstOcuppied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_2, mLogicalAddress); Loading @@ -252,9 +175,8 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNonPreferredFirstTwoOcuppied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = true; mOccupied[ADDR_PLAYBACK_3] = false; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_2, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_3, mLogicalAddress); Loading @@ -262,9 +184,9 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNonPreferredAllOcupied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = true; mOccupied[ADDR_PLAYBACK_3] = true; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_2, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_3, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_UNREGISTERED, mLogicalAddress); Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +3 −81 Original line number Diff line number Diff line Loading @@ -23,14 +23,11 @@ import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.assertEquals; import android.hardware.hdmi.HdmiPortInfo; import android.media.AudioManager; import android.os.Looper; import android.os.MessageQueue; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecController.NativeWrapper; import java.util.Arrays; import java.util.ArrayList; import org.junit.Before; import org.junit.Test; Loading @@ -44,85 +41,10 @@ import org.junit.runners.JUnit4; */ public class HdmiCecLocalDeviceAudioSystemTest { private static final class NativeWrapperImpl implements NativeWrapper { private HdmiCecMessage mResultMessage; @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand(long controllerPtr, int srcAddress, int dstAddress, byte[] body) { if (body.length != 0) { mResultMessage = HdmiCecMessageBuilder.of(srcAddress, dstAddress, body); } return 1; } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) { } @Override public int nativeGetPhysicalAddress(long controllerPtr) { return 0; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[1]; hdmiPortInfo[0] = new HdmiPortInfo(1, 1, 0x1000,true, true, true); return hdmiPortInfo; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) { } @Override public void nativeSetLanguage(long controllerPtr, String language) { } @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) { } @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } public HdmiCecMessage getResultMessage() { return mResultMessage; } } private HdmiControlService mHdmiControlService; private HdmiCecController mHdmiCecController; private HdmiCecLocalDeviceAudioSystem mHdmiCecLocalDeviceAudioSystem; private NativeWrapperImpl mNativeWrapper; private FakeNativeWrapper mNativeWrapper; private Looper mMyLooper; private TestLooper mTestLooper = new TestLooper(); private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>(); Loading Loading @@ -186,7 +108,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiCecLocalDeviceAudioSystem.init(); mHdmiControlService.setIoLooper(mMyLooper); mNativeWrapper = new NativeWrapperImpl(); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, mNativeWrapper); mHdmiControlService.setCecController(mHdmiCecController); Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTest.java +1 −64 Original line number Diff line number Diff line Loading @@ -44,69 +44,6 @@ import org.junit.runners.JUnit4; */ public class HdmiCecLocalDeviceTest { private static final class NativeWrapperImpl implements NativeWrapper { @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand(long controllerPtr, int srcAddress, int dstAddress, byte[] body) { return SendCecCommandFactory(srcAddress, dstAddress, body); } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) { } @Override public int nativeGetPhysicalAddress(long controllerPtr) { return mPhysicalAddr; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { return new HdmiPortInfo[0]; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) { } @Override public void nativeSetLanguage(long controllerPtr, String language) { } @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) { } @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } } private static int SendCecCommandFactory(int srcAddress, int dstAddress, byte[] body) { switch(body[0] & 0xFF) { Loading Loading @@ -160,7 +97,7 @@ public class HdmiCecLocalDeviceTest { mHdmiControlService = new HdmiControlService(null); mHdmiControlService.setIoLooper(mTestLooper.getLooper()); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, new NativeWrapperImpl()); mHdmiControlService, new FakeNativeWrapper()); mHdmiControlService.setCecController(mHdmiCecController); mHdmiLocalDevice = new MyHdmiCecLocalDevice( mHdmiControlService, DEVICE_TV); Loading Loading
services/tests/servicestests/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ LOCAL_SRC_FILES += $(call all-java-files-under, test-apps/SuspendTestApp/src) LOCAL_JAVA_LIBRARIES := \ android.hidl.manager-V1.0-java \ android.hardware.tv.cec-V1.0-java \ android.test.mock \ android.test.base android.test.runner \ Loading
services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java 0 → 100644 +113 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.server.hdmi; import android.hardware.hdmi.HdmiPortInfo; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.MessageQueue; import com.android.server.hdmi.HdmiCecController.NativeWrapper; /** Fake {@link NativeWrapper} useful for testing. */ final class FakeNativeWrapper implements NativeWrapper { private final int[] mPollAddressResponse = new int[] { SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, SendMessageResult.NACK, }; private HdmiCecMessage mResultMessage; @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand( long controllerPtr, int srcAddress, int dstAddress, byte[] body) { if (body.length == 0) { return mPollAddressResponse[dstAddress]; } else { mResultMessage = HdmiCecMessageBuilder.of(srcAddress, dstAddress, body); } return SendMessageResult.SUCCESS; } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) {} @Override public int nativeGetPhysicalAddress(long controllerPtr) { return 0; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[1]; hdmiPortInfo[0] = new HdmiPortInfo(1, 1, 0x1000, true, true, true); return hdmiPortInfo; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) {} @Override public void nativeSetLanguage(long controllerPtr, String language) {} @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) {} @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } public HdmiCecMessage getResultMessage() { return mResultMessage; } public void setPollAddressResponse(int logicalAddress, int response) { mPollAddressResponse[logicalAddress] = response; } }
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java +16 −94 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.hdmi; import android.content.Context; import android.hardware.hdmi.HdmiPortInfo; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.Looper; import android.os.MessageQueue; import android.os.test.TestLooper; Loading Loading @@ -48,69 +49,7 @@ import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class HdmiCecControllerTest { private static final class NativeWrapperImpl implements NativeWrapper { @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand(long controllerPtr, int srcAddress, int dstAddress, byte[] body) { return mOccupied[srcAddress] ? 0 : 1; } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) { } @Override public int nativeGetPhysicalAddress(long controllerPtr) { return 0; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { return new HdmiPortInfo[0]; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) { } @Override public void nativeSetLanguage(long controllerPtr, String language) { } @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) { } @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } } private FakeNativeWrapper mNativeWrapper; private class MyHdmiControlService extends HdmiControlService { Loading @@ -129,10 +68,8 @@ public class HdmiCecControllerTest { } } private static final String TAG = HdmiCecControllerTest.class.getSimpleName(); private HdmiControlService mHdmiControlService; private HdmiCecController mHdmiCecController; private static boolean[] mOccupied = new boolean[15]; private int mLogicalAddress = 16; private AllocateAddressCallback mCallback = new AllocateAddressCallback() { @Override Loading @@ -148,8 +85,9 @@ public class HdmiCecControllerTest { mMyLooper = mTestLooper.getLooper(); mMyLooper = mTestLooper.getLooper(); mHdmiControlService = new MyHdmiControlService(null); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, new NativeWrapperImpl()); mHdmiControlService, mNativeWrapper); } /** Loading @@ -157,8 +95,6 @@ public class HdmiCecControllerTest { */ @Test public void testAllocatLogicalAddress_TvDevicePreferredNotOcupied() { mOccupied[ADDR_TV] = false; mOccupied[ADDR_SPECIFIC_USE] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_TV, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_TV, mLogicalAddress); Loading @@ -166,8 +102,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_TvDeviceNonPreferredNotOcupied() { mOccupied[ADDR_TV] = false; mOccupied[ADDR_SPECIFIC_USE] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_TV, mLogicalAddress); Loading @@ -175,8 +110,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_TvDeviceNonPreferredFirstOcupied() { mOccupied[ADDR_TV] = true; mOccupied[ADDR_SPECIFIC_USE] = false; mNativeWrapper.setPollAddressResponse(ADDR_TV, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_SPECIFIC_USE, mLogicalAddress); Loading @@ -184,8 +118,8 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_TvDeviceNonPreferredAllOcupied() { mOccupied[ADDR_TV] = true; mOccupied[ADDR_SPECIFIC_USE] = true; mNativeWrapper.setPollAddressResponse(ADDR_TV, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_SPECIFIC_USE, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_UNREGISTERED, mLogicalAddress); Loading @@ -193,7 +127,6 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_AudioSystemNonPreferredNotOcupied() { mOccupied[ADDR_AUDIO_SYSTEM] = false; mHdmiCecController.allocateLogicalAddress( DEVICE_AUDIO_SYSTEM, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); Loading @@ -202,7 +135,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_AudioSystemNonPreferredAllOcupied() { mOccupied[ADDR_AUDIO_SYSTEM] = true; mNativeWrapper.setPollAddressResponse(ADDR_AUDIO_SYSTEM, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress( DEVICE_AUDIO_SYSTEM, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); Loading @@ -211,9 +144,6 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackPreferredNotOccupied() { mOccupied[ADDR_PLAYBACK_1] = false; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_1, mLogicalAddress); Loading @@ -221,9 +151,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackPreferredOcuppied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress( DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mTestLooper.dispatchAll(); Loading @@ -232,9 +160,6 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNoPreferredNotOcuppied() { mOccupied[ADDR_PLAYBACK_1] = false; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_1, mLogicalAddress); Loading @@ -242,9 +167,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNoPreferredFirstOcuppied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = false; mOccupied[ADDR_PLAYBACK_3] = false; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_2, mLogicalAddress); Loading @@ -252,9 +175,8 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNonPreferredFirstTwoOcuppied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = true; mOccupied[ADDR_PLAYBACK_3] = false; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_2, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_3, mLogicalAddress); Loading @@ -262,9 +184,9 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackNonPreferredAllOcupied() { mOccupied[ADDR_PLAYBACK_1] = true; mOccupied[ADDR_PLAYBACK_2] = true; mOccupied[ADDR_PLAYBACK_3] = true; mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_2, SendMessageResult.SUCCESS); mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_3, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_UNREGISTERED, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_UNREGISTERED, mLogicalAddress); Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +3 −81 Original line number Diff line number Diff line Loading @@ -23,14 +23,11 @@ import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.assertEquals; import android.hardware.hdmi.HdmiPortInfo; import android.media.AudioManager; import android.os.Looper; import android.os.MessageQueue; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecController.NativeWrapper; import java.util.Arrays; import java.util.ArrayList; import org.junit.Before; import org.junit.Test; Loading @@ -44,85 +41,10 @@ import org.junit.runners.JUnit4; */ public class HdmiCecLocalDeviceAudioSystemTest { private static final class NativeWrapperImpl implements NativeWrapper { private HdmiCecMessage mResultMessage; @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand(long controllerPtr, int srcAddress, int dstAddress, byte[] body) { if (body.length != 0) { mResultMessage = HdmiCecMessageBuilder.of(srcAddress, dstAddress, body); } return 1; } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) { } @Override public int nativeGetPhysicalAddress(long controllerPtr) { return 0; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { HdmiPortInfo[] hdmiPortInfo = new HdmiPortInfo[1]; hdmiPortInfo[0] = new HdmiPortInfo(1, 1, 0x1000,true, true, true); return hdmiPortInfo; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) { } @Override public void nativeSetLanguage(long controllerPtr, String language) { } @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) { } @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } public HdmiCecMessage getResultMessage() { return mResultMessage; } } private HdmiControlService mHdmiControlService; private HdmiCecController mHdmiCecController; private HdmiCecLocalDeviceAudioSystem mHdmiCecLocalDeviceAudioSystem; private NativeWrapperImpl mNativeWrapper; private FakeNativeWrapper mNativeWrapper; private Looper mMyLooper; private TestLooper mTestLooper = new TestLooper(); private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>(); Loading Loading @@ -186,7 +108,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiCecLocalDeviceAudioSystem.init(); mHdmiControlService.setIoLooper(mMyLooper); mNativeWrapper = new NativeWrapperImpl(); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, mNativeWrapper); mHdmiControlService.setCecController(mHdmiCecController); Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceTest.java +1 −64 Original line number Diff line number Diff line Loading @@ -44,69 +44,6 @@ import org.junit.runners.JUnit4; */ public class HdmiCecLocalDeviceTest { private static final class NativeWrapperImpl implements NativeWrapper { @Override public long nativeInit(HdmiCecController handler, MessageQueue messageQueue) { return 1L; } @Override public int nativeSendCecCommand(long controllerPtr, int srcAddress, int dstAddress, byte[] body) { return SendCecCommandFactory(srcAddress, dstAddress, body); } @Override public int nativeAddLogicalAddress(long controllerPtr, int logicalAddress) { return 0; } @Override public void nativeClearLogicalAddress(long controllerPtr) { } @Override public int nativeGetPhysicalAddress(long controllerPtr) { return mPhysicalAddr; } @Override public int nativeGetVersion(long controllerPtr) { return 0; } @Override public int nativeGetVendorId(long controllerPtr) { return 0; } @Override public HdmiPortInfo[] nativeGetPortInfos(long controllerPtr) { return new HdmiPortInfo[0]; } @Override public void nativeSetOption(long controllerPtr, int flag, boolean enabled) { } @Override public void nativeSetLanguage(long controllerPtr, String language) { } @Override public void nativeEnableAudioReturnChannel(long controllerPtr, int port, boolean flag) { } @Override public boolean nativeIsConnected(long controllerPtr, int port) { return false; } } private static int SendCecCommandFactory(int srcAddress, int dstAddress, byte[] body) { switch(body[0] & 0xFF) { Loading Loading @@ -160,7 +97,7 @@ public class HdmiCecLocalDeviceTest { mHdmiControlService = new HdmiControlService(null); mHdmiControlService.setIoLooper(mTestLooper.getLooper()); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, new NativeWrapperImpl()); mHdmiControlService, new FakeNativeWrapper()); mHdmiControlService.setCecController(mHdmiCecController); mHdmiLocalDevice = new MyHdmiCecLocalDevice( mHdmiControlService, DEVICE_TV); Loading