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

Commit 76546d37 authored by Nathalie Le Clair's avatar Nathalie Le Clair Committed by Android (Google) Code Review
Browse files

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

parents ad227b1c d9be028d
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);
    }
}