| Index: device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
|
| diff --git a/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java b/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
|
| index addcdde2865092e319b66541dd1a4f292c26cb92..536e31b207adbc7c8d02cc53558d337fc7de5184 100644
|
| --- a/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
|
| +++ b/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
|
| @@ -6,6 +6,7 @@ package org.chromium.device.battery;
|
|
|
| import android.content.Intent;
|
| import android.os.BatteryManager;
|
| +import android.os.Build;
|
| import android.test.AndroidTestCase;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
|
|
| @@ -42,11 +43,50 @@ public class BatteryStatusManagerTest extends AndroidTestCase {
|
| assertEquals(level, mLevel);
|
| }
|
|
|
| + private static class BatteryManagerForTesting extends BatteryManager {
|
| + private int mChargeCounter;
|
| + private int mCapacity;
|
| + private int mAverageCurrent;
|
| +
|
| + @Override
|
| + public int getIntProperty(int id) {
|
| + switch(id) {
|
| + case BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER :
|
| + return mChargeCounter;
|
| + case BatteryManager.BATTERY_PROPERTY_CAPACITY:
|
| + return mCapacity;
|
| + case BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE:
|
| + return mAverageCurrent;
|
| + }
|
| + fail();
|
| + return 0;
|
| + }
|
| +
|
| + public void setIntProperty(int id, int value) {
|
| + switch(id) {
|
| + case BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER :
|
| + mChargeCounter = value;
|
| + return;
|
| + case BatteryManager.BATTERY_PROPERTY_CAPACITY:
|
| + mCapacity = value;
|
| + return;
|
| + case BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE:
|
| + mAverageCurrent = value;
|
| + return;
|
| + }
|
| + fail();
|
| + }
|
| + }
|
| +
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| - mManager =
|
| - BatteryStatusManager.createBatteryStatusManagerForTesting(getContext(), mCallback);
|
| + initializeManager(null);
|
| + }
|
| +
|
| + public void initializeManager(BatteryManagerForTesting managerForTesting) {
|
| + mManager = BatteryStatusManager.createBatteryStatusManagerForTesting(
|
| + getContext(), mCallback, managerForTesting);
|
| }
|
|
|
| @SmallTest
|
| @@ -125,4 +165,72 @@ public class BatteryStatusManagerTest extends AndroidTestCase {
|
| assertTrue(mManager.start());
|
| mManager.stop();
|
| }
|
| +
|
| + @SmallTest
|
| + public void testLollipopChargingTimeEstimate() {
|
| + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
|
| + return;
|
| +
|
| + BatteryManagerForTesting testManager = new BatteryManagerForTesting();
|
| + initializeManager(testManager);
|
| +
|
| + Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
|
| + intent.putExtra(BatteryManager.EXTRA_PRESENT, true);
|
| + intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLUGGED_USB);
|
| + intent.putExtra(BatteryManager.EXTRA_LEVEL, 50);
|
| + intent.putExtra(BatteryManager.EXTRA_SCALE, 100);
|
| +
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER, 1000);
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY, 50);
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE, 100);
|
| +
|
| + mManager.onReceive(intent);
|
| + verifyValues(true, 0.5 * 10 * 3600, Double.POSITIVE_INFINITY, 0.5);
|
| + }
|
| +
|
| + @SmallTest
|
| + public void testLollipopDischargingTimeEstimate() {
|
| + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
|
| + return;
|
| +
|
| + BatteryManagerForTesting testManager = new BatteryManagerForTesting();
|
| + initializeManager(testManager);
|
| +
|
| + Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
|
| + intent.putExtra(BatteryManager.EXTRA_PRESENT, true);
|
| + intent.putExtra(BatteryManager.EXTRA_PLUGGED, 0);
|
| + intent.putExtra(BatteryManager.EXTRA_LEVEL, 60);
|
| + intent.putExtra(BatteryManager.EXTRA_SCALE, 100);
|
| + intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_NOT_CHARGING);
|
| +
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER, 1000);
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY, 60);
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE, -100);
|
| +
|
| + mManager.onReceive(intent);
|
| + verifyValues(false, Double.POSITIVE_INFINITY, 0.6 * 10 * 3600, 0.6);
|
| + }
|
| +
|
| + @SmallTest
|
| + public void testLollipopDischargingTimeEstimateRounding() {
|
| + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
|
| + return;
|
| +
|
| + BatteryManagerForTesting testManager = new BatteryManagerForTesting();
|
| + initializeManager(testManager);
|
| +
|
| + Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
|
| + intent.putExtra(BatteryManager.EXTRA_PRESENT, true);
|
| + intent.putExtra(BatteryManager.EXTRA_PLUGGED, 0);
|
| + intent.putExtra(BatteryManager.EXTRA_LEVEL, 90);
|
| + intent.putExtra(BatteryManager.EXTRA_SCALE, 100);
|
| + intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_NOT_CHARGING);
|
| +
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER, 1999);
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY, 90);
|
| + testManager.setIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE, -1000);
|
| +
|
| + mManager.onReceive(intent);
|
| + verifyValues(false, Double.POSITIVE_INFINITY, Math.floor(0.9 * 1.999 * 3600), 0.9);
|
| + }
|
| }
|
|
|