Merge "Add tests to verify volume command behavior"
This commit is contained in:
committed by
Android (Google) Code Review
commit
52054b1d4b
@@ -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;
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user