Loading services/tests/servicestests/src/com/android/server/hdmi/ArcTerminationActionFromAvrTest.java +52 −51 Original line number Diff line number Diff line Loading @@ -28,9 +28,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link ArcTerminationActionFromAvr} */ /** Tests for {@link ArcTerminationActionFromAvr} */ @SmallTest @RunWith(JUnit4.class) public class ArcTerminationActionFromAvrTest { Loading @@ -49,15 +47,18 @@ public class ArcTerminationActionFromAvrTest { public void setUp() { mDeviceInfoForTests = new HdmiDeviceInfo(1000, 1); HdmiControlService hdmiControlService = new HdmiControlService(null) { HdmiControlService hdmiControlService = new HdmiControlService(null) { @Override void sendCecCommand(HdmiCecMessage command, @Nullable SendMessageCallback callback) { void sendCecCommand( HdmiCecMessage command, @Nullable SendMessageCallback callback) { switch (command.getOpcode()) { case Constants.MESSAGE_TERMINATE_ARC: if (callback != null) { callback.onSendCompleted(mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); callback.onSendCompleted( mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); } if (mShouldDispatchReportArcTerminated) { mHdmiCecLocalDeviceAudioSystem.dispatchMessage( Loading services/tests/servicestests/src/com/android/server/hdmi/DetectTvSystemAudioModeSupportActionTest.java +47 −46 Original line number Diff line number Diff line Loading @@ -23,16 +23,13 @@ import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecLocalDeviceAudioSystem.TvSystemAudioModeSupportedCallback; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link DetectTvSystemAudioModeSupportAction} class. */ /** Tests for {@link DetectTvSystemAudioModeSupportAction} class. */ @SmallTest @RunWith(JUnit4.class) public class DetectTvSystemAudioModeSupportActionTest { Loading @@ -49,16 +46,19 @@ public class DetectTvSystemAudioModeSupportActionTest { @Before public void SetUp() { mDeviceInfoForTests = new HdmiDeviceInfo(1001, 1234); HdmiControlService hdmiControlService = new HdmiControlService(null) { HdmiControlService hdmiControlService = new HdmiControlService(null) { @Override void sendCecCommand(HdmiCecMessage command, @Nullable SendMessageCallback callback) { void sendCecCommand( HdmiCecMessage command, @Nullable SendMessageCallback callback) { switch (command.getOpcode()) { case Constants.MESSAGE_SET_SYSTEM_AUDIO_MODE: if (callback != null) { callback.onSendCompleted(mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); callback.onSendCompleted( mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); } if (mShouldDispatchFeatureAbort) { mHdmiCecLocalDeviceAudioSystem.dispatchMessage( Loading Loading @@ -100,7 +100,8 @@ public class DetectTvSystemAudioModeSupportActionTest { Looper looper = mTestLooper.getLooper(); hdmiControlService.setIoLooper(looper); mAction = new DetectTvSystemAudioModeSupportAction( mAction = new DetectTvSystemAudioModeSupportAction( mHdmiCecLocalDeviceAudioSystem, new TvSystemAudioModeSupportedCallback() { public void onResult(boolean supported) { Loading services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java +1 −1 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ 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.internal.annotations.VisibleForTesting; import com.android.server.hdmi.HdmiCecController.NativeWrapper; import java.util.ArrayList; import java.util.List; import com.android.internal.annotations.VisibleForTesting; /** Fake {@link NativeWrapper} useful for testing. */ final class FakeNativeWrapper implements NativeWrapper { Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java +21 −29 Original line number Diff line number Diff line Loading @@ -15,17 +15,6 @@ */ 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; import android.support.test.filters.SmallTest; import android.util.Log; import com.android.server.hdmi.HdmiCecController.AllocateAddressCallback; import com.android.server.hdmi.HdmiCecController.NativeWrapper; import static android.hardware.hdmi.HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM; import static android.hardware.hdmi.HdmiDeviceInfo.DEVICE_PLAYBACK; import static android.hardware.hdmi.HdmiDeviceInfo.DEVICE_TV; Loading @@ -37,14 +26,19 @@ import static com.android.server.hdmi.Constants.ADDR_SPECIFIC_USE; import static com.android.server.hdmi.Constants.ADDR_TV; import static com.android.server.hdmi.Constants.ADDR_UNREGISTERED; import static junit.framework.Assert.assertEquals; import android.content.Context; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecController.AllocateAddressCallback; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link com.android.server.hdmi.HdmiCecController} class. */ /** Tests for {@link com.android.server.hdmi.HdmiCecController} class. */ @SmallTest @RunWith(JUnit4.class) public class HdmiCecControllerTest { Loading @@ -71,7 +65,8 @@ public class HdmiCecControllerTest { private HdmiControlService mHdmiControlService; private HdmiCecController mHdmiCecController; private int mLogicalAddress = 16; private AllocateAddressCallback mCallback = new AllocateAddressCallback() { private AllocateAddressCallback mCallback = new AllocateAddressCallback() { @Override public void onAllocated(int deviceType, int logicalAddress) { mLogicalAddress = logicalAddress; Loading @@ -86,13 +81,11 @@ public class HdmiCecControllerTest { mMyLooper = mTestLooper.getLooper(); mHdmiControlService = new MyHdmiControlService(null); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, mNativeWrapper); mHdmiCecController = HdmiCecController.createWithNativeWrapper(mHdmiControlService, mNativeWrapper); } /** * Tests for {@link HdmiCecController#allocateLogicalAddress} */ /** Tests for {@link HdmiCecController#allocateLogicalAddress} */ @Test public void testAllocatLogicalAddress_TvDevicePreferredNotOcupied() { mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_TV, mCallback); Loading Loading @@ -152,8 +145,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackPreferredOcuppied() { mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress( DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_2, mLogicalAddress); } Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +136 −116 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.media.AudioManager; import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecLocalDevice.ActiveSource; import java.util.ArrayList; import org.junit.Before; Loading @@ -36,9 +35,7 @@ import org.junit.runners.JUnit4; @SmallTest @RunWith(JUnit4.class) /** * Tests for {@link HdmiCecLocalDeviceAudioSystem} class. */ /** Tests for {@link HdmiCecLocalDeviceAudioSystem} class. */ public class HdmiCecLocalDeviceAudioSystemTest { private static final String TAG = "HdmiCecLocalDeviceAudioSystemTest"; Loading @@ -55,7 +52,8 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Before public void SetUp() { mHdmiControlService = new HdmiControlService(null) { mHdmiControlService = new HdmiControlService(null) { @Override AudioManager getAudioManager() { return new AudioManager() { Loading Loading @@ -90,7 +88,8 @@ public class HdmiCecLocalDeviceAudioSystemTest { } @Override public void adjustStreamVolume(int streamType, int direction, int flags) { public void adjustStreamVolume( int streamType, int direction, int flags) { switch (streamType) { case STREAM_MUSIC: if (direction == AudioManager.ADJUST_UNMUTE) { Loading @@ -105,16 +104,15 @@ public class HdmiCecLocalDeviceAudioSystemTest { } @Override void wakeUp() { } void wakeUp() {} }; mMyLooper = mTestLooper.getLooper(); mHdmiCecLocalDeviceAudioSystem = new HdmiCecLocalDeviceAudioSystem(mHdmiControlService); mHdmiCecLocalDeviceAudioSystem.init(); mHdmiControlService.setIoLooper(mMyLooper); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, mNativeWrapper); mHdmiCecController = HdmiCecController.createWithNativeWrapper(mHdmiControlService, mNativeWrapper); mHdmiControlService.setCecController(mHdmiCecController); mHdmiControlService.setHdmiMhlController(HdmiMhlControllerStub.create(mHdmiControlService)); mHdmiControlService.setMessageValidator(new HdmiCecMessageValidator(mHdmiControlService)); Loading @@ -124,73 +122,79 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); } @Test public void handleGiveAudioStatus_volume_10_mute_true() { mMusicVolume = 10; mMusicMute = true; mMusicMaxVolume = 20; int scaledVolume = VolumeControlAction.scaleToCecVolume(10, mMusicMaxVolume); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportAudioStatus( HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportAudioStatus( ADDR_AUDIO_SYSTEM, ADDR_TV, scaledVolume, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus( ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleGiveSystemAudioModeStatus_originalOff() { HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); HdmiCecMessage messageGive = HdmiCecMessageBuilder .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcInitiate() { // TODO(b/80296911): Add tests when finishing handler impl. HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildInitiateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildInitiateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcTermination() { // TODO(b/80297105): Add tests when finishing handler impl. HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildTerminateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildTerminateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder.buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(messageRequestOff)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleSetSystemAudioMode_setOn_orignalOff() { mMusicMute = true; HdmiCecMessage messageSet = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_TV, ADDR_AUDIO_SYSTEM, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageSet = HdmiCecMessageBuilder.buildSetSystemAudioMode(ADDR_TV, ADDR_AUDIO_SYSTEM, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); // Check if originally off HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); // Check if correctly turned on expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)) .isEqualTo(true); mTestLooper.dispatchAll(); Loading @@ -200,28 +204,32 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mMusicMute).isEqualTo(false); } @Test public void handleSystemAudioModeRequest_turnOffByTv() { assertThat(mMusicMute).isEqualTo(false); // Check if feature correctly turned off HdmiCecMessage messageGive = HdmiCecMessageBuilder .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder .buildSystemAudioModeRequest(ADDR_TV, ADDR_AUDIO_SYSTEM, 2, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder.buildSystemAudioModeRequest( ADDR_TV, ADDR_AUDIO_SYSTEM, 2, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSystemAudioModeRequest(messageRequestOff)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mMusicMute).isEqualTo(true); } @Test public void onStandbyAudioSystem_currentSystemAudioControlOn() { // Set system audio control on first Loading @@ -229,77 +237,89 @@ public class HdmiCecLocalDeviceAudioSystemTest { // Check if standby correctly turns off the feature mHdmiCecLocalDeviceAudioSystem.onStandby(false, STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mMusicMute).isEqualTo(true); } @Test public void systemAudioControlOnPowerOn_alwaysOn() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.ALWAYS_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isNotEmpty(); } @Test public void systemAudioControlOnPowerOn_neverOn() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.NEVER_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, false); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isEmpty(); } @Test public void systemAudioControlOnPowerOn_useLastState_off() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, false); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isEmpty(); } @Test public void systemAudioControlOnPowerOn_useLastState_on() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isNotEmpty(); } @Test public void handleActiveSource_updateActiveSource() { HdmiCecMessage message = HdmiCecMessageBuilder .buildActiveSource(ADDR_TV, 0x0000); HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); ActiveSource expectedActiveSource = new ActiveSource(ADDR_TV, 0x0000); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)) .isEqualTo(true); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)).isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActiveSource().equals(expectedActiveSource)) .isEqualTo(true); } @Test public void terminateSystemAudioMode_systemAudioModeOff() { mHdmiCecLocalDeviceAudioSystem.setSystemAudioMode(false); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(false); mMusicMute = false; HdmiCecMessage message = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage message = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); mHdmiCecLocalDeviceAudioSystem.terminateSystemAudioMode(); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(false); assertThat(mMusicMute).isEqualTo(false); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(message); } @Test public void terminateSystemAudioMode_systemAudioModeOn() { mHdmiCecLocalDeviceAudioSystem.setSystemAudioMode(true); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(true); mMusicMute = false; HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); mHdmiCecLocalDeviceAudioSystem.terminateSystemAudioMode(); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(false); assertThat(mMusicMute).isEqualTo(true); Loading Loading
services/tests/servicestests/src/com/android/server/hdmi/ArcTerminationActionFromAvrTest.java +52 −51 Original line number Diff line number Diff line Loading @@ -28,9 +28,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link ArcTerminationActionFromAvr} */ /** Tests for {@link ArcTerminationActionFromAvr} */ @SmallTest @RunWith(JUnit4.class) public class ArcTerminationActionFromAvrTest { Loading @@ -49,15 +47,18 @@ public class ArcTerminationActionFromAvrTest { public void setUp() { mDeviceInfoForTests = new HdmiDeviceInfo(1000, 1); HdmiControlService hdmiControlService = new HdmiControlService(null) { HdmiControlService hdmiControlService = new HdmiControlService(null) { @Override void sendCecCommand(HdmiCecMessage command, @Nullable SendMessageCallback callback) { void sendCecCommand( HdmiCecMessage command, @Nullable SendMessageCallback callback) { switch (command.getOpcode()) { case Constants.MESSAGE_TERMINATE_ARC: if (callback != null) { callback.onSendCompleted(mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); callback.onSendCompleted( mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); } if (mShouldDispatchReportArcTerminated) { mHdmiCecLocalDeviceAudioSystem.dispatchMessage( Loading
services/tests/servicestests/src/com/android/server/hdmi/DetectTvSystemAudioModeSupportActionTest.java +47 −46 Original line number Diff line number Diff line Loading @@ -23,16 +23,13 @@ import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecLocalDeviceAudioSystem.TvSystemAudioModeSupportedCallback; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link DetectTvSystemAudioModeSupportAction} class. */ /** Tests for {@link DetectTvSystemAudioModeSupportAction} class. */ @SmallTest @RunWith(JUnit4.class) public class DetectTvSystemAudioModeSupportActionTest { Loading @@ -49,16 +46,19 @@ public class DetectTvSystemAudioModeSupportActionTest { @Before public void SetUp() { mDeviceInfoForTests = new HdmiDeviceInfo(1001, 1234); HdmiControlService hdmiControlService = new HdmiControlService(null) { HdmiControlService hdmiControlService = new HdmiControlService(null) { @Override void sendCecCommand(HdmiCecMessage command, @Nullable SendMessageCallback callback) { void sendCecCommand( HdmiCecMessage command, @Nullable SendMessageCallback callback) { switch (command.getOpcode()) { case Constants.MESSAGE_SET_SYSTEM_AUDIO_MODE: if (callback != null) { callback.onSendCompleted(mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); callback.onSendCompleted( mSendCecCommandSuccess ? SendMessageResult.SUCCESS : SendMessageResult.NACK); } if (mShouldDispatchFeatureAbort) { mHdmiCecLocalDeviceAudioSystem.dispatchMessage( Loading Loading @@ -100,7 +100,8 @@ public class DetectTvSystemAudioModeSupportActionTest { Looper looper = mTestLooper.getLooper(); hdmiControlService.setIoLooper(looper); mAction = new DetectTvSystemAudioModeSupportAction( mAction = new DetectTvSystemAudioModeSupportAction( mHdmiCecLocalDeviceAudioSystem, new TvSystemAudioModeSupportedCallback() { public void onResult(boolean supported) { Loading
services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java +1 −1 Original line number Diff line number Diff line Loading @@ -18,10 +18,10 @@ 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.internal.annotations.VisibleForTesting; import com.android.server.hdmi.HdmiCecController.NativeWrapper; import java.util.ArrayList; import java.util.List; import com.android.internal.annotations.VisibleForTesting; /** Fake {@link NativeWrapper} useful for testing. */ final class FakeNativeWrapper implements NativeWrapper { Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecControllerTest.java +21 −29 Original line number Diff line number Diff line Loading @@ -15,17 +15,6 @@ */ 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; import android.support.test.filters.SmallTest; import android.util.Log; import com.android.server.hdmi.HdmiCecController.AllocateAddressCallback; import com.android.server.hdmi.HdmiCecController.NativeWrapper; import static android.hardware.hdmi.HdmiDeviceInfo.DEVICE_AUDIO_SYSTEM; import static android.hardware.hdmi.HdmiDeviceInfo.DEVICE_PLAYBACK; import static android.hardware.hdmi.HdmiDeviceInfo.DEVICE_TV; Loading @@ -37,14 +26,19 @@ import static com.android.server.hdmi.Constants.ADDR_SPECIFIC_USE; import static com.android.server.hdmi.Constants.ADDR_TV; import static com.android.server.hdmi.Constants.ADDR_UNREGISTERED; import static junit.framework.Assert.assertEquals; import android.content.Context; import android.hardware.tv.cec.V1_0.SendMessageResult; import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecController.AllocateAddressCallback; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for {@link com.android.server.hdmi.HdmiCecController} class. */ /** Tests for {@link com.android.server.hdmi.HdmiCecController} class. */ @SmallTest @RunWith(JUnit4.class) public class HdmiCecControllerTest { Loading @@ -71,7 +65,8 @@ public class HdmiCecControllerTest { private HdmiControlService mHdmiControlService; private HdmiCecController mHdmiCecController; private int mLogicalAddress = 16; private AllocateAddressCallback mCallback = new AllocateAddressCallback() { private AllocateAddressCallback mCallback = new AllocateAddressCallback() { @Override public void onAllocated(int deviceType, int logicalAddress) { mLogicalAddress = logicalAddress; Loading @@ -86,13 +81,11 @@ public class HdmiCecControllerTest { mMyLooper = mTestLooper.getLooper(); mHdmiControlService = new MyHdmiControlService(null); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, mNativeWrapper); mHdmiCecController = HdmiCecController.createWithNativeWrapper(mHdmiControlService, mNativeWrapper); } /** * Tests for {@link HdmiCecController#allocateLogicalAddress} */ /** Tests for {@link HdmiCecController#allocateLogicalAddress} */ @Test public void testAllocatLogicalAddress_TvDevicePreferredNotOcupied() { mHdmiCecController.allocateLogicalAddress(DEVICE_TV, ADDR_TV, mCallback); Loading Loading @@ -152,8 +145,7 @@ public class HdmiCecControllerTest { @Test public void testAllocatLogicalAddress_PlaybackPreferredOcuppied() { mNativeWrapper.setPollAddressResponse(ADDR_PLAYBACK_1, SendMessageResult.SUCCESS); mHdmiCecController.allocateLogicalAddress( DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mHdmiCecController.allocateLogicalAddress(DEVICE_PLAYBACK, ADDR_PLAYBACK_1, mCallback); mTestLooper.dispatchAll(); assertEquals(ADDR_PLAYBACK_2, mLogicalAddress); } Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +136 −116 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.media.AudioManager; import android.os.Looper; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import com.android.server.hdmi.HdmiCecLocalDevice.ActiveSource; import java.util.ArrayList; import org.junit.Before; Loading @@ -36,9 +35,7 @@ import org.junit.runners.JUnit4; @SmallTest @RunWith(JUnit4.class) /** * Tests for {@link HdmiCecLocalDeviceAudioSystem} class. */ /** Tests for {@link HdmiCecLocalDeviceAudioSystem} class. */ public class HdmiCecLocalDeviceAudioSystemTest { private static final String TAG = "HdmiCecLocalDeviceAudioSystemTest"; Loading @@ -55,7 +52,8 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Before public void SetUp() { mHdmiControlService = new HdmiControlService(null) { mHdmiControlService = new HdmiControlService(null) { @Override AudioManager getAudioManager() { return new AudioManager() { Loading Loading @@ -90,7 +88,8 @@ public class HdmiCecLocalDeviceAudioSystemTest { } @Override public void adjustStreamVolume(int streamType, int direction, int flags) { public void adjustStreamVolume( int streamType, int direction, int flags) { switch (streamType) { case STREAM_MUSIC: if (direction == AudioManager.ADJUST_UNMUTE) { Loading @@ -105,16 +104,15 @@ public class HdmiCecLocalDeviceAudioSystemTest { } @Override void wakeUp() { } void wakeUp() {} }; mMyLooper = mTestLooper.getLooper(); mHdmiCecLocalDeviceAudioSystem = new HdmiCecLocalDeviceAudioSystem(mHdmiControlService); mHdmiCecLocalDeviceAudioSystem.init(); mHdmiControlService.setIoLooper(mMyLooper); mNativeWrapper = new FakeNativeWrapper(); mHdmiCecController = HdmiCecController.createWithNativeWrapper( mHdmiControlService, mNativeWrapper); mHdmiCecController = HdmiCecController.createWithNativeWrapper(mHdmiControlService, mNativeWrapper); mHdmiControlService.setCecController(mHdmiCecController); mHdmiControlService.setHdmiMhlController(HdmiMhlControllerStub.create(mHdmiControlService)); mHdmiControlService.setMessageValidator(new HdmiCecMessageValidator(mHdmiControlService)); Loading @@ -124,73 +122,79 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); } @Test public void handleGiveAudioStatus_volume_10_mute_true() { mMusicVolume = 10; mMusicMute = true; mMusicMaxVolume = 20; int scaledVolume = VolumeControlAction.scaleToCecVolume(10, mMusicMaxVolume); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportAudioStatus( HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportAudioStatus( ADDR_AUDIO_SYSTEM, ADDR_TV, scaledVolume, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus( ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleGiveSystemAudioModeStatus_originalOff() { HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); HdmiCecMessage messageGive = HdmiCecMessageBuilder .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcInitiate() { // TODO(b/80296911): Add tests when finishing handler impl. HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildInitiateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildInitiateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcTermination() { // TODO(b/80297105): Add tests when finishing handler impl. HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildTerminateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildTerminateArc(ADDR_AUDIO_SYSTEM, ADDR_TV); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder.buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(messageRequestOff)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleSetSystemAudioMode_setOn_orignalOff() { mMusicMute = true; HdmiCecMessage messageSet = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_TV, ADDR_AUDIO_SYSTEM, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageSet = HdmiCecMessageBuilder.buildSetSystemAudioMode(ADDR_TV, ADDR_AUDIO_SYSTEM, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); // Check if originally off HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); // Check if correctly turned on expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)) .isEqualTo(true); mTestLooper.dispatchAll(); Loading @@ -200,28 +204,32 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mMusicMute).isEqualTo(false); } @Test public void handleSystemAudioModeRequest_turnOffByTv() { assertThat(mMusicMute).isEqualTo(false); // Check if feature correctly turned off HdmiCecMessage messageGive = HdmiCecMessageBuilder .buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder .buildSystemAudioModeRequest(ADDR_TV, ADDR_AUDIO_SYSTEM, 2, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveSystemAudioModeStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage messageRequestOff = HdmiCecMessageBuilder.buildSystemAudioModeRequest( ADDR_TV, ADDR_AUDIO_SYSTEM, 2, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSystemAudioModeRequest(messageRequestOff)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); expectedMessage = HdmiCecMessageBuilder .buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mMusicMute).isEqualTo(true); } @Test public void onStandbyAudioSystem_currentSystemAudioControlOn() { // Set system audio control on first Loading @@ -229,77 +237,89 @@ public class HdmiCecLocalDeviceAudioSystemTest { // Check if standby correctly turns off the feature mHdmiCecLocalDeviceAudioSystem.onStandby(false, STANDBY_SCREEN_OFF); mTestLooper.dispatchAll(); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mMusicMute).isEqualTo(true); } @Test public void systemAudioControlOnPowerOn_alwaysOn() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.ALWAYS_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isNotEmpty(); } @Test public void systemAudioControlOnPowerOn_neverOn() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.NEVER_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, false); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isEmpty(); } @Test public void systemAudioControlOnPowerOn_useLastState_off() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, false); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isEmpty(); } @Test public void systemAudioControlOnPowerOn_useLastState_on() { mHdmiCecLocalDeviceAudioSystem.removeAction( SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(SystemAudioInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.systemAudioControlOnPowerOn( Constants.USE_LAST_STATE_SYSTEM_AUDIO_CONTROL_ON_POWER_ON, true); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(SystemAudioInitiationActionFromAvr.class)).isNotEmpty(); assertThat( mHdmiCecLocalDeviceAudioSystem.getActions( SystemAudioInitiationActionFromAvr.class)) .isNotEmpty(); } @Test public void handleActiveSource_updateActiveSource() { HdmiCecMessage message = HdmiCecMessageBuilder .buildActiveSource(ADDR_TV, 0x0000); HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); ActiveSource expectedActiveSource = new ActiveSource(ADDR_TV, 0x0000); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)) .isEqualTo(true); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)).isEqualTo(true); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActiveSource().equals(expectedActiveSource)) .isEqualTo(true); } @Test public void terminateSystemAudioMode_systemAudioModeOff() { mHdmiCecLocalDeviceAudioSystem.setSystemAudioMode(false); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(false); mMusicMute = false; HdmiCecMessage message = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage message = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); mHdmiCecLocalDeviceAudioSystem.terminateSystemAudioMode(); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(false); assertThat(mMusicMute).isEqualTo(false); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(message); } @Test public void terminateSystemAudioMode_systemAudioModeOn() { mHdmiCecLocalDeviceAudioSystem.setSystemAudioMode(true); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(true); mMusicMute = false; HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildSetSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); mHdmiCecLocalDeviceAudioSystem.terminateSystemAudioMode(); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isEqualTo(false); assertThat(mMusicMute).isEqualTo(true); Loading