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

Commit ac0134bc authored by Nathalie Le Clair's avatar Nathalie Le Clair
Browse files

Reinitialize PowerManager in unit tests

PowerManager keeps a cache of isInteractive(). Therefore only the first
call to PowerManager#isInteractive() can be mocked; for the next calls,
the cache will be used.

To avoid using the cache and to mock every call of
PowerManager#isInteractive, PowerManager needs to be reinitialized on
every call of HdmiControlManager#getPowerManager().

Bug: 187415933
Test: atest
Change-Id: I9374cadd4f6e861ccf248d5758a86133c0dea8cd
parent 30d28b1c
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -68,10 +68,12 @@ public class ActiveSourceActionTest {

        mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext()));

        PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mIPowerManagerMock.isInteractive()).thenReturn(true);

        mHdmiControlService = new HdmiControlService(mContextSpy) {
@@ -97,7 +99,8 @@ public class ActiveSourceActionTest {

            @Override
            protected PowerManager getPowerManager() {
                return powerManager;
                return new PowerManager(mContextSpy, mIPowerManagerMock,
                        mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
            }

            @Override
+8 −5
Original line number Diff line number Diff line
@@ -70,10 +70,12 @@ public class ArcInitiationActionFromAvrTest {

        mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext()));

        PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mIPowerManagerMock.isInteractive()).thenReturn(true);

        HdmiControlService hdmiControlService =
@@ -89,7 +91,8 @@ public class ArcInitiationActionFromAvrTest {

                    @Override
                    protected PowerManager getPowerManager() {
                        return powerManager;
                        return new PowerManager(mContextSpy, mIPowerManagerMock,
                                mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
                    }

                    @Override
+8 −5
Original line number Diff line number Diff line
@@ -71,10 +71,12 @@ public class ArcTerminationActionFromAvrTest {

        mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext()));

        PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mIPowerManagerMock.isInteractive()).thenReturn(true);

        HdmiControlService hdmiControlService =
@@ -85,7 +87,8 @@ public class ArcTerminationActionFromAvrTest {

                    @Override
                    protected PowerManager getPowerManager() {
                        return powerManager;
                        return new PowerManager(mContextSpy, mIPowerManagerMock,
                                mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
                    }

                    @Override
+8 −5
Original line number Diff line number Diff line
@@ -80,10 +80,12 @@ public class DevicePowerStatusActionTest {

        mContextSpy = spy(new ContextWrapper(InstrumentationRegistry.getTargetContext()));

        PowerManager powerManager = new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(PowerManager.class)).thenReturn(powerManager);
        when(mContextSpy.getSystemService(Context.POWER_SERVICE)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mContextSpy.getSystemService(PowerManager.class)).thenAnswer(i ->
                new PowerManager(mContextSpy, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mTestLooper.getLooper())));
        when(mIPowerManagerMock.isInteractive()).thenReturn(true);

        mHdmiControlService = new HdmiControlService(mContextSpy) {
@@ -109,7 +111,8 @@ public class DevicePowerStatusActionTest {

            @Override
            protected PowerManager getPowerManager() {
                return powerManager;
                return new PowerManager(mContextSpy, mIPowerManagerMock,
                        mIThermalServiceMock, new Handler(mTestLooper.getLooper()));
            }

            @Override
+2 −3
Original line number Diff line number Diff line
@@ -103,8 +103,6 @@ public class DeviceSelectActionTest {

        Context context = InstrumentationRegistry.getTargetContext();
        mMyLooper = mTestLooper.getLooper();
        PowerManager powerManager = new PowerManager(context, mIPowerManagerMock,
                mIThermalServiceMock, new Handler(mMyLooper));

        mHdmiControlService =
                new HdmiControlService(InstrumentationRegistry.getTargetContext()) {
@@ -129,7 +127,8 @@ public class DeviceSelectActionTest {

                    @Override
                    protected PowerManager getPowerManager() {
                        return powerManager;
                        return new PowerManager(context, mIPowerManagerMock,
                                mIThermalServiceMock, new Handler(mMyLooper));
                    }
                };

Loading