diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index e6e2f9631d451..03a83380246f2 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -431,6 +431,13 @@ public class HdmiControlService extends SystemService { private final SelectRequestBuffer mSelectRequestBuffer = new SelectRequestBuffer(); + @VisibleForTesting HdmiControlService(Context context, List deviceTypes) { + super(context); + mLocalDevices = deviceTypes; + mSettingsObserver = new SettingsObserver(mHandler); + mHdmiCecConfig = new HdmiCecConfig(context); + } + public HdmiControlService(Context context) { super(context); List deviceTypes = HdmiProperties.device_type(); diff --git a/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java index 605f781b23df6..53b4b491410d7 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/PowerStatusMonitorActionTest.java @@ -19,7 +19,6 @@ package com.android.server.hdmi; import static com.android.server.hdmi.Constants.ADDR_BROADCAST; import static com.android.server.hdmi.Constants.ADDR_PLAYBACK_1; import static com.android.server.hdmi.Constants.ADDR_PLAYBACK_2; -import static com.android.server.hdmi.Constants.ADDR_TV; import static com.android.server.hdmi.HdmiControlService.INITIATED_BY_ENABLE_CEC; import static com.google.common.truth.Truth.assertThat; @@ -51,6 +50,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; +import java.util.Collections; import java.util.concurrent.TimeUnit; /** Tests for {@link ActiveSourceAction} */ @@ -84,7 +84,8 @@ public class PowerStatusMonitorActionTest { when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); when(mIPowerManagerMock.isInteractive()).thenReturn(true); - mHdmiControlService = new HdmiControlService(mContextSpy) { + mHdmiControlService = new HdmiControlService(mContextSpy, + Collections.singletonList(HdmiDeviceInfo.DEVICE_TV)) { @Override AudioManager getAudioManager() { return new AudioManager() { @@ -140,6 +141,7 @@ public class PowerStatusMonitorActionTest { mNativeWrapper.setPhysicalAddress(mPhysicalAddress); mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mTestLooper.dispatchAll(); + mNativeWrapper.clearResultMessages(); } @Test @@ -152,7 +154,7 @@ public class PowerStatusMonitorActionTest { mTestLooper.dispatchAll(); HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - ADDR_TV, + mTvDevice.mAddress, ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); @@ -191,7 +193,7 @@ public class PowerStatusMonitorActionTest { mTestLooper.dispatchAll(); HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - ADDR_TV, + mTvDevice.mAddress, ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(giveDevicePowerStatus); @@ -220,12 +222,12 @@ public class PowerStatusMonitorActionTest { mTestLooper.dispatchAll(); HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - ADDR_TV, + mTvDevice.mAddress, ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); HdmiCecMessage giveDevicePowerStatus2 = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - ADDR_TV, + mTvDevice.mAddress, ADDR_PLAYBACK_2); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus2); } @@ -245,13 +247,13 @@ public class PowerStatusMonitorActionTest { mTestLooper.dispatchAll(); HdmiCecMessage giveDevicePowerStatus = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - ADDR_TV, + mTvDevice.mAddress, ADDR_PLAYBACK_1); assertThat(mNativeWrapper.getResultMessages()).contains(giveDevicePowerStatus); HdmiCecMessage giveDevicePowerStatus2 = HdmiCecMessageBuilder.buildGiveDevicePowerStatus( - ADDR_TV, + mTvDevice.mAddress, ADDR_PLAYBACK_2); assertThat(mNativeWrapper.getResultMessages()).doesNotContain(giveDevicePowerStatus2); @@ -265,7 +267,7 @@ public class PowerStatusMonitorActionTest { } private void reportPowerStatus(int logicalAddress, boolean broadcast, int powerStatus) { - int destination = broadcast ? ADDR_BROADCAST : ADDR_TV; + int destination = broadcast ? ADDR_BROADCAST : mTvDevice.mAddress; HdmiCecMessage reportPowerStatus = HdmiCecMessageBuilder.buildReportPowerStatus( logicalAddress, destination, powerStatus);