diff --git a/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java b/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java index 826438fc8ddfd..792c80e749f6d 100644 --- a/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java +++ b/services/tests/servicestests/src/com/android/server/hdmi/OneTouchPlayActionTest.java @@ -37,7 +37,6 @@ import android.os.IThermalService; import android.os.Looper; import android.os.PowerManager; import android.os.test.TestLooper; -import android.provider.Settings; import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; @@ -51,6 +50,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; +import java.util.Collections; /** Tests for {@link OneTouchPlayAction} */ @SmallTest @@ -69,6 +69,7 @@ public class OneTouchPlayActionTest { private Context mContextSpy; private HdmiControlService mHdmiControlService; private FakeNativeWrapper mNativeWrapper; + private FakeHdmiCecConfig mHdmiCecConfig; private TestLooper mTestLooper = new TestLooper(); private ArrayList mLocalDevices = new ArrayList<>(); @@ -88,6 +89,7 @@ public class OneTouchPlayActionTest { MockitoAnnotations.initMocks(this); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); + mHdmiCecConfig = new FakeHdmiCecConfig(mContextSpy); setHdmiControlEnabled(hdmiControlEnabled); @@ -97,7 +99,7 @@ public class OneTouchPlayActionTest { when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager); when(mIPowerManagerMock.isInteractive()).thenReturn(true); - mHdmiControlService = new HdmiControlService(mContextSpy) { + mHdmiControlService = new HdmiControlService(mContextSpy, Collections.emptyList()) { @Override AudioManager getAudioManager() { return new AudioManager() { @@ -131,7 +133,7 @@ public class OneTouchPlayActionTest { Looper looper = mTestLooper.getLooper(); mHdmiControlService.setIoLooper(looper); - mHdmiControlService.setHdmiCecConfig(new FakeHdmiCecConfig(mContextSpy)); + mHdmiControlService.setHdmiCecConfig(mHdmiCecConfig); mNativeWrapper = new FakeNativeWrapper(); HdmiCecController hdmiCecController = HdmiCecController.createWithNativeWrapper( this.mHdmiControlService, mNativeWrapper, mHdmiControlService.getAtomWriter()); @@ -476,7 +478,7 @@ public class OneTouchPlayActionTest { mTestLooper.dispatchAll(); assertThat(callback.hasResult()).isFalse(); - assertThat(playbackDevice.isActiveSource()).isFalse(); + mNativeWrapper.clearResultMessages(); setHdmiControlEnabled(true); mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); @@ -495,6 +497,12 @@ public class OneTouchPlayActionTest { assertThat(mHdmiControlService.isAddressAllocated()).isTrue(); assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS); assertThat(playbackDevice.isActiveSource()).isTrue(); + HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.mAddress, mPhysicalAddress); + HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, + ADDR_TV); + assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); + assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); } @Test @@ -524,6 +532,12 @@ public class OneTouchPlayActionTest { assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS); assertThat(playbackDevice.isActiveSource()).isTrue(); + HdmiCecMessage activeSource = HdmiCecMessageBuilder.buildActiveSource( + playbackDevice.mAddress, mPhysicalAddress); + HdmiCecMessage textViewOn = HdmiCecMessageBuilder.buildTextViewOn(playbackDevice.mAddress, + ADDR_TV); + assertThat(mNativeWrapper.getResultMessages()).contains(activeSource); + assertThat(mNativeWrapper.getResultMessages()).contains(textViewOn); } @Test @@ -599,8 +613,8 @@ public class OneTouchPlayActionTest { } private void setHdmiControlEnabled(boolean enabled) { - int value = enabled ? 1 : 0; - Settings.Global.putInt(mContextSpy.getContentResolver(), - Settings.Global.HDMI_CONTROL_ENABLED, value); + int value = enabled ? HdmiControlManager.HDMI_CEC_CONTROL_ENABLED : + HdmiControlManager.HDMI_CEC_CONTROL_DISABLED; + mHdmiCecConfig.setIntValue(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED, value); } }