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: Ic54d9b1a6e2c9b7e8ea7ff609910d057c2427eef
This commit is contained in:
Nathalie Le Clair
2021-05-26 13:00:14 +00:00
committed by Automerger Merge Worker

View File

@@ -37,7 +37,6 @@ import android.os.IThermalService;
import android.os.Looper; import android.os.Looper;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.test.TestLooper; import android.os.test.TestLooper;
import android.provider.Settings;
import androidx.test.InstrumentationRegistry; import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
@@ -51,6 +50,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
/** Tests for {@link OneTouchPlayAction} */ /** Tests for {@link OneTouchPlayAction} */
@SmallTest @SmallTest
@@ -69,6 +69,7 @@ public class OneTouchPlayActionTest {
private Context mContextSpy; private Context mContextSpy;
private HdmiControlService mHdmiControlService; private HdmiControlService mHdmiControlService;
private FakeNativeWrapper mNativeWrapper; private FakeNativeWrapper mNativeWrapper;
private FakeHdmiCecConfig mHdmiCecConfig;
private TestLooper mTestLooper = new TestLooper(); private TestLooper mTestLooper = new TestLooper();
private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>(); private ArrayList<HdmiCecLocalDevice> mLocalDevices = new ArrayList<>();
@@ -88,6 +89,7 @@ public class OneTouchPlayActionTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext())); mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext()));
mHdmiCecConfig = new FakeHdmiCecConfig(mContextSpy);
setHdmiControlEnabled(hdmiControlEnabled); setHdmiControlEnabled(hdmiControlEnabled);
@@ -99,7 +101,7 @@ public class OneTouchPlayActionTest {
mIThermalServiceMock, new Handler(mTestLooper.getLooper()))); mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
when(mIPowerManagerMock.isInteractive()).thenReturn(true); when(mIPowerManagerMock.isInteractive()).thenReturn(true);
mHdmiControlService = new HdmiControlService(mContextSpy) { mHdmiControlService = new HdmiControlService(mContextSpy, Collections.emptyList()) {
@Override @Override
AudioManager getAudioManager() { AudioManager getAudioManager() {
return new AudioManager() { return new AudioManager() {
@@ -134,7 +136,7 @@ public class OneTouchPlayActionTest {
Looper looper = mTestLooper.getLooper(); Looper looper = mTestLooper.getLooper();
mHdmiControlService.setIoLooper(looper); mHdmiControlService.setIoLooper(looper);
mHdmiControlService.setHdmiCecConfig(new FakeHdmiCecConfig(mContextSpy)); mHdmiControlService.setHdmiCecConfig(mHdmiCecConfig);
mNativeWrapper = new FakeNativeWrapper(); mNativeWrapper = new FakeNativeWrapper();
HdmiCecController hdmiCecController = HdmiCecController.createWithNativeWrapper( HdmiCecController hdmiCecController = HdmiCecController.createWithNativeWrapper(
this.mHdmiControlService, mNativeWrapper, mHdmiControlService.getAtomWriter()); this.mHdmiControlService, mNativeWrapper, mHdmiControlService.getAtomWriter());
@@ -479,7 +481,7 @@ public class OneTouchPlayActionTest {
mTestLooper.dispatchAll(); mTestLooper.dispatchAll();
assertThat(callback.hasResult()).isFalse(); assertThat(callback.hasResult()).isFalse();
assertThat(playbackDevice.isActiveSource()).isFalse(); mNativeWrapper.clearResultMessages();
setHdmiControlEnabled(true); setHdmiControlEnabled(true);
mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC); mHdmiControlService.allocateLogicalAddress(mLocalDevices, INITIATED_BY_ENABLE_CEC);
@@ -498,6 +500,12 @@ public class OneTouchPlayActionTest {
assertThat(mHdmiControlService.isAddressAllocated()).isTrue(); assertThat(mHdmiControlService.isAddressAllocated()).isTrue();
assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS); assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS);
assertThat(playbackDevice.isActiveSource()).isTrue(); 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 @Test
@@ -527,6 +535,12 @@ public class OneTouchPlayActionTest {
assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS); assertThat(callback.getResult()).isEqualTo(HdmiControlManager.RESULT_SUCCESS);
assertThat(playbackDevice.isActiveSource()).isTrue(); 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 @Test
@@ -602,8 +616,8 @@ public class OneTouchPlayActionTest {
} }
private void setHdmiControlEnabled(boolean enabled) { private void setHdmiControlEnabled(boolean enabled) {
int value = enabled ? 1 : 0; int value = enabled ? HdmiControlManager.HDMI_CEC_CONTROL_ENABLED :
Settings.Global.putInt(mContextSpy.getContentResolver(), HdmiControlManager.HDMI_CEC_CONTROL_DISABLED;
Settings.Global.HDMI_CONTROL_ENABLED, value); mHdmiCecConfig.setIntValue(HdmiControlManager.CEC_SETTING_NAME_HDMI_CEC_ENABLED, value);
} }
} }