Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b5b96e6 authored by Nathalie Le Clair's avatar Nathalie Le Clair Committed by Automerger Merge Worker
Browse files

Merge "Fix OneTouchPlayActionTest failure on playback devices" into sc-dev am:...

Merge "Fix OneTouchPlayActionTest failure on playback devices" into sc-dev am: 76546d37 am: 23bb1bdc am: 79098ad9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14663327

Change-Id: I2ef1944bf353d445f261d10c6debb8e34352ddec
parents da73e718 79098ad9
Loading
Loading
Loading
Loading
+21 −7
Original line number Diff line number Diff line
@@ -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);
    }
}