OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 package org.chromium.content.browser; | |
6 | |
7 import android.content.Context; | |
8 import android.content.Intent; | |
9 | |
10 import android.os.BatteryManager; | |
11 | |
12 import android.test.AndroidTestCase; | |
13 import android.test.suitebuilder.annotation.SmallTest; | |
14 | |
15 /** | |
16 * Test suite for BatteryStatusManager. | |
17 */ | |
18 public class BatteryStatusManagerTest extends AndroidTestCase { | |
19 | |
20 private BatteryStatusManagerForTests mBatteryStatusManager; | |
21 | |
22 @Override | |
23 public void setUp() throws Exception { | |
24 super.setUp(); | |
25 mBatteryStatusManager = BatteryStatusManagerForTests.getInstance(getCont
ext()); | |
26 } | |
27 | |
28 @SmallTest | |
29 public void testOnReceiveBatteryNotPluggedIn() { | |
30 Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); | |
31 intent.putExtra(BatteryManager.EXTRA_PRESENT, true); | |
32 intent.putExtra(BatteryManager.EXTRA_PLUGGED, 0); | |
33 intent.putExtra(BatteryManager.EXTRA_LEVEL, 10); | |
34 intent.putExtra(BatteryManager.EXTRA_SCALE, 100); | |
35 intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STAT
US_NOT_CHARGING); | |
36 | |
37 mBatteryStatusManager.onReceive(intent); | |
38 | |
39 mBatteryStatusManager.verifyCalls("gotBatteryStatus"); | |
40 mBatteryStatusManager.verifyValues(false, Double.POSITIVE_INFINITY, | |
41 Double.POSITIVE_INFINITY, 0.1); | |
42 } | |
43 | |
44 @SmallTest | |
45 public void testOnReceiveBatteryPluggedInACCharging() { | |
46 Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); | |
47 intent.putExtra(BatteryManager.EXTRA_PRESENT, true); | |
48 intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLU
GGED_AC); | |
49 intent.putExtra(BatteryManager.EXTRA_LEVEL, 50); | |
50 intent.putExtra(BatteryManager.EXTRA_SCALE, 100); | |
51 intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STAT
US_CHARGING); | |
52 | |
53 mBatteryStatusManager.onReceive(intent); | |
54 | |
55 mBatteryStatusManager.verifyCalls("gotBatteryStatus"); | |
56 mBatteryStatusManager.verifyValues(true, Double.POSITIVE_INFINITY, | |
57 Double.POSITIVE_INFINITY, 0.5); | |
58 } | |
59 | |
60 @SmallTest | |
61 public void testOnReceiveBatteryPluggedInACNotCharging() { | |
62 Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); | |
63 intent.putExtra(BatteryManager.EXTRA_PRESENT, true); | |
64 intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLU
GGED_AC); | |
65 intent.putExtra(BatteryManager.EXTRA_LEVEL, 50); | |
66 intent.putExtra(BatteryManager.EXTRA_SCALE, 100); | |
67 intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STAT
US_NOT_CHARGING); | |
68 | |
69 mBatteryStatusManager.onReceive(intent); | |
70 | |
71 mBatteryStatusManager.verifyCalls("gotBatteryStatus"); | |
72 mBatteryStatusManager.verifyValues(true, Double.POSITIVE_INFINITY, | |
73 Double.POSITIVE_INFINITY, 0.5); | |
74 } | |
75 | |
76 @SmallTest | |
77 public void testOnReceiveBatteryPluggedInUSBFull() { | |
78 Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); | |
79 intent.putExtra(BatteryManager.EXTRA_PRESENT, true); | |
80 intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLU
GGED_USB); | |
81 intent.putExtra(BatteryManager.EXTRA_LEVEL, 100); | |
82 intent.putExtra(BatteryManager.EXTRA_SCALE, 100); | |
83 intent.putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STAT
US_FULL); | |
84 | |
85 mBatteryStatusManager.onReceive(intent); | |
86 | |
87 mBatteryStatusManager.verifyCalls("gotBatteryStatus"); | |
88 mBatteryStatusManager.verifyValues(true, 0, Double.POSITIVE_INFINITY, 1)
; | |
89 } | |
90 | |
91 @SmallTest | |
92 public void testOnReceiveNoBattery() { | |
93 Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); | |
94 intent.putExtra(BatteryManager.EXTRA_PRESENT, false); | |
95 intent.putExtra(BatteryManager.EXTRA_PLUGGED, BatteryManager.BATTERY_PLU
GGED_USB); | |
96 | |
97 mBatteryStatusManager.onReceive(intent); | |
98 | |
99 mBatteryStatusManager.verifyCalls("gotBatteryStatus"); | |
100 mBatteryStatusManager.verifyValues(true, 0, Double.POSITIVE_INFINITY, 1)
; | |
101 } | |
102 | |
103 @SmallTest | |
104 public void testOnReceiveNoPluggedStatus() { | |
105 Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); | |
106 intent.putExtra(BatteryManager.EXTRA_PRESENT, true); | |
107 | |
108 mBatteryStatusManager.onReceive(intent); | |
109 | |
110 mBatteryStatusManager.verifyCalls("gotBatteryStatus"); | |
111 mBatteryStatusManager.verifyValues(true, 0, Double.POSITIVE_INFINITY, 1)
; | |
112 } | |
113 | |
114 @SmallTest | |
115 public void testStartStopSucceeds() { | |
116 assertTrue(mBatteryStatusManager.start(0)); | |
117 mBatteryStatusManager.stop(); | |
118 } | |
119 | |
120 // Helper class for testing. | |
121 | |
122 private static class BatteryStatusManagerForTests extends BatteryStatusManag
er { | |
123 | |
124 private boolean mCharging = false; | |
125 private double mChargingTime = 0; | |
126 private double mDischargingTime = 0; | |
127 private double mLevel = 0; | |
128 private String mCalls = ""; | |
129 | |
130 private BatteryStatusManagerForTests(Context context) { | |
131 super(context); | |
132 } | |
133 | |
134 static BatteryStatusManagerForTests getInstance(Context context) { | |
135 return new BatteryStatusManagerForTests(context); | |
136 } | |
137 | |
138 private void verifyValues(boolean charging, double chargingTime, | |
139 double dischargingTime, double level) { | |
140 assertEquals(charging, mCharging); | |
141 assertEquals(chargingTime, mChargingTime); | |
142 assertEquals(dischargingTime, mDischargingTime); | |
143 assertEquals(level, mLevel); | |
144 } | |
145 | |
146 private void verifyCalls(String names) { | |
147 assertEquals(mCalls, names); | |
148 } | |
149 | |
150 @Override | |
151 protected boolean ignoreBatteryPresentState() { | |
152 return false; | |
153 } | |
154 | |
155 @Override | |
156 protected void gotBatteryStatus(boolean charging, double chargingTime, | |
157 double dischargingTime, double level) { | |
158 mCharging = charging; | |
159 mChargingTime = chargingTime; | |
160 mDischargingTime = dischargingTime; | |
161 mLevel = level; | |
162 mCalls = mCalls.concat("gotBatteryStatus"); | |
163 } | |
164 } | |
165 | |
166 } | |
OLD | NEW |