diff options
| -rw-r--r-- | core/tests/coretests/src/android/os/PowerManagerTest.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/os/PowerManagerTest.java b/core/tests/coretests/src/android/os/PowerManagerTest.java index da17b56bc0fa..a828f4418515 100644 --- a/core/tests/coretests/src/android/os/PowerManagerTest.java +++ b/core/tests/coretests/src/android/os/PowerManagerTest.java @@ -16,13 +16,32 @@ package android.os; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; + import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.uiautomator.UiDevice; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; +import org.junit.After; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; + public class PowerManagerTest extends AndroidTestCase { private PowerManager mPm; + private UiDevice mUiDevice; + private Executor mExec = Executors.newSingleThreadExecutor(); + @Mock + private PowerManager.ThermalStatusCallback mCallback; + private static final long CALLBACK_TIMEOUT_MILLI_SEC = 5000; /** * Setup any common data for the upcoming tests. @@ -30,7 +49,18 @@ public class PowerManagerTest extends AndroidTestCase { @Override public void setUp() throws Exception { super.setUp(); + MockitoAnnotations.initMocks(this); + mUiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); mPm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + mUiDevice.executeShellCommand("cmd thermalservice override-status 0"); + } + + /** + * Reset data for the upcoming tests. + */ + @After + public void tearDown() throws Exception { + mUiDevice.executeShellCommand("cmd thermalservice reset"); } /** @@ -137,4 +167,35 @@ public class PowerManagerTest extends AndroidTestCase { // TODO: Threaded test (needs handler) to make sure timed wakelocks work too } + + @Test + public void testGetThermalStatus() throws Exception { + int status = 0; + assertEquals(status, mPm.getCurrentThermalStatus()); + status = 3; + mUiDevice.executeShellCommand("cmd thermalservice override-status " + + Integer.toString(status)); + assertEquals(status, mPm.getCurrentThermalStatus()); + } + + @Test + public void testThermalStatusCallback() throws Exception { + mPm.registerThermalStatusCallback(mCallback, mExec); + verify(mCallback, timeout(CALLBACK_TIMEOUT_MILLI_SEC) + .times(1)).onStatusChange(0); + reset(mCallback); + int status = 3; + mUiDevice.executeShellCommand("cmd thermalservice override-status " + + Integer.toString(status)); + verify(mCallback, timeout(CALLBACK_TIMEOUT_MILLI_SEC) + .times(1)).onStatusChange(status); + reset(mCallback); + mPm.unregisterThermalStatusCallback(mCallback); + status = 2; + mUiDevice.executeShellCommand("cmd thermalservice override-status " + + Integer.toString(status)); + verify(mCallback, timeout(CALLBACK_TIMEOUT_MILLI_SEC) + .times(0)).onStatusChange(status); + + } } |