Loading services/core/java/com/android/server/display/DisplayPowerState.java +4 −1 Original line number Diff line number Diff line Loading @@ -333,6 +333,8 @@ final class DisplayPowerState { public void stop() { mStopped = true; mPhotonicModulator.interrupt(); mColorFadePrepared = false; mColorFadeReady = true; if (mColorFade != null) { mAsyncDestroyExecutor.execute(mColorFade::destroy); } Loading Loading @@ -419,7 +421,8 @@ final class DisplayPowerState { } }; private final Runnable mColorFadeDrawRunnable = new Runnable() { @VisibleForTesting final Runnable mColorFadeDrawRunnable = new Runnable() { @Override public void run() { mColorFadeDrawPending = false; Loading services/tests/displayservicetests/src/com/android/server/display/DisplayPowerStateTest.kt +40 −0 Original line number Diff line number Diff line Loading @@ -16,16 +16,24 @@ package com.android.server.display import android.content.Context import android.os.Looper import android.view.Display import androidx.test.filters.SmallTest import org.junit.Before import org.junit.Rule import org.junit.Test import org.mockito.ArgumentMatchers.anyFloat import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.eq import org.mockito.junit.MockitoJUnit import org.mockito.kotlin.argumentCaptor import org.mockito.kotlin.clearInvocations import org.mockito.kotlin.mock import org.mockito.kotlin.never import org.mockito.kotlin.verify import org.mockito.kotlin.whenever import java.util.concurrent.Executor @SmallTest Loading @@ -39,11 +47,16 @@ class DisplayPowerStateTest { private val mockBlanker = mock<DisplayBlanker>() private val mockColorFade = mock<ColorFade>() private val mockExecutor = mock<Executor>() private val mockContext = mock<Context>() @Before fun setUp() { if (Looper.myLooper() == null) { Looper.prepare() } displayPowerState = DisplayPowerState(mockBlanker, mockColorFade, 123, Display.STATE_ON, mockExecutor) whenever(mockColorFade.prepare(eq(mockContext), anyInt())).thenReturn(true) } @Test Loading @@ -56,4 +69,31 @@ class DisplayPowerStateTest { verify(mockColorFade).destroy() } @Test fun `GIVEN not prepared WHEN draw runnable is called THEN colorFade not drawn`() { displayPowerState.mColorFadeDrawRunnable.run() verify(mockColorFade, never()).draw(anyFloat()) } @Test fun `GIVEN prepared WHEN draw runnable is called THEN colorFade is drawn`() { displayPowerState.prepareColorFade(mockContext, ColorFade.MODE_FADE) clearInvocations(mockColorFade) displayPowerState.mColorFadeDrawRunnable.run() verify(mockColorFade).draw(anyFloat()) } @Test fun `GIVEN prepared AND stopped WHEN draw runnable is called THEN colorFade is not drawn`() { displayPowerState.prepareColorFade(mockContext, ColorFade.MODE_FADE) clearInvocations(mockColorFade) displayPowerState.stop() displayPowerState.mColorFadeDrawRunnable.run() verify(mockColorFade, never()).draw(anyFloat()) } } No newline at end of file Loading
services/core/java/com/android/server/display/DisplayPowerState.java +4 −1 Original line number Diff line number Diff line Loading @@ -333,6 +333,8 @@ final class DisplayPowerState { public void stop() { mStopped = true; mPhotonicModulator.interrupt(); mColorFadePrepared = false; mColorFadeReady = true; if (mColorFade != null) { mAsyncDestroyExecutor.execute(mColorFade::destroy); } Loading Loading @@ -419,7 +421,8 @@ final class DisplayPowerState { } }; private final Runnable mColorFadeDrawRunnable = new Runnable() { @VisibleForTesting final Runnable mColorFadeDrawRunnable = new Runnable() { @Override public void run() { mColorFadeDrawPending = false; Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayPowerStateTest.kt +40 −0 Original line number Diff line number Diff line Loading @@ -16,16 +16,24 @@ package com.android.server.display import android.content.Context import android.os.Looper import android.view.Display import androidx.test.filters.SmallTest import org.junit.Before import org.junit.Rule import org.junit.Test import org.mockito.ArgumentMatchers.anyFloat import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.eq import org.mockito.junit.MockitoJUnit import org.mockito.kotlin.argumentCaptor import org.mockito.kotlin.clearInvocations import org.mockito.kotlin.mock import org.mockito.kotlin.never import org.mockito.kotlin.verify import org.mockito.kotlin.whenever import java.util.concurrent.Executor @SmallTest Loading @@ -39,11 +47,16 @@ class DisplayPowerStateTest { private val mockBlanker = mock<DisplayBlanker>() private val mockColorFade = mock<ColorFade>() private val mockExecutor = mock<Executor>() private val mockContext = mock<Context>() @Before fun setUp() { if (Looper.myLooper() == null) { Looper.prepare() } displayPowerState = DisplayPowerState(mockBlanker, mockColorFade, 123, Display.STATE_ON, mockExecutor) whenever(mockColorFade.prepare(eq(mockContext), anyInt())).thenReturn(true) } @Test Loading @@ -56,4 +69,31 @@ class DisplayPowerStateTest { verify(mockColorFade).destroy() } @Test fun `GIVEN not prepared WHEN draw runnable is called THEN colorFade not drawn`() { displayPowerState.mColorFadeDrawRunnable.run() verify(mockColorFade, never()).draw(anyFloat()) } @Test fun `GIVEN prepared WHEN draw runnable is called THEN colorFade is drawn`() { displayPowerState.prepareColorFade(mockContext, ColorFade.MODE_FADE) clearInvocations(mockColorFade) displayPowerState.mColorFadeDrawRunnable.run() verify(mockColorFade).draw(anyFloat()) } @Test fun `GIVEN prepared AND stopped WHEN draw runnable is called THEN colorFade is not drawn`() { displayPowerState.prepareColorFade(mockContext, ColorFade.MODE_FADE) clearInvocations(mockColorFade) displayPowerState.stop() displayPowerState.mColorFadeDrawRunnable.run() verify(mockColorFade, never()).draw(anyFloat()) } } No newline at end of file