Loading services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java +10 −6 Original line number Diff line number Diff line Loading @@ -18,8 +18,12 @@ 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 com.google.common.collect.Iterables; import java.util.ArrayList; import java.util.List; Loading @@ -45,7 +49,6 @@ final class FakeNativeWrapper implements NativeWrapper { }; private final List<HdmiCecMessage> mResultMessages = new ArrayList<>(); private HdmiCecMessage mResultMessage; private int mMyPhysicalAddress = 0; @Override Loading Loading @@ -112,11 +115,12 @@ final class FakeNativeWrapper implements NativeWrapper { return new ArrayList<>(mResultMessages); } public HdmiCecMessage getOnlyResultMessage() throws Exception { if (mResultMessages.size() != 1) { throw new Exception("There is not exactly one message"); public HdmiCecMessage getOnlyResultMessage() throws IllegalArgumentException { return Iterables.getOnlyElement(mResultMessages); } return mResultMessages.get(0); public void clearResultMessages() { mResultMessages.clear(); } public void setPollAddressResponse(int logicalAddress, int response) { Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +63 −66 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { // No TV device interacts with AVR so system audio control won't be turned on here mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); mNativeWrapper.clearResultMessages(); SystemProperties.set(Constants.PROPERTY_ARC_SUPPORT, "true"); } Loading @@ -158,10 +159,9 @@ public class HdmiCecLocalDeviceAudioSystemTest { ADDR_AUDIO_SYSTEM, ADDR_TV, scaledVolume, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); } @Test Loading @@ -173,7 +173,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); } @Ignore("b/80297700") Loading Loading @@ -244,17 +244,17 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); // Check if correctly turned on mNativeWrapper.clearResultMessages(); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); assertThat(mMusicMute).isFalse(); } Loading @@ -274,13 +274,15 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem.handleSystemAudioModeRequest(messageRequestOff)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); mNativeWrapper.clearResultMessages(); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); assertThat(mMusicMute).isTrue(); } Loading @@ -295,7 +297,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); assertThat(mMusicMute).isTrue(); } Loading Loading @@ -347,8 +349,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { public void handleActiveSource_updateActiveSource() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); ActiveSource expectedActiveSource = new ActiveSource(ADDR_TV, 0x0000); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActiveSource().equals(expectedActiveSource)) .isTrue(); Loading @@ -365,7 +366,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiCecLocalDeviceAudioSystem.terminateSystemAudioMode(); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isFalse(); assertThat(mMusicMute).isFalse(); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(message); assertThat(mNativeWrapper.getResultMessages()).isEmpty(); } @Ignore("b/80297700") Loading Loading @@ -425,34 +426,32 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Test public void handleRequestArcInitiate_isNotDirectConnectedToTv() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, Constants.MESSAGE_REQUEST_ARC_INITIATION, Constants.ABORT_NOT_IN_CORRECT_MODE); mNativeWrapper.setPhysicalAddress(0x1100); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcInitiate_startArcInitiationActionFromAvr() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); mNativeWrapper.setPhysicalAddress(0x1000); mHdmiCecLocalDeviceAudioSystem.removeAction( ArcInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(ArcInitiationActionFromAvr.class); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(ArcInitiationActionFromAvr.class)).isNotEmpty(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActions(ArcInitiationActionFromAvr.class)) .isNotEmpty(); } @Test Loading @@ -460,50 +459,48 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiCecLocalDeviceAudioSystem.setArcStatus(true); assertThat(mHdmiCecLocalDeviceAudioSystem.isArcEnabled()).isTrue(); HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); mHdmiCecLocalDeviceAudioSystem.removeAction( ArcTerminationActionFromAvr.class); HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); mHdmiCecLocalDeviceAudioSystem.removeAction(ArcTerminationActionFromAvr.class); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(ArcTerminationActionFromAvr.class)).isNotEmpty(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActions(ArcTerminationActionFromAvr.class)) .isNotEmpty(); } @Test public void handleRequestArcTerminate_arcIsNotOn() throws Exception { assertThat(mHdmiCecLocalDeviceAudioSystem.isArcEnabled()).isFalse(); HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, Constants.MESSAGE_REQUEST_ARC_TERMINATION, Constants.ABORT_NOT_IN_CORRECT_MODE); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcInit_arcIsNotSupported() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, Constants.MESSAGE_REQUEST_ARC_INITIATION, Constants.ABORT_UNRECOGNIZED_OPCODE); SystemProperties.set(Constants.PROPERTY_ARC_SUPPORT, "false"); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); } @Test Loading Loading
services/tests/servicestests/src/com/android/server/hdmi/FakeNativeWrapper.java +10 −6 Original line number Diff line number Diff line Loading @@ -18,8 +18,12 @@ 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 com.google.common.collect.Iterables; import java.util.ArrayList; import java.util.List; Loading @@ -45,7 +49,6 @@ final class FakeNativeWrapper implements NativeWrapper { }; private final List<HdmiCecMessage> mResultMessages = new ArrayList<>(); private HdmiCecMessage mResultMessage; private int mMyPhysicalAddress = 0; @Override Loading Loading @@ -112,11 +115,12 @@ final class FakeNativeWrapper implements NativeWrapper { return new ArrayList<>(mResultMessages); } public HdmiCecMessage getOnlyResultMessage() throws Exception { if (mResultMessages.size() != 1) { throw new Exception("There is not exactly one message"); public HdmiCecMessage getOnlyResultMessage() throws IllegalArgumentException { return Iterables.getOnlyElement(mResultMessages); } return mResultMessages.get(0); public void clearResultMessages() { mResultMessages.clear(); } public void setPollAddressResponse(int logicalAddress, int response) { Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java +63 −66 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { // No TV device interacts with AVR so system audio control won't be turned on here mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); mNativeWrapper.clearResultMessages(); SystemProperties.set(Constants.PROPERTY_ARC_SUPPORT, "true"); } Loading @@ -158,10 +159,9 @@ public class HdmiCecLocalDeviceAudioSystemTest { ADDR_AUDIO_SYSTEM, ADDR_TV, scaledVolume, true); HdmiCecMessage messageGive = HdmiCecMessageBuilder.buildGiveAudioStatus(ADDR_TV, ADDR_AUDIO_SYSTEM); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveAudioStatus(messageGive)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); } @Test Loading @@ -173,7 +173,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); } @Ignore("b/80297700") Loading Loading @@ -244,17 +244,17 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); // Check if correctly turned on mNativeWrapper.clearResultMessages(); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, true); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleSetSystemAudioMode(messageSet)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); assertThat(mMusicMute).isFalse(); } Loading @@ -274,13 +274,15 @@ public class HdmiCecLocalDeviceAudioSystemTest { assertThat(mHdmiCecLocalDeviceAudioSystem.handleSystemAudioModeRequest(messageRequestOff)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); mNativeWrapper.clearResultMessages(); expectedMessage = HdmiCecMessageBuilder.buildReportSystemAudioMode(ADDR_AUDIO_SYSTEM, ADDR_TV, false); assertThat(mHdmiCecLocalDeviceAudioSystem.handleGiveSystemAudioModeStatus(messageGive)) .isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); assertThat(mMusicMute).isTrue(); } Loading @@ -295,7 +297,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildSetSystemAudioMode( ADDR_AUDIO_SYSTEM, ADDR_BROADCAST, false); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); assertThat(mMusicMute).isTrue(); } Loading Loading @@ -347,8 +349,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { public void handleActiveSource_updateActiveSource() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder.buildActiveSource(ADDR_TV, 0x0000); ActiveSource expectedActiveSource = new ActiveSource(ADDR_TV, 0x0000); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleActiveSource(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActiveSource().equals(expectedActiveSource)) .isTrue(); Loading @@ -365,7 +366,7 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiCecLocalDeviceAudioSystem.terminateSystemAudioMode(); assertThat(mHdmiCecLocalDeviceAudioSystem.isSystemAudioActivated()).isFalse(); assertThat(mMusicMute).isFalse(); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(message); assertThat(mNativeWrapper.getResultMessages()).isEmpty(); } @Ignore("b/80297700") Loading Loading @@ -425,34 +426,32 @@ public class HdmiCecLocalDeviceAudioSystemTest { @Test public void handleRequestArcInitiate_isNotDirectConnectedToTv() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, Constants.MESSAGE_REQUEST_ARC_INITIATION, Constants.ABORT_NOT_IN_CORRECT_MODE); mNativeWrapper.setPhysicalAddress(0x1100); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcInitiate_startArcInitiationActionFromAvr() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); mNativeWrapper.setPhysicalAddress(0x1000); mHdmiCecLocalDeviceAudioSystem.removeAction( ArcInitiationActionFromAvr.class); mHdmiCecLocalDeviceAudioSystem.removeAction(ArcInitiationActionFromAvr.class); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(ArcInitiationActionFromAvr.class)).isNotEmpty(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActions(ArcInitiationActionFromAvr.class)) .isNotEmpty(); } @Test Loading @@ -460,50 +459,48 @@ public class HdmiCecLocalDeviceAudioSystemTest { mHdmiCecLocalDeviceAudioSystem.setArcStatus(true); assertThat(mHdmiCecLocalDeviceAudioSystem.isArcEnabled()).isTrue(); HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); mHdmiCecLocalDeviceAudioSystem.removeAction( ArcTerminationActionFromAvr.class); HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); mHdmiCecLocalDeviceAudioSystem.removeAction(ArcTerminationActionFromAvr.class); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDeviceAudioSystem .getActions(ArcTerminationActionFromAvr.class)).isNotEmpty(); assertThat(mHdmiCecLocalDeviceAudioSystem.getActions(ArcTerminationActionFromAvr.class)) .isNotEmpty(); } @Test public void handleRequestArcTerminate_arcIsNotOn() throws Exception { assertThat(mHdmiCecLocalDeviceAudioSystem.isArcEnabled()).isFalse(); HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcTermination(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, Constants.MESSAGE_REQUEST_ARC_TERMINATION, Constants.ABORT_NOT_IN_CORRECT_MODE); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcTermination(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); } @Test public void handleRequestArcInit_arcIsNotSupported() throws Exception { HdmiCecMessage message = HdmiCecMessageBuilder .buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder .buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, HdmiCecMessage message = HdmiCecMessageBuilder.buildRequestArcInitiation(ADDR_TV, ADDR_AUDIO_SYSTEM); HdmiCecMessage expectedMessage = HdmiCecMessageBuilder.buildFeatureAbortCommand( ADDR_AUDIO_SYSTEM, ADDR_TV, Constants.MESSAGE_REQUEST_ARC_INITIATION, Constants.ABORT_UNRECOGNIZED_OPCODE); SystemProperties.set(Constants.PROPERTY_ARC_SUPPORT, "false"); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)) .isTrue(); assertThat(mHdmiCecLocalDeviceAudioSystem.handleRequestArcInitiate(message)).isTrue(); mTestLooper.dispatchAll(); assertThat(mNativeWrapper.getResultMessages()).contains(expectedMessage); assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage); } @Test Loading