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

Unified Diff: 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, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/battery/battery_status_service.cc ('k') | services/device/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/battery/battery_status_service_unittest.cc
diff --git a/device/battery/battery_status_service_unittest.cc b/device/battery/battery_status_service_unittest.cc
deleted file mode 100644
index a9a964267d50b15f32b2662e7492ed8fef763114..0000000000000000000000000000000000000000
--- a/device/battery/battery_status_service_unittest.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-// 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.
-
-#include "device/battery/battery_status_service.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/bind.h"
-#include "base/macros.h"
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
-#include "device/battery/battery_status_manager.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace device {
-
-namespace {
-
-class FakeBatteryManager : public BatteryStatusManager {
- public:
- explicit FakeBatteryManager(
- const BatteryStatusService::BatteryUpdateCallback& callback)
- : callback_(callback), start_invoked_count_(0), stop_invoked_count_(0) {}
- ~FakeBatteryManager() override {}
-
- // Methods from Battery Status Manager
- bool StartListeningBatteryChange() override {
- start_invoked_count_++;
- return true;
- }
-
- void StopListeningBatteryChange() override { stop_invoked_count_++; }
-
- void InvokeUpdateCallback(const mojom::BatteryStatus& status) {
- callback_.Run(status);
- }
-
- int start_invoked_count() const { return start_invoked_count_; }
- int stop_invoked_count() const { return stop_invoked_count_; }
-
- private:
- BatteryStatusService::BatteryUpdateCallback callback_;
- int start_invoked_count_;
- int stop_invoked_count_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeBatteryManager);
-};
-
-} // namespace
-
-class BatteryStatusServiceTest : public testing::Test {
- public:
- BatteryStatusServiceTest()
- : battery_manager_(nullptr),
- callback1_invoked_count_(0),
- callback2_invoked_count_(0) {}
- ~BatteryStatusServiceTest() override {}
-
- protected:
- typedef BatteryStatusService::BatteryUpdateSubscription BatterySubscription;
-
- void SetUp() override {
- callback1_ = base::Bind(&BatteryStatusServiceTest::Callback1,
- base::Unretained(this));
- callback2_ = base::Bind(&BatteryStatusServiceTest::Callback2,
- base::Unretained(this));
-
- // We keep a raw pointer to the FakeBatteryManager, which we expect to
- // remain valid for the lifetime of the BatteryStatusService.
- std::unique_ptr<FakeBatteryManager> battery_manager(
- new FakeBatteryManager(battery_service_.GetUpdateCallbackForTesting()));
- battery_manager_ = battery_manager.get();
-
- battery_service_.SetBatteryManagerForTesting(std::move(battery_manager));
- }
-
- void TearDown() override {
- base::RunLoop().RunUntilIdle();
- }
-
- FakeBatteryManager* battery_manager() {
- return battery_manager_;
- }
-
- std::unique_ptr<BatterySubscription> AddCallback(
- const BatteryStatusService::BatteryUpdateCallback& callback) {
- return battery_service_.AddCallback(callback);
- }
-
- int callback1_invoked_count() const {
- return callback1_invoked_count_;
- }
-
- int callback2_invoked_count() const {
- return callback2_invoked_count_;
- }
-
- const mojom::BatteryStatus& battery_status() const { return battery_status_; }
-
- const BatteryStatusService::BatteryUpdateCallback& callback1() const {
- return callback1_;
- }
-
- const BatteryStatusService::BatteryUpdateCallback& callback2() const {
- return callback2_;
- }
-
- private:
- void Callback1(const mojom::BatteryStatus& status) {
- callback1_invoked_count_++;
- battery_status_ = status;
- }
-
- void Callback2(const mojom::BatteryStatus& status) {
- callback2_invoked_count_++;
- battery_status_ = status;
- }
-
- base::MessageLoop message_loop_;
- BatteryStatusService battery_service_;
- FakeBatteryManager* battery_manager_;
- BatteryStatusService::BatteryUpdateCallback callback1_;
- BatteryStatusService::BatteryUpdateCallback callback2_;
- int callback1_invoked_count_;
- int callback2_invoked_count_;
- mojom::BatteryStatus battery_status_;
-
- DISALLOW_COPY_AND_ASSIGN(BatteryStatusServiceTest);
-};
-
-TEST_F(BatteryStatusServiceTest, AddFirstCallback) {
- std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1());
- EXPECT_EQ(1, battery_manager()->start_invoked_count());
- EXPECT_EQ(0, battery_manager()->stop_invoked_count());
- subscription1.reset();
- EXPECT_EQ(1, battery_manager()->start_invoked_count());
- EXPECT_EQ(1, battery_manager()->stop_invoked_count());
-}
-
-TEST_F(BatteryStatusServiceTest, AddCallbackAfterUpdate) {
- std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1());
- mojom::BatteryStatus status;
- battery_manager()->InvokeUpdateCallback(status);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, callback1_invoked_count());
- EXPECT_EQ(0, callback2_invoked_count());
-
- std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2());
- EXPECT_EQ(1, callback1_invoked_count());
- EXPECT_EQ(1, callback2_invoked_count());
-}
-
-TEST_F(BatteryStatusServiceTest, TwoCallbacksUpdate) {
- std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1());
- std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2());
-
- mojom::BatteryStatus status;
- status.charging = true;
- status.charging_time = 100;
- status.discharging_time = 200;
- status.level = 0.5;
- battery_manager()->InvokeUpdateCallback(status);
- base::RunLoop().RunUntilIdle();
-
- EXPECT_EQ(1, callback1_invoked_count());
- EXPECT_EQ(1, callback2_invoked_count());
- EXPECT_EQ(status.charging, battery_status().charging);
- EXPECT_EQ(status.charging_time, battery_status().charging_time);
- EXPECT_EQ(status.discharging_time, battery_status().discharging_time);
- EXPECT_EQ(status.level, battery_status().level);
-}
-
-TEST_F(BatteryStatusServiceTest, RemoveOneCallback) {
- std::unique_ptr<BatterySubscription> subscription1 = AddCallback(callback1());
- std::unique_ptr<BatterySubscription> subscription2 = AddCallback(callback2());
-
- mojom::BatteryStatus status;
- battery_manager()->InvokeUpdateCallback(status);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, callback1_invoked_count());
- EXPECT_EQ(1, callback2_invoked_count());
-
- subscription1.reset();
- battery_manager()->InvokeUpdateCallback(status);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, callback1_invoked_count());
- EXPECT_EQ(2, callback2_invoked_count());
-}
-
-} // namespace device
« no previous file with comments | « device/battery/battery_status_service.cc ('k') | services/device/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698