OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "device/battery/battery_status_manager.h" | 8 #include "device/battery/battery_status_manager.h" |
9 #include "device/battery/battery_status_service.h" | 9 #include "device/battery/battery_status_service.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 | 132 |
133 TEST_F(BatteryStatusServiceTest, AddFirstCallback) { | 133 TEST_F(BatteryStatusServiceTest, AddFirstCallback) { |
134 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 134 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
135 EXPECT_EQ(1, battery_manager()->start_invoked_count()); | 135 EXPECT_EQ(1, battery_manager()->start_invoked_count()); |
136 EXPECT_EQ(0, battery_manager()->stop_invoked_count()); | 136 EXPECT_EQ(0, battery_manager()->stop_invoked_count()); |
137 subscription1.reset(); | 137 subscription1.reset(); |
138 EXPECT_EQ(1, battery_manager()->start_invoked_count()); | 138 EXPECT_EQ(1, battery_manager()->start_invoked_count()); |
139 EXPECT_EQ(1, battery_manager()->stop_invoked_count()); | 139 EXPECT_EQ(1, battery_manager()->stop_invoked_count()); |
140 } | 140 } |
141 | 141 |
142 TEST_F(BatteryStatusServiceTest, AddCallbackAfterUpdate) { | 142 // Fails on Windows. http://crbug.com/429942. |
| 143 #if defined(OS_WIN) |
| 144 #define MAYBE_AddCallbackAfterUpdate DISABLED_AddCallbackAfterUpdate |
| 145 #else |
| 146 #define MAYBE_AddCallbackAfterUpdate AddCallbackAfterUpdate |
| 147 #endif |
| 148 TEST_F(BatteryStatusServiceTest, MAYBE_AddCallbackAfterUpdate) { |
143 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 149 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
144 BatteryStatus status; | 150 BatteryStatus status; |
145 battery_manager()->InvokeUpdateCallback(status); | 151 battery_manager()->InvokeUpdateCallback(status); |
146 base::RunLoop().RunUntilIdle(); | 152 base::RunLoop().RunUntilIdle(); |
147 EXPECT_EQ(1, callback1_invoked_count()); | 153 EXPECT_EQ(1, callback1_invoked_count()); |
148 EXPECT_EQ(0, callback2_invoked_count()); | 154 EXPECT_EQ(0, callback2_invoked_count()); |
149 | 155 |
150 scoped_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); | 156 scoped_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); |
151 EXPECT_EQ(1, callback1_invoked_count()); | 157 EXPECT_EQ(1, callback1_invoked_count()); |
152 EXPECT_EQ(1, callback2_invoked_count()); | 158 EXPECT_EQ(1, callback2_invoked_count()); |
153 } | 159 } |
154 | 160 |
155 TEST_F(BatteryStatusServiceTest, TwoCallbacksUpdate) { | 161 // Fails on Windows. http://crbug.com/429942. |
| 162 #if defined(OS_WIN) |
| 163 #define MAYBE_TwoCallbacksUpdate DISABLED_TwoCallbacksUpdate |
| 164 #else |
| 165 #define MAYBE_TwoCallbacksUpdate TwoCallbacksUpdate |
| 166 #endif |
| 167 TEST_F(BatteryStatusServiceTest, MAYBE_TwoCallbacksUpdate) { |
156 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 168 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
157 scoped_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); | 169 scoped_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); |
158 | 170 |
159 BatteryStatus status; | 171 BatteryStatus status; |
160 status.charging = true; | 172 status.charging = true; |
161 status.charging_time = 100; | 173 status.charging_time = 100; |
162 status.discharging_time = 200; | 174 status.discharging_time = 200; |
163 status.level = 0.5; | 175 status.level = 0.5; |
164 battery_manager()->InvokeUpdateCallback(status); | 176 battery_manager()->InvokeUpdateCallback(status); |
165 base::RunLoop().RunUntilIdle(); | 177 base::RunLoop().RunUntilIdle(); |
166 | 178 |
167 EXPECT_EQ(1, callback1_invoked_count()); | 179 EXPECT_EQ(1, callback1_invoked_count()); |
168 EXPECT_EQ(1, callback2_invoked_count()); | 180 EXPECT_EQ(1, callback2_invoked_count()); |
169 EXPECT_EQ(status.charging, battery_status().charging); | 181 EXPECT_EQ(status.charging, battery_status().charging); |
170 EXPECT_EQ(status.charging_time, battery_status().charging_time); | 182 EXPECT_EQ(status.charging_time, battery_status().charging_time); |
171 EXPECT_EQ(status.discharging_time, battery_status().discharging_time); | 183 EXPECT_EQ(status.discharging_time, battery_status().discharging_time); |
172 EXPECT_EQ(status.level, battery_status().level); | 184 EXPECT_EQ(status.level, battery_status().level); |
173 } | 185 } |
174 | 186 |
175 TEST_F(BatteryStatusServiceTest, RemoveOneCallback) { | 187 // Fails on Windows. http://crbug.com/429942. |
| 188 #if defined(OS_WIN) |
| 189 #define MAYBE_RemoveOneCallback DISABLED_RemoveOneCallback |
| 190 #else |
| 191 #define MAYBE_RemoveOneCallback RemoveOneCallback |
| 192 #endif |
| 193 TEST_F(BatteryStatusServiceTest, MAYBE_RemoveOneCallback) { |
176 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 194 scoped_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
177 scoped_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); | 195 scoped_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); |
178 | 196 |
179 BatteryStatus status; | 197 BatteryStatus status; |
180 battery_manager()->InvokeUpdateCallback(status); | 198 battery_manager()->InvokeUpdateCallback(status); |
181 base::RunLoop().RunUntilIdle(); | 199 base::RunLoop().RunUntilIdle(); |
182 EXPECT_EQ(1, callback1_invoked_count()); | 200 EXPECT_EQ(1, callback1_invoked_count()); |
183 EXPECT_EQ(1, callback2_invoked_count()); | 201 EXPECT_EQ(1, callback2_invoked_count()); |
184 | 202 |
185 subscription1.reset(); | 203 subscription1.reset(); |
186 battery_manager()->InvokeUpdateCallback(status); | 204 battery_manager()->InvokeUpdateCallback(status); |
187 base::RunLoop().RunUntilIdle(); | 205 base::RunLoop().RunUntilIdle(); |
188 EXPECT_EQ(1, callback1_invoked_count()); | 206 EXPECT_EQ(1, callback1_invoked_count()); |
189 EXPECT_EQ(2, callback2_invoked_count()); | 207 EXPECT_EQ(2, callback2_invoked_count()); |
190 } | 208 } |
191 | 209 |
192 } // namespace | 210 } // namespace |
193 | 211 |
194 } // namespace device | 212 } // namespace device |
OLD | NEW |