Allow tests to specify local device types
Enable tests to specify the device types they intend to use. This can override device types specified in system properties of the DUT itself. Update PowerStatusMonitorActionTest to pass on a playback device. Bug: 182544218 Test: atest PowerStatusMonitorActionTest Change-Id: I203f1afe36e3ca0068169bdf6d868b6c95259a9d
This commit is contained in:
@@ -431,6 +431,13 @@ public class HdmiControlService extends SystemService {
|
||||
|
||||
private final SelectRequestBuffer mSelectRequestBuffer = new SelectRequestBuffer();
|
||||
|
||||
@VisibleForTesting HdmiControlService(Context context, List<Integer> deviceTypes) {
|
||||
super(context);
|
||||
mLocalDevices = deviceTypes;
|
||||
mSettingsObserver = new SettingsObserver(mHandler);
|
||||
mHdmiCecConfig = new HdmiCecConfig(context);
|
||||
}
|
||||
|
||||
public HdmiControlService(Context context) {
|
||||
super(context);
|
||||
List<Integer> deviceTypes = HdmiProperties.device_type();
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user