Initialize unit tests with empty local devices

Before: HdmiControlService is initialized with the local devices
specified in HdmiProperties.cec_device_types(). This results in
different behavior for different DUTs.

After: HdmiControlService is initialized with empty local
devices, practically ignoring HdmiProperties.cec_device_types().

Bug: 187909454
Test: atest com.android.server.hdmi on Cuttlefish and ADT3

Change-Id: I72c2ae4d0621c728f80ed8d7755719263428e384
This commit is contained in:
Nathalie Le Clair
2021-05-26 16:46:14 +02:00
parent 762e7fb9d8
commit b50d662f99
19 changed files with 49 additions and 19 deletions

View File

@@ -45,6 +45,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
/** Tests for {@link ActiveSourceAction} */
@SmallTest
@@ -76,7 +77,7 @@ public class ActiveSourceActionTest {
mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
when(mIPowerManagerMock.isInteractive()).thenReturn(true);
mHdmiControlService = new HdmiControlService(mContextSpy) {
mHdmiControlService = new HdmiControlService(mContextSpy, Collections.emptyList()) {
@Override
AudioManager getAudioManager() {
return new AudioManager() {

View File

@@ -45,6 +45,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
/** Tests for {@link ArcInitiationActionFromAvrTest} */
@SmallTest
@@ -79,7 +80,7 @@ public class ArcInitiationActionFromAvrTest {
when(mIPowerManagerMock.isInteractive()).thenReturn(true);
HdmiControlService hdmiControlService =
new HdmiControlService(mContextSpy) {
new HdmiControlService(mContextSpy, Collections.emptyList()) {
@Override
boolean isPowerStandby() {
return false;

View File

@@ -45,6 +45,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
/** Tests for {@link ArcTerminationActionFromAvr} */
@SmallTest
@@ -80,7 +81,7 @@ public class ArcTerminationActionFromAvrTest {
when(mIPowerManagerMock.isInteractive()).thenReturn(true);
HdmiControlService hdmiControlService =
new HdmiControlService(mContextSpy) {
new HdmiControlService(mContextSpy, Collections.emptyList()) {
@Override
void wakeUp() {
}

View File

@@ -34,6 +34,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Collections;
/** Tests for {@link DetectTvSystemAudioModeSupportAction} class. */
@SmallTest
@Presubmit
@@ -53,7 +55,8 @@ public class DetectTvSystemAudioModeSupportActionTest {
public void SetUp() {
mDeviceInfoForTests = new HdmiDeviceInfo(1001, 1234);
HdmiControlService hdmiControlService =
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
Collections.emptyList()) {
@Override
void sendCecCommand(

View File

@@ -51,6 +51,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
/** Tests for {@link DevicePowerStatusAction} */
@SmallTest
@@ -88,7 +89,7 @@ public class DevicePowerStatusActionTest {
mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
when(mIPowerManagerMock.isInteractive()).thenReturn(true);
mHdmiControlService = new HdmiControlService(mContextSpy) {
mHdmiControlService = new HdmiControlService(mContextSpy, Collections.emptyList()) {
@Override
AudioManager getAudioManager() {
return new AudioManager() {
@@ -220,6 +221,7 @@ public class DevicePowerStatusActionTest {
mHdmiControlService.getHdmiCecConfig().setIntValue(
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
HdmiControlManager.HDMI_CEC_VERSION_2_0);
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
mPlaybackDevice.addAndStartAction(mDevicePowerStatusAction);
mTestLooper.dispatchAll();
@@ -240,6 +242,7 @@ public class DevicePowerStatusActionTest {
mHdmiControlService.getHdmiCecConfig().setIntValue(
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
HdmiControlManager.HDMI_CEC_VERSION_2_0);
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
HdmiCecMessage reportPhysicalAddress = HdmiCecMessageBuilder
.buildReportPhysicalAddressCommand(ADDR_TV, 0x0000, HdmiDeviceInfo.DEVICE_TV);
mNativeWrapper.onCecMessage(reportPhysicalAddress);
@@ -263,6 +266,7 @@ public class DevicePowerStatusActionTest {
mHdmiControlService.getHdmiCecConfig().setIntValue(
HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_VERSION,
HdmiControlManager.HDMI_CEC_VERSION_2_0);
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
HdmiCecMessage reportPhysicalAddress = HdmiCecMessageBuilder
.buildReportPhysicalAddressCommand(ADDR_TV, 0x0000, HdmiDeviceInfo.DEVICE_TV);
mNativeWrapper.onCecMessage(reportPhysicalAddress);

View File

@@ -54,6 +54,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
@SmallTest
@RunWith(JUnit4.class)
@@ -105,7 +106,8 @@ public class DeviceSelectActionTest {
mMyLooper = mTestLooper.getLooper();
mHdmiControlService =
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
Collections.emptyList()) {
@Override
boolean isControlEnabled() {
return true;

View File

@@ -62,6 +62,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
/**
* Tests for the {@link HdmiCecAtomWriter} class and its usage by the HDMI-CEC framework.
@@ -104,7 +105,7 @@ public class HdmiCecAtomLoggingTest {
mIThermalServiceMock, new Handler(mLooper)));
doReturn(true).when(mIPowerManagerMock).isInteractive();
mHdmiControlServiceSpy = spy(new HdmiControlService(mContextSpy));
mHdmiControlServiceSpy = spy(new HdmiControlService(mContextSpy, Collections.emptyList()));
doNothing().when(mHdmiControlServiceSpy)
.writeStringSystemProperty(anyString(), anyString());
doReturn(mHdmiCecAtomWriterSpy).when(mHdmiControlServiceSpy).getAtomWriter();

View File

@@ -69,6 +69,7 @@ import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Optional;
/** Tests for {@link com.android.server.hdmi.HdmiCecController} class. */
@@ -99,7 +100,7 @@ public class HdmiCecControllerTest {
mMyLooper = mTestLooper.getLooper();
mHdmiControlServiceSpy = spy(new HdmiControlService(
InstrumentationRegistry.getTargetContext()));
InstrumentationRegistry.getTargetContext(), Collections.emptyList()));
doReturn(mMyLooper).when(mHdmiControlServiceSpy).getIoLooper();
doReturn(mMyLooper).when(mHdmiControlServiceSpy).getServiceLooper();
doAnswer(__ -> mCecVersion).when(mHdmiControlServiceSpy).getCecVersion();

View File

@@ -53,6 +53,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
@SmallTest
@Presubmit
@@ -96,7 +97,8 @@ public class HdmiCecLocalDeviceAudioSystemTest {
mMyLooper = mTestLooper.getLooper();
mHdmiControlService =
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
Collections.emptyList()) {
@Override
AudioManager getAudioManager() {
return new AudioManager() {

View File

@@ -53,6 +53,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
import java.util.concurrent.TimeUnit;
@SmallTest
@@ -94,7 +95,8 @@ public class HdmiCecLocalDevicePlaybackTest {
mMyLooper = mTestLooper.getLooper();
mHdmiControlService =
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
Collections.emptyList()) {
@Override
void wakeUp() {
mWokenUp = true;

View File

@@ -129,7 +129,7 @@ public class HdmiCecLocalDeviceTest {
Context context = InstrumentationRegistry.getTargetContext();
mHdmiControlService =
new HdmiControlService(context) {
new HdmiControlService(context, Collections.emptyList()) {
@Override
boolean isControlEnabled() {
return isControlEnabled;

View File

@@ -56,6 +56,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
@SmallTest
@RunWith(JUnit4.class)
@@ -88,7 +89,8 @@ public class HdmiCecLocalDeviceTvTest {
mMyLooper = mTestLooper.getLooper();
mHdmiControlService =
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
Collections.emptyList()) {
@Override
void wakeUp() {
mWokenUp = true;

View File

@@ -37,6 +37,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Collections;
/** Tests for {@link com.android.server.hdmi.HdmiCecMessageValidator} class. */
@SmallTest
@Presubmit
@@ -49,7 +51,7 @@ public class HdmiCecMessageValidatorTest {
@Before
public void setUp() throws Exception {
HdmiControlService mHdmiControlService = new HdmiControlService(
InstrumentationRegistry.getTargetContext());
InstrumentationRegistry.getTargetContext(), Collections.emptyList());
mHdmiControlService.setIoLooper(mTestLooper.getLooper());
mHdmiCecMessageValidator = new HdmiCecMessageValidator(mHdmiControlService);

View File

@@ -64,7 +64,7 @@ public class HdmiCecNetworkTest {
@Before
public void setUp() throws Exception {
mContext = InstrumentationRegistry.getTargetContext();
mHdmiControlService = new HdmiControlService(mContext) {
mHdmiControlService = new HdmiControlService(mContext, Collections.emptyList()) {
@Override
void invokeDeviceEventListeners(HdmiDeviceInfo device, int status) {
mDeviceEventListenerStatuses.add(status);

View File

@@ -47,6 +47,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
@SmallTest
@Presubmit
@@ -83,7 +84,7 @@ public class HdmiCecPowerStatusControllerTest {
mIThermalServiceMock, new Handler(myLooper)));
when(mIPowerManagerMock.isInteractive()).thenReturn(true);
mHdmiControlService = new HdmiControlService(contextSpy) {
mHdmiControlService = new HdmiControlService(contextSpy, Collections.emptyList()) {
@Override
boolean isControlEnabled() {
return true;

View File

@@ -62,6 +62,7 @@ import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Optional;
/**
@@ -204,7 +205,7 @@ public class HdmiControlServiceTest {
HdmiCecConfig hdmiCecConfig = new FakeHdmiCecConfig(mContextSpy);
mHdmiControlServiceSpy = spy(new HdmiControlService(mContextSpy));
mHdmiControlServiceSpy = spy(new HdmiControlService(mContextSpy, Collections.emptyList()));
doNothing().when(mHdmiControlServiceSpy)
.writeStringSystemProperty(anyString(), anyString());

View File

@@ -53,6 +53,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@SmallTest
@@ -144,7 +145,8 @@ public class RoutingControlActionTest {
HdmiCecConfig hdmiCecConfig = new FakeHdmiCecConfig(context);
mHdmiControlService =
new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
new HdmiControlService(InstrumentationRegistry.getTargetContext(),
Collections.emptyList()) {
@Override
boolean isControlEnabled() {
return true;

View File

@@ -48,6 +48,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Collections;
/**
* Test for {@link SystemAudioAutoInitiationAction}.
@@ -86,7 +87,7 @@ public class SystemAudioAutoInitiationActionTest {
mIThermalServiceMock, new Handler(myLooper)));
when(mIPowerManagerMock.isInteractive()).thenReturn(true);
mHdmiControlService = new HdmiControlService(mContextSpy) {
mHdmiControlService = new HdmiControlService(mContextSpy, Collections.emptyList()) {
@Override
AudioManager getAudioManager() {
return new AudioManager() {

View File

@@ -38,6 +38,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Collections;
/** Tests for {@link SystemAudioInitiationActionFromAvr} */
@SmallTest
@Presubmit
@@ -65,7 +67,8 @@ public class SystemAudioInitiationActionFromAvrTest {
Context context = InstrumentationRegistry.getTargetContext();
HdmiControlService hdmiControlService = new HdmiControlService(context) {
HdmiControlService hdmiControlService = new HdmiControlService(context,
Collections.emptyList()) {
@Override
void sendCecCommand(
HdmiCecMessage command, @Nullable SendMessageCallback callback) {