Index: content/public/android/javatests/src/org/chromium/content/browser/BatteryStatusManagerTest.java |
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/BatteryStatusManagerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/BatteryStatusManagerTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e5f95d1599c61a826dddcb39add7dfe83c4e2a93 |
--- /dev/null |
+++ b/content/public/android/javatests/src/org/chromium/content/browser/BatteryStatusManagerTest.java |
@@ -0,0 +1,166 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.content.browser; |
+ |
+import android.content.Context; |
+import android.content.Intent; |
+ |
+import android.os.BatteryManager; |
+ |
+import android.test.AndroidTestCase; |
+import android.test.suitebuilder.annotation.SmallTest; |
+ |
+/** |
+ * Test suite for BatteryStatusManager. |
+ */ |
+public class BatteryStatusManagerTest extends AndroidTestCase { |
+ |
+ private BatteryStatusManagerForTests mBatteryStatusManager; |
+ |
+ @Override |
+ public void setUp() throws Exception { |
+ super.setUp(); |
+ mBatteryStatusManager = BatteryStatusManagerForTests.getInstance(getContext()); |
+ } |
+ |
+ @SmallTest |
+ public void testOnReceiveBatteryNotPluggedIn() { |
+ 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, 10); |
+ intent.putExtra(BatteryManager.EXTRA_SCALE, 100); |
+ intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_NOT_CHARGING); |
+ |
+ mBatteryStatusManager.onReceive(intent); |
+ |
+ mBatteryStatusManager.verifyCalls("gotBatteryStatus"); |
+ mBatteryStatusManager.verifyValues(false, Double.POSITIVE_INFINITY, |
+ Double.POSITIVE_INFINITY, 0.1); |
+ } |
+ |
+ @SmallTest |
+ public void testOnReceiveBatteryPluggedInACCharging() { |
+ Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); |
+ intent.putExtra(BatteryManager.EXTRA_PRESENT, true); |
+ intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLUGGED_AC); |
+ intent.putExtra(BatteryManager.EXTRA_LEVEL, 50); |
+ intent.putExtra(BatteryManager.EXTRA_SCALE, 100); |
+ intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_CHARGING); |
+ |
+ mBatteryStatusManager.onReceive(intent); |
+ |
+ mBatteryStatusManager.verifyCalls("gotBatteryStatus"); |
+ mBatteryStatusManager.verifyValues(true, Double.POSITIVE_INFINITY, |
+ Double.POSITIVE_INFINITY, 0.5); |
+ } |
+ |
+ @SmallTest |
+ public void testOnReceiveBatteryPluggedInACNotCharging() { |
+ Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); |
+ intent.putExtra(BatteryManager.EXTRA_PRESENT, true); |
+ intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLUGGED_AC); |
+ intent.putExtra(BatteryManager.EXTRA_LEVEL, 50); |
+ intent.putExtra(BatteryManager.EXTRA_SCALE, 100); |
+ intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_NOT_CHARGING); |
+ |
+ mBatteryStatusManager.onReceive(intent); |
+ |
+ mBatteryStatusManager.verifyCalls("gotBatteryStatus"); |
+ mBatteryStatusManager.verifyValues(true, Double.POSITIVE_INFINITY, |
+ Double.POSITIVE_INFINITY, 0.5); |
+ } |
+ |
+ @SmallTest |
+ public void testOnReceiveBatteryPluggedInUSBFull() { |
+ 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, 100); |
+ intent.putExtra(BatteryManager.EXTRA_SCALE, 100); |
+ intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_FULL); |
+ |
+ mBatteryStatusManager.onReceive(intent); |
+ |
+ mBatteryStatusManager.verifyCalls("gotBatteryStatus"); |
+ mBatteryStatusManager.verifyValues(true, 0, Double.POSITIVE_INFINITY, 1); |
+ } |
+ |
+ @SmallTest |
+ public void testOnReceiveNoBattery() { |
+ Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); |
+ intent.putExtra(BatteryManager.EXTRA_PRESENT, false); |
+ intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLUGGED_USB); |
+ |
+ mBatteryStatusManager.onReceive(intent); |
+ |
+ mBatteryStatusManager.verifyCalls("gotBatteryStatus"); |
+ mBatteryStatusManager.verifyValues(true, 0, Double.POSITIVE_INFINITY, 1); |
+ } |
+ |
+ @SmallTest |
+ public void testOnReceiveNoPluggedStatus() { |
+ Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); |
+ intent.putExtra(BatteryManager.EXTRA_PRESENT, true); |
+ |
+ mBatteryStatusManager.onReceive(intent); |
+ |
+ mBatteryStatusManager.verifyCalls("gotBatteryStatus"); |
+ mBatteryStatusManager.verifyValues(true, 0, Double.POSITIVE_INFINITY, 1); |
+ } |
+ |
+ @SmallTest |
+ public void testStartStopSucceeds() { |
+ assertTrue(mBatteryStatusManager.start(0)); |
+ mBatteryStatusManager.stop(); |
+ } |
+ |
+ // Helper class for testing. |
+ |
+ private static class BatteryStatusManagerForTests extends BatteryStatusManager { |
+ |
+ private boolean mCharging = false; |
+ private double mChargingTime = 0; |
+ private double mDischargingTime = 0; |
+ private double mLevel = 0; |
+ private String mCalls = ""; |
+ |
+ private BatteryStatusManagerForTests(Context context) { |
+ super(context); |
+ } |
+ |
+ static BatteryStatusManagerForTests getInstance(Context context) { |
+ return new BatteryStatusManagerForTests(context); |
+ } |
+ |
+ private void verifyValues(boolean charging, double chargingTime, |
+ double dischargingTime, double level) { |
+ assertEquals(charging, mCharging); |
+ assertEquals(chargingTime, mChargingTime); |
+ assertEquals(dischargingTime, mDischargingTime); |
+ assertEquals(level, mLevel); |
+ } |
+ |
+ private void verifyCalls(String names) { |
+ assertEquals(mCalls, names); |
+ } |
+ |
+ @Override |
+ protected boolean ignoreBatteryPresentState() { |
+ return false; |
+ } |
+ |
+ @Override |
+ protected void gotBatteryStatus(boolean charging, double chargingTime, |
+ double dischargingTime, double level) { |
+ mCharging = charging; |
+ mChargingTime = chargingTime; |
+ mDischargingTime = dischargingTime; |
+ mLevel = level; |
+ mCalls = mCalls.concat("gotBatteryStatus"); |
+ } |
+ } |
+ |
+} |