Loading services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +77 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.server.hdmi; import static com.android.server.hdmi.Constants.ADDR_AUDIO_SYSTEM; import static com.android.server.hdmi.Constants.ADDR_BROADCAST; import static com.android.server.hdmi.Constants.ADDR_TV; import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC; Loading Loading @@ -692,6 +693,82 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyReleased); } @Test public void sendVolumeKeyEvent_toTv_activeSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(false); mHdmiControlService.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_TV, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_TV); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void sendVolumeKeyEvent_toAudio_activeSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(true); mHdmiControlService.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void sendVolumeKeyEvent_toTv_inactiveSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(false); mHdmiControlService.setActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_TV, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_TV); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void sendVolumeKeyEvent_toAudio_inactiveSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(true); mHdmiControlService.setActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void handleSetStreamPath_broadcastsActiveSource() { HdmiCecMessage setStreamPath = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, Loading Loading
services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDevicePlaybackTest.java +77 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.server.hdmi; import static com.android.server.hdmi.Constants.ADDR_AUDIO_SYSTEM; import static com.android.server.hdmi.Constants.ADDR_BROADCAST; import static com.android.server.hdmi.Constants.ADDR_TV; import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC; Loading Loading @@ -692,6 +693,82 @@ public class HdmiCecLocalDevicePlaybackTest { assertThat(mNativeWrapper.getResultMessages()).doesNotContain(keyReleased); } @Test public void sendVolumeKeyEvent_toTv_activeSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(false); mHdmiControlService.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_TV, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_TV); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void sendVolumeKeyEvent_toAudio_activeSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(true); mHdmiControlService.setActiveSource(mPlaybackLogicalAddress, mPlaybackPhysicalAddress); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isTrue(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void sendVolumeKeyEvent_toTv_inactiveSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(false); mHdmiControlService.setActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_TV, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_TV); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void sendVolumeKeyEvent_toAudio_inactiveSource() { mHdmiControlService.setHdmiCecVolumeControlEnabled(true); mHdmiControlService.setSystemAudioActivated(true); mHdmiControlService.setActiveSource(ADDR_TV, 0x0000); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, true); mHdmiCecLocalDevicePlayback.sendVolumeKeyEvent(KeyEvent.KEYCODE_VOLUME_UP, false); HdmiCecMessage pressed = HdmiCecMessageBuilder.buildUserControlPressed( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM, HdmiCecKeycode.CEC_KEYCODE_VOLUME_UP); HdmiCecMessage released = HdmiCecMessageBuilder.buildUserControlReleased( mPlaybackLogicalAddress, ADDR_AUDIO_SYSTEM); mTestLooper.dispatchAll(); assertThat(mHdmiCecLocalDevicePlayback.mIsActiveSource).isFalse(); assertThat(mNativeWrapper.getResultMessages()).containsAllOf(pressed, released); } @Test public void handleSetStreamPath_broadcastsActiveSource() { HdmiCecMessage setStreamPath = HdmiCecMessageBuilder.buildSetStreamPath(ADDR_TV, Loading