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:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user