Merge "Fix OneTouchPlayActionTest failure on playback devices" into sc-dev am: 76546d37b9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14663327 Change-Id: Icbb624c0c2d8a8413c6c5353968aac062c780c13
This commit is contained in:
@@ -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<HdmiCecLocalDevice> 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);
|
||||
|
||||
@@ -99,7 +101,7 @@ public class OneTouchPlayActionTest {
|
||||
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() {
|
||||
@@ -134,7 +136,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());
|
||||
@@ -479,7 +481,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);
|
||||
@@ -498,6 +500,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
|
||||
@@ -527,6 +535,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
|
||||
@@ -602,8 +616,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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user