aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sdk/src/java/cyanogenmod/power/PerformanceManager.java11
-rw-r--r--tests/src/org/cyanogenmod/tests/power/unit/PerfomanceManagerTest.java38
2 files changed, 34 insertions, 15 deletions
diff --git a/sdk/src/java/cyanogenmod/power/PerformanceManager.java b/sdk/src/java/cyanogenmod/power/PerformanceManager.java
index 9b44399..484bd9a 100644
--- a/sdk/src/java/cyanogenmod/power/PerformanceManager.java
+++ b/sdk/src/java/cyanogenmod/power/PerformanceManager.java
@@ -66,6 +66,17 @@ public class PerformanceManager {
*/
public static final int PROFILE_BIAS_PERFORMANCE = 4;
+ /**
+ * @hide
+ */
+ public static final int[] POSSIBLE_POWER_PROFILES = new int[] {
+ PROFILE_POWER_SAVE,
+ PROFILE_BALANCED,
+ PROFILE_HIGH_PERFORMANCE,
+ PROFILE_BIAS_POWER_SAVE,
+ PROFILE_BIAS_PERFORMANCE
+ };
+
private int mNumberOfProfiles = 0;
/**
diff --git a/tests/src/org/cyanogenmod/tests/power/unit/PerfomanceManagerTest.java b/tests/src/org/cyanogenmod/tests/power/unit/PerfomanceManagerTest.java
index 7bc3430..ade7bea 100644
--- a/tests/src/org/cyanogenmod/tests/power/unit/PerfomanceManagerTest.java
+++ b/tests/src/org/cyanogenmod/tests/power/unit/PerfomanceManagerTest.java
@@ -56,9 +56,15 @@ public class PerfomanceManagerTest extends AndroidTestCase {
}
@SmallTest
- public void testGetNumberOfPerformanceProfiles() {
- // Assert that we can even set perf profiles
- assertTrue(mCMPerformanceManager.getNumberOfProfiles() > 0);
+ public void testPowerProfileCantBeSetIfNoneSupported() {
+ // Assert that if we attempt to set a power profile if none supported
+ // then we receive a failed response from the service.
+ if (mCMPerformanceManager.getNumberOfProfiles() == 0) {
+ for (int powerProfile = 0; powerProfile <
+ PerformanceManager.POSSIBLE_POWER_PROFILES.length; powerProfile++) {
+ assertFalse(mCMPerformanceManager.setPowerProfile(powerProfile));
+ }
+ }
}
@SmallTest
@@ -68,18 +74,20 @@ public class PerfomanceManagerTest extends AndroidTestCase {
@SmallTest
public void testSetAndGetPowerProfile() {
- int[] expectedStates = new int[] { PerformanceManager.PROFILE_POWER_SAVE,
- PerformanceManager.PROFILE_BALANCED,
- PerformanceManager.PROFILE_HIGH_PERFORMANCE};
-
- // Set the state
- for (int profile : expectedStates) {
- // If the target perf profile is the same as the current one,
- // setPowerProfile will noop, ignore that scenario
- if (mCMPerformanceManager.getPowerProfile() != profile) {
- mCMPerformanceManager.setPowerProfile(profile);
- // Verify that it was set correctly.
- assertEquals(profile, mCMPerformanceManager.getPowerProfile());
+ // Identify what power profiles are supported. The api currently returns
+ // the total number of profiles supported in an ordered manner, thus we can
+ // assume what they are and if we can set everything correctly.
+ for (int powerProfile = 0; powerProfile <
+ PerformanceManager.POSSIBLE_POWER_PROFILES.length; powerProfile++) {
+ if (powerProfile < mCMPerformanceManager.getNumberOfProfiles()) {
+ //It is supported, set it and test if it was set
+ if (mCMPerformanceManager.getPowerProfile() != powerProfile) {
+ mCMPerformanceManager.setPowerProfile(powerProfile);
+ // Verify that it was set correctly.
+ assertEquals(powerProfile, mCMPerformanceManager.getPowerProfile());
+ }
+ } else {
+ assertFalse(mCMPerformanceManager.setPowerProfile(powerProfile));
}
}
}