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

Side by Side Diff: content/renderer/battery_status/battery_status_dispatcher_unittest.cc

Issue 470683002: Revert "Refactor code listening to platform events in content/renderer/." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
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 "battery_status_dispatcher.h" 5 #include "battery_status_dispatcher.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "content/common/battery_status_messages.h" 9 #include "content/common/battery_status_messages.h"
10 #include "content/public/test/mock_render_thread.h"
11 #include "content/public/test/test_utils.h" 10 #include "content/public/test/test_utils.h"
12 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
13 #include "third_party/WebKit/public/platform/WebBatteryStatusListener.h" 12 #include "third_party/WebKit/public/platform/WebBatteryStatusListener.h"
14 13
15 namespace content { 14 namespace content {
16 15
17 class MockBatteryStatusListener : public blink::WebBatteryStatusListener { 16 class MockBatteryStatusListener : public blink::WebBatteryStatusListener {
18 public: 17 public:
19 MockBatteryStatusListener() : did_change_battery_status_(false) { } 18 MockBatteryStatusListener() : did_change_battery_status_(false) { }
20 virtual ~MockBatteryStatusListener() { } 19 virtual ~MockBatteryStatusListener() { }
21 20
22 // blink::WebBatteryStatusListener method. 21 // blink::WebBatteryStatusListener method.
23 virtual void updateBatteryStatus( 22 virtual void updateBatteryStatus(
24 const blink::WebBatteryStatus& status) OVERRIDE { 23 const blink::WebBatteryStatus& status) OVERRIDE {
25 status_ = status; 24 status_ = status;
26 did_change_battery_status_ = true; 25 did_change_battery_status_ = true;
27 } 26 }
28 27
29 const blink::WebBatteryStatus& status() const { return status_; } 28 const blink::WebBatteryStatus& status() const { return status_; }
30 bool did_change_battery_status() const { return did_change_battery_status_; } 29 bool did_change_battery_status() const { return did_change_battery_status_; }
31 30
32 private: 31 private:
33 bool did_change_battery_status_; 32 bool did_change_battery_status_;
34 blink::WebBatteryStatus status_; 33 blink::WebBatteryStatus status_;
35 34
36 DISALLOW_COPY_AND_ASSIGN(MockBatteryStatusListener); 35 DISALLOW_COPY_AND_ASSIGN(MockBatteryStatusListener);
37 }; 36 };
38 37
39 class BatteryStatusDispatcherTest : public testing::Test { 38 class BatteryStatusDispatcherForTesting : public BatteryStatusDispatcher {
39 public:
40 BatteryStatusDispatcherForTesting()
41 : BatteryStatusDispatcher(0),
42 start_invoked_(false),
43 stop_invoked_(false) { }
44
45 virtual ~BatteryStatusDispatcherForTesting() { }
46
47 bool start_invoked() const { return start_invoked_; }
48 bool stop_invoked() const { return stop_invoked_; }
49
50 protected:
51 virtual bool Start() OVERRIDE {
52 start_invoked_ = true;
53 return true;
54 }
55
56 virtual bool Stop() OVERRIDE {
57 stop_invoked_ = true;
58 return true;
59 }
60
40 private: 61 private:
41 // We need to create a MockRenderThread so RenderThread::Get() doesn't return 62 bool start_invoked_;
42 // null. 63 bool stop_invoked_;
43 MockRenderThread render_thread_; 64
65 DISALLOW_COPY_AND_ASSIGN(BatteryStatusDispatcherForTesting);
44 }; 66 };
45 67
46 TEST_F(BatteryStatusDispatcherTest, UpdateListener) { 68 TEST(BatteryStatusDispatcherTest, Start) {
47 MockBatteryStatusListener listener; 69 MockBatteryStatusListener listener;
48 BatteryStatusDispatcher dispatcher(0); 70 BatteryStatusDispatcherForTesting dispatcher;
71
72 EXPECT_FALSE(dispatcher.start_invoked());
73 EXPECT_FALSE(dispatcher.stop_invoked());
74
75 dispatcher.SetListener(&listener);
76 EXPECT_TRUE(dispatcher.start_invoked());
77
78 dispatcher.SetListener(0);
79 EXPECT_TRUE(dispatcher.stop_invoked());
80 }
81
82 TEST(BatteryStatusDispatcherTest, UpdateListener) {
83 MockBatteryStatusListener listener;
84 BatteryStatusDispatcherForTesting dispatcher;
49 85
50 blink::WebBatteryStatus status; 86 blink::WebBatteryStatus status;
51 status.charging = true; 87 status.charging = true;
52 status.chargingTime = 100; 88 status.chargingTime = 100;
53 status.dischargingTime = 200; 89 status.dischargingTime = 200;
54 status.level = 0.5; 90 status.level = 0.5;
55 91
56 dispatcher.Start(&listener); 92 dispatcher.SetListener(&listener);
93 EXPECT_TRUE(dispatcher.start_invoked());
57 94
58 BatteryStatusMsg_DidChange message(status); 95 BatteryStatusMsg_DidChange message(status);
59 dispatcher.OnControlMessageReceived(message); 96 dispatcher.OnControlMessageReceived(message);
60 97
61 const blink::WebBatteryStatus& received_status = listener.status(); 98 const blink::WebBatteryStatus& received_status = listener.status();
62 EXPECT_TRUE(listener.did_change_battery_status()); 99 EXPECT_TRUE(listener.did_change_battery_status());
63 EXPECT_EQ(status.charging, received_status.charging); 100 EXPECT_EQ(status.charging, received_status.charging);
64 EXPECT_EQ(status.chargingTime, received_status.chargingTime); 101 EXPECT_EQ(status.chargingTime, received_status.chargingTime);
65 EXPECT_EQ(status.dischargingTime, received_status.dischargingTime); 102 EXPECT_EQ(status.dischargingTime, received_status.dischargingTime);
66 EXPECT_EQ(status.level, received_status.level); 103 EXPECT_EQ(status.level, received_status.level);
67 104
68 dispatcher.Stop(); 105 dispatcher.SetListener(0);
106 EXPECT_TRUE(dispatcher.stop_invoked());
69 } 107 }
70 108
71 TEST_F(BatteryStatusDispatcherTest, NoUpdateWhenNullListener) { 109 TEST(BatteryStatusDispatcherTest, NoUpdateWhenNullListener) {
72 MockBatteryStatusListener listener; 110 MockBatteryStatusListener listener;
73 BatteryStatusDispatcher dispatcher(0); 111 BatteryStatusDispatcherForTesting dispatcher;
74 112
75 dispatcher.Start(0); 113 dispatcher.SetListener(0);
76 dispatcher.Stop(); 114 EXPECT_FALSE(dispatcher.start_invoked());
115 EXPECT_TRUE(dispatcher.stop_invoked());
77 116
78 blink::WebBatteryStatus status; 117 blink::WebBatteryStatus status;
79 BatteryStatusMsg_DidChange message(status); 118 BatteryStatusMsg_DidChange message(status);
80 dispatcher.OnControlMessageReceived(message); 119 dispatcher.OnControlMessageReceived(message);
81 EXPECT_FALSE(listener.did_change_battery_status()); 120 EXPECT_FALSE(listener.did_change_battery_status());
82 } 121 }
83 122
84 } // namespace content 123 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698