| 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 "device/battery/battery_status_service.h" | 5 #include "device/battery/battery_status_service.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 ~FakeBatteryManager() override {} | 26 ~FakeBatteryManager() override {} |
| 27 | 27 |
| 28 // Methods from Battery Status Manager | 28 // Methods from Battery Status Manager |
| 29 bool StartListeningBatteryChange() override { | 29 bool StartListeningBatteryChange() override { |
| 30 start_invoked_count_++; | 30 start_invoked_count_++; |
| 31 return true; | 31 return true; |
| 32 } | 32 } |
| 33 | 33 |
| 34 void StopListeningBatteryChange() override { stop_invoked_count_++; } | 34 void StopListeningBatteryChange() override { stop_invoked_count_++; } |
| 35 | 35 |
| 36 void InvokeUpdateCallback(const BatteryStatus& status) { | 36 void InvokeUpdateCallback(const mojom::BatteryStatus& status) { |
| 37 callback_.Run(status); | 37 callback_.Run(status); |
| 38 } | 38 } |
| 39 | 39 |
| 40 int start_invoked_count() const { return start_invoked_count_; } | 40 int start_invoked_count() const { return start_invoked_count_; } |
| 41 int stop_invoked_count() const { return stop_invoked_count_; } | 41 int stop_invoked_count() const { return stop_invoked_count_; } |
| 42 | 42 |
| 43 private: | 43 private: |
| 44 BatteryStatusService::BatteryUpdateCallback callback_; | 44 BatteryStatusService::BatteryUpdateCallback callback_; |
| 45 int start_invoked_count_; | 45 int start_invoked_count_; |
| 46 int stop_invoked_count_; | 46 int stop_invoked_count_; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 } | 90 } |
| 91 | 91 |
| 92 int callback1_invoked_count() const { | 92 int callback1_invoked_count() const { |
| 93 return callback1_invoked_count_; | 93 return callback1_invoked_count_; |
| 94 } | 94 } |
| 95 | 95 |
| 96 int callback2_invoked_count() const { | 96 int callback2_invoked_count() const { |
| 97 return callback2_invoked_count_; | 97 return callback2_invoked_count_; |
| 98 } | 98 } |
| 99 | 99 |
| 100 const BatteryStatus& battery_status() const { | 100 const mojom::BatteryStatus& battery_status() const { return battery_status_; } |
| 101 return battery_status_; | |
| 102 } | |
| 103 | 101 |
| 104 const BatteryStatusService::BatteryUpdateCallback& callback1() const { | 102 const BatteryStatusService::BatteryUpdateCallback& callback1() const { |
| 105 return callback1_; | 103 return callback1_; |
| 106 } | 104 } |
| 107 | 105 |
| 108 const BatteryStatusService::BatteryUpdateCallback& callback2() const { | 106 const BatteryStatusService::BatteryUpdateCallback& callback2() const { |
| 109 return callback2_; | 107 return callback2_; |
| 110 } | 108 } |
| 111 | 109 |
| 112 private: | 110 private: |
| 113 void Callback1(const BatteryStatus& status) { | 111 void Callback1(const mojom::BatteryStatus& status) { |
| 114 callback1_invoked_count_++; | 112 callback1_invoked_count_++; |
| 115 battery_status_ = status; | 113 battery_status_ = status; |
| 116 } | 114 } |
| 117 | 115 |
| 118 void Callback2(const BatteryStatus& status) { | 116 void Callback2(const mojom::BatteryStatus& status) { |
| 119 callback2_invoked_count_++; | 117 callback2_invoked_count_++; |
| 120 battery_status_ = status; | 118 battery_status_ = status; |
| 121 } | 119 } |
| 122 | 120 |
| 123 base::MessageLoop message_loop_; | 121 base::MessageLoop message_loop_; |
| 124 BatteryStatusService battery_service_; | 122 BatteryStatusService battery_service_; |
| 125 FakeBatteryManager* battery_manager_; | 123 FakeBatteryManager* battery_manager_; |
| 126 BatteryStatusService::BatteryUpdateCallback callback1_; | 124 BatteryStatusService::BatteryUpdateCallback callback1_; |
| 127 BatteryStatusService::BatteryUpdateCallback callback2_; | 125 BatteryStatusService::BatteryUpdateCallback callback2_; |
| 128 int callback1_invoked_count_; | 126 int callback1_invoked_count_; |
| 129 int callback2_invoked_count_; | 127 int callback2_invoked_count_; |
| 130 BatteryStatus battery_status_; | 128 mojom::BatteryStatus battery_status_; |
| 131 | 129 |
| 132 DISALLOW_COPY_AND_ASSIGN(BatteryStatusServiceTest); | 130 DISALLOW_COPY_AND_ASSIGN(BatteryStatusServiceTest); |
| 133 }; | 131 }; |
| 134 | 132 |
| 135 TEST_F(BatteryStatusServiceTest, AddFirstCallback) { | 133 TEST_F(BatteryStatusServiceTest, AddFirstCallback) { |
| 136 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 134 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
| 137 EXPECT_EQ(1, battery_manager()->start_invoked_count()); | 135 EXPECT_EQ(1, battery_manager()->start_invoked_count()); |
| 138 EXPECT_EQ(0, battery_manager()->stop_invoked_count()); | 136 EXPECT_EQ(0, battery_manager()->stop_invoked_count()); |
| 139 subscription1.reset(); | 137 subscription1.reset(); |
| 140 EXPECT_EQ(1, battery_manager()->start_invoked_count()); | 138 EXPECT_EQ(1, battery_manager()->start_invoked_count()); |
| 141 EXPECT_EQ(1, battery_manager()->stop_invoked_count()); | 139 EXPECT_EQ(1, battery_manager()->stop_invoked_count()); |
| 142 } | 140 } |
| 143 | 141 |
| 144 TEST_F(BatteryStatusServiceTest, AddCallbackAfterUpdate) { | 142 TEST_F(BatteryStatusServiceTest, AddCallbackAfterUpdate) { |
| 145 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 143 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
| 146 BatteryStatus status; | 144 mojom::BatteryStatus status; |
| 147 battery_manager()->InvokeUpdateCallback(status); | 145 battery_manager()->InvokeUpdateCallback(status); |
| 148 base::RunLoop().RunUntilIdle(); | 146 base::RunLoop().RunUntilIdle(); |
| 149 EXPECT_EQ(1, callback1_invoked_count()); | 147 EXPECT_EQ(1, callback1_invoked_count()); |
| 150 EXPECT_EQ(0, callback2_invoked_count()); | 148 EXPECT_EQ(0, callback2_invoked_count()); |
| 151 | 149 |
| 152 std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); | 150 std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); |
| 153 EXPECT_EQ(1, callback1_invoked_count()); | 151 EXPECT_EQ(1, callback1_invoked_count()); |
| 154 EXPECT_EQ(1, callback2_invoked_count()); | 152 EXPECT_EQ(1, callback2_invoked_count()); |
| 155 } | 153 } |
| 156 | 154 |
| 157 TEST_F(BatteryStatusServiceTest, TwoCallbacksUpdate) { | 155 TEST_F(BatteryStatusServiceTest, TwoCallbacksUpdate) { |
| 158 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 156 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
| 159 std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); | 157 std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); |
| 160 | 158 |
| 161 BatteryStatus status; | 159 mojom::BatteryStatus status; |
| 162 status.charging = true; | 160 status.charging = true; |
| 163 status.charging_time = 100; | 161 status.charging_time = 100; |
| 164 status.discharging_time = 200; | 162 status.discharging_time = 200; |
| 165 status.level = 0.5; | 163 status.level = 0.5; |
| 166 battery_manager()->InvokeUpdateCallback(status); | 164 battery_manager()->InvokeUpdateCallback(status); |
| 167 base::RunLoop().RunUntilIdle(); | 165 base::RunLoop().RunUntilIdle(); |
| 168 | 166 |
| 169 EXPECT_EQ(1, callback1_invoked_count()); | 167 EXPECT_EQ(1, callback1_invoked_count()); |
| 170 EXPECT_EQ(1, callback2_invoked_count()); | 168 EXPECT_EQ(1, callback2_invoked_count()); |
| 171 EXPECT_EQ(status.charging, battery_status().charging); | 169 EXPECT_EQ(status.charging, battery_status().charging); |
| 172 EXPECT_EQ(status.charging_time, battery_status().charging_time); | 170 EXPECT_EQ(status.charging_time, battery_status().charging_time); |
| 173 EXPECT_EQ(status.discharging_time, battery_status().discharging_time); | 171 EXPECT_EQ(status.discharging_time, battery_status().discharging_time); |
| 174 EXPECT_EQ(status.level, battery_status().level); | 172 EXPECT_EQ(status.level, battery_status().level); |
| 175 } | 173 } |
| 176 | 174 |
| 177 TEST_F(BatteryStatusServiceTest, RemoveOneCallback) { | 175 TEST_F(BatteryStatusServiceTest, RemoveOneCallback) { |
| 178 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); | 176 std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1()); |
| 179 std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); | 177 std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2()); |
| 180 | 178 |
| 181 BatteryStatus status; | 179 mojom::BatteryStatus status; |
| 182 battery_manager()->InvokeUpdateCallback(status); | 180 battery_manager()->InvokeUpdateCallback(status); |
| 183 base::RunLoop().RunUntilIdle(); | 181 base::RunLoop().RunUntilIdle(); |
| 184 EXPECT_EQ(1, callback1_invoked_count()); | 182 EXPECT_EQ(1, callback1_invoked_count()); |
| 185 EXPECT_EQ(1, callback2_invoked_count()); | 183 EXPECT_EQ(1, callback2_invoked_count()); |
| 186 | 184 |
| 187 subscription1.reset(); | 185 subscription1.reset(); |
| 188 battery_manager()->InvokeUpdateCallback(status); | 186 battery_manager()->InvokeUpdateCallback(status); |
| 189 base::RunLoop().RunUntilIdle(); | 187 base::RunLoop().RunUntilIdle(); |
| 190 EXPECT_EQ(1, callback1_invoked_count()); | 188 EXPECT_EQ(1, callback1_invoked_count()); |
| 191 EXPECT_EQ(2, callback2_invoked_count()); | 189 EXPECT_EQ(2, callback2_invoked_count()); |
| 192 } | 190 } |
| 193 | 191 |
| 194 } // namespace device | 192 } // namespace device |
| OLD | NEW |