Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: services/device/battery/battery_status_service_unittest.cc

Issue 2818673003: [DeviceService] Expose battery monitoring solely via the Device Service (Closed)
Patch Set: Java file format change Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/device/battery/battery_status_service.cc ('k') | services/device/device_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "services/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"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "device/battery/battery_status_manager.h" 14 #include "services/device/battery/battery_status_manager.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 namespace device { 17 namespace device {
18 18
19 namespace { 19 namespace {
20 20
21 class FakeBatteryManager : public BatteryStatusManager { 21 class FakeBatteryManager : public BatteryStatusManager {
22 public: 22 public:
23 explicit FakeBatteryManager( 23 explicit FakeBatteryManager(
24 const BatteryStatusService::BatteryUpdateCallback& callback) 24 const BatteryStatusService::BatteryUpdateCallback& callback)
(...skipping 24 matching lines...) Expand all
49 }; 49 };
50 50
51 } // namespace 51 } // namespace
52 52
53 class BatteryStatusServiceTest : public testing::Test { 53 class BatteryStatusServiceTest : public testing::Test {
54 public: 54 public:
55 BatteryStatusServiceTest() 55 BatteryStatusServiceTest()
56 : battery_manager_(nullptr), 56 : battery_manager_(nullptr),
57 callback1_invoked_count_(0), 57 callback1_invoked_count_(0),
58 callback2_invoked_count_(0) {} 58 callback2_invoked_count_(0) {}
59 ~BatteryStatusServiceTest() override {} 59 ~BatteryStatusServiceTest() override {}
60 60
61 protected: 61 protected:
62 typedef BatteryStatusService::BatteryUpdateSubscription BatterySubscription; 62 typedef BatteryStatusService::BatteryUpdateSubscription BatterySubscription;
63 63
64 void SetUp() override { 64 void SetUp() override {
65 callback1_ = base::Bind(&BatteryStatusServiceTest::Callback1, 65 callback1_ = base::Bind(&BatteryStatusServiceTest::Callback1,
66 base::Unretained(this)); 66 base::Unretained(this));
67 callback2_ = base::Bind(&BatteryStatusServiceTest::Callback2, 67 callback2_ = base::Bind(&BatteryStatusServiceTest::Callback2,
68 base::Unretained(this)); 68 base::Unretained(this));
69 69
70 // We keep a raw pointer to the FakeBatteryManager, which we expect to 70 // We keep a raw pointer to the FakeBatteryManager, which we expect to
71 // remain valid for the lifetime of the BatteryStatusService. 71 // remain valid for the lifetime of the BatteryStatusService.
72 std::unique_ptr<FakeBatteryManager> battery_manager( 72 std::unique_ptr<FakeBatteryManager> battery_manager(
73 new FakeBatteryManager(battery_service_.GetUpdateCallbackForTesting())); 73 new FakeBatteryManager(battery_service_.GetUpdateCallbackForTesting()));
74 battery_manager_ = battery_manager.get(); 74 battery_manager_ = battery_manager.get();
75 75
76 battery_service_.SetBatteryManagerForTesting(std::move(battery_manager)); 76 battery_service_.SetBatteryManagerForTesting(std::move(battery_manager));
77 } 77 }
78 78
79 void TearDown() override { 79 void TearDown() override { base::RunLoop().RunUntilIdle(); }
80 base::RunLoop().RunUntilIdle();
81 }
82 80
83 FakeBatteryManager* battery_manager() { 81 FakeBatteryManager* battery_manager() { return battery_manager_; }
84 return battery_manager_;
85 }
86 82
87 std::unique_ptr<BatterySubscription> AddCallback( 83 std::unique_ptr<BatterySubscription> AddCallback(
88 const BatteryStatusService::BatteryUpdateCallback& callback) { 84 const BatteryStatusService::BatteryUpdateCallback& callback) {
89 return battery_service_.AddCallback(callback); 85 return battery_service_.AddCallback(callback);
90 } 86 }
91 87
92 int callback1_invoked_count() const { 88 int callback1_invoked_count() const { return callback1_invoked_count_; }
93 return callback1_invoked_count_;
94 }
95 89
96 int callback2_invoked_count() const { 90 int callback2_invoked_count() const { return callback2_invoked_count_; }
97 return callback2_invoked_count_;
98 }
99 91
100 const mojom::BatteryStatus& battery_status() const { return battery_status_; } 92 const mojom::BatteryStatus& battery_status() const { return battery_status_; }
101 93
102 const BatteryStatusService::BatteryUpdateCallback& callback1() const { 94 const BatteryStatusService::BatteryUpdateCallback& callback1() const {
103 return callback1_; 95 return callback1_;
104 } 96 }
105 97
106 const BatteryStatusService::BatteryUpdateCallback& callback2() const { 98 const BatteryStatusService::BatteryUpdateCallback& callback2() const {
107 return callback2_; 99 return callback2_;
108 } 100 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 EXPECT_EQ(1, callback2_invoked_count()); 175 EXPECT_EQ(1, callback2_invoked_count());
184 176
185 subscription1.reset(); 177 subscription1.reset();
186 battery_manager()->InvokeUpdateCallback(status); 178 battery_manager()->InvokeUpdateCallback(status);
187 base::RunLoop().RunUntilIdle(); 179 base::RunLoop().RunUntilIdle();
188 EXPECT_EQ(1, callback1_invoked_count()); 180 EXPECT_EQ(1, callback1_invoked_count());
189 EXPECT_EQ(2, callback2_invoked_count()); 181 EXPECT_EQ(2, callback2_invoked_count());
190 } 182 }
191 183
192 } // namespace device 184 } // namespace device
OLDNEW
« no previous file with comments | « services/device/battery/battery_status_service.cc ('k') | services/device/device_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698