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

Side by Side Diff: chromeos/dbus/power_policy_controller_unittest.cc

Issue 49773003: ChromeOS: Remove MockDBusThreadManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed tests. Created 7 years, 1 month 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
« no previous file with comments | « chromeos/dbus/power_policy_controller.cc ('k') | chromeos/disks/disk_mount_manager_unittest.cc » ('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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chromeos/dbus/power_policy_controller.h" 5 #include "chromeos/dbus/power_policy_controller.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "chromeos/dbus/dbus_thread_manager.h" 8 #include "chromeos/dbus/dbus_thread_manager.h"
9 #include "chromeos/dbus/fake_dbus_thread_manager.h" 9 #include "chromeos/dbus/fake_dbus_thread_manager.h"
10 #include "chromeos/dbus/fake_power_manager_client.h" 10 #include "chromeos/dbus/fake_power_manager_client.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 using ::testing::_; 14 using ::testing::_;
15 using ::testing::SaveArg; 15 using ::testing::SaveArg;
16 16
17 namespace chromeos { 17 namespace chromeos {
18 18
19 class PowerPolicyControllerTest : public testing::Test { 19 class PowerPolicyControllerTest : public testing::Test {
20 public: 20 public:
21 PowerPolicyControllerTest() {} 21 PowerPolicyControllerTest() {}
22 virtual ~PowerPolicyControllerTest() {} 22 virtual ~PowerPolicyControllerTest() {}
23 23
24 virtual void SetUp() OVERRIDE { 24 virtual void SetUp() OVERRIDE {
25 dbus_manager_ = new FakeDBusThreadManager; 25 dbus_manager_ = new FakeDBusThreadManager;
26 fake_power_client_ = new FakePowerManagerClient;
27 dbus_manager_->SetPowerManagerClient(
28 scoped_ptr<PowerManagerClient>(fake_power_client_));
26 DBusThreadManager::InitializeForTesting(dbus_manager_); // Takes ownership. 29 DBusThreadManager::InitializeForTesting(dbus_manager_); // Takes ownership.
27 30
28 policy_controller_.reset( 31 policy_controller_.reset(new PowerPolicyController);
29 new PowerPolicyController(dbus_manager_, &fake_power_client_)); 32 policy_controller_->Init(dbus_manager_);
30 } 33 }
31 34
32 virtual void TearDown() OVERRIDE { 35 virtual void TearDown() OVERRIDE {
33 policy_controller_.reset(); 36 policy_controller_.reset();
34 DBusThreadManager::Shutdown(); 37 DBusThreadManager::Shutdown();
35 } 38 }
36 39
37 protected: 40 protected:
38 FakeDBusThreadManager* dbus_manager_; // Not owned. 41 FakeDBusThreadManager* dbus_manager_; // Not owned.
39 FakePowerManagerClient fake_power_client_; 42 FakePowerManagerClient* fake_power_client_;
40 scoped_ptr<PowerPolicyController> policy_controller_; 43 scoped_ptr<PowerPolicyController> policy_controller_;
41 }; 44 };
42 45
43 TEST_F(PowerPolicyControllerTest, Prefs) { 46 TEST_F(PowerPolicyControllerTest, Prefs) {
44 PowerPolicyController::PrefValues prefs; 47 PowerPolicyController::PrefValues prefs;
45 prefs.ac_screen_dim_delay_ms = 600000; 48 prefs.ac_screen_dim_delay_ms = 600000;
46 prefs.ac_screen_off_delay_ms = 660000; 49 prefs.ac_screen_off_delay_ms = 660000;
47 prefs.ac_idle_delay_ms = 720000; 50 prefs.ac_idle_delay_ms = 720000;
48 prefs.battery_screen_dim_delay_ms = 300000; 51 prefs.battery_screen_dim_delay_ms = 300000;
49 prefs.battery_screen_off_delay_ms = 360000; 52 prefs.battery_screen_off_delay_ms = 360000;
(...skipping 27 matching lines...) Expand all
77 expected_policy.set_lid_closed_action( 80 expected_policy.set_lid_closed_action(
78 power_manager::PowerManagementPolicy_Action_SHUT_DOWN); 81 power_manager::PowerManagementPolicy_Action_SHUT_DOWN);
79 expected_policy.set_use_audio_activity(true); 82 expected_policy.set_use_audio_activity(true);
80 expected_policy.set_use_video_activity(true); 83 expected_policy.set_use_video_activity(true);
81 expected_policy.set_presentation_screen_dim_delay_factor(3.0); 84 expected_policy.set_presentation_screen_dim_delay_factor(3.0);
82 expected_policy.set_user_activity_screen_dim_delay_factor(2.0); 85 expected_policy.set_user_activity_screen_dim_delay_factor(2.0);
83 expected_policy.set_wait_for_initial_user_activity(true); 86 expected_policy.set_wait_for_initial_user_activity(true);
84 expected_policy.set_reason("Prefs"); 87 expected_policy.set_reason("Prefs");
85 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 88 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
86 PowerPolicyController::GetPolicyDebugString( 89 PowerPolicyController::GetPolicyDebugString(
87 fake_power_client_.get_policy())); 90 fake_power_client_->get_policy()));
88 91
89 // Change some prefs and check that an updated policy is sent. 92 // Change some prefs and check that an updated policy is sent.
90 prefs.ac_idle_warning_delay_ms = 700000; 93 prefs.ac_idle_warning_delay_ms = 700000;
91 prefs.battery_idle_warning_delay_ms = 400000; 94 prefs.battery_idle_warning_delay_ms = 400000;
92 prefs.lid_closed_action = PowerPolicyController::ACTION_SUSPEND; 95 prefs.lid_closed_action = PowerPolicyController::ACTION_SUSPEND;
93 policy_controller_->ApplyPrefs(prefs); 96 policy_controller_->ApplyPrefs(prefs);
94 expected_policy.mutable_ac_delays()->set_idle_warning_ms(700000); 97 expected_policy.mutable_ac_delays()->set_idle_warning_ms(700000);
95 expected_policy.mutable_battery_delays()->set_idle_warning_ms(400000); 98 expected_policy.mutable_battery_delays()->set_idle_warning_ms(400000);
96 expected_policy.set_lid_closed_action( 99 expected_policy.set_lid_closed_action(
97 power_manager::PowerManagementPolicy_Action_SUSPEND); 100 power_manager::PowerManagementPolicy_Action_SUSPEND);
98 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 101 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
99 PowerPolicyController::GetPolicyDebugString( 102 PowerPolicyController::GetPolicyDebugString(
100 fake_power_client_.get_policy())); 103 fake_power_client_->get_policy()));
101 104
102 // The enable-screen-lock pref should force the screen-lock delays to 105 // The enable-screen-lock pref should force the screen-lock delays to
103 // match the screen-off delays plus a constant value. 106 // match the screen-off delays plus a constant value.
104 prefs.enable_screen_lock = true; 107 prefs.enable_screen_lock = true;
105 policy_controller_->ApplyPrefs(prefs); 108 policy_controller_->ApplyPrefs(prefs);
106 expected_policy.mutable_ac_delays()->set_screen_lock_ms( 109 expected_policy.mutable_ac_delays()->set_screen_lock_ms(
107 660000 + PowerPolicyController::kScreenLockAfterOffDelayMs); 110 660000 + PowerPolicyController::kScreenLockAfterOffDelayMs);
108 expected_policy.mutable_battery_delays()->set_screen_lock_ms( 111 expected_policy.mutable_battery_delays()->set_screen_lock_ms(
109 360000 + PowerPolicyController::kScreenLockAfterOffDelayMs); 112 360000 + PowerPolicyController::kScreenLockAfterOffDelayMs);
110 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 113 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
111 PowerPolicyController::GetPolicyDebugString( 114 PowerPolicyController::GetPolicyDebugString(
112 fake_power_client_.get_policy())); 115 fake_power_client_->get_policy()));
113 116
114 // If the screen-lock-delay prefs are set to lower values than the 117 // If the screen-lock-delay prefs are set to lower values than the
115 // screen-off delays plus the constant, the lock prefs should take 118 // screen-off delays plus the constant, the lock prefs should take
116 // precedence. 119 // precedence.
117 prefs.ac_screen_lock_delay_ms = 70000; 120 prefs.ac_screen_lock_delay_ms = 70000;
118 prefs.battery_screen_lock_delay_ms = 60000; 121 prefs.battery_screen_lock_delay_ms = 60000;
119 policy_controller_->ApplyPrefs(prefs); 122 policy_controller_->ApplyPrefs(prefs);
120 expected_policy.mutable_ac_delays()->set_screen_lock_ms(70000); 123 expected_policy.mutable_ac_delays()->set_screen_lock_ms(70000);
121 expected_policy.mutable_battery_delays()->set_screen_lock_ms(60000); 124 expected_policy.mutable_battery_delays()->set_screen_lock_ms(60000);
122 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 125 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
123 PowerPolicyController::GetPolicyDebugString( 126 PowerPolicyController::GetPolicyDebugString(
124 fake_power_client_.get_policy())); 127 fake_power_client_->get_policy()));
125 128
126 // If the artificial screen-lock delays would exceed the idle delay, they 129 // If the artificial screen-lock delays would exceed the idle delay, they
127 // shouldn't be set -- the power manager would ignore them since the 130 // shouldn't be set -- the power manager would ignore them since the
128 // idle action should lock the screen in this case. 131 // idle action should lock the screen in this case.
129 prefs.ac_screen_off_delay_ms = prefs.ac_idle_delay_ms - 1; 132 prefs.ac_screen_off_delay_ms = prefs.ac_idle_delay_ms - 1;
130 prefs.battery_screen_off_delay_ms = prefs.battery_idle_delay_ms - 1; 133 prefs.battery_screen_off_delay_ms = prefs.battery_idle_delay_ms - 1;
131 prefs.ac_screen_lock_delay_ms = -1; 134 prefs.ac_screen_lock_delay_ms = -1;
132 prefs.battery_screen_lock_delay_ms = -1; 135 prefs.battery_screen_lock_delay_ms = -1;
133 policy_controller_->ApplyPrefs(prefs); 136 policy_controller_->ApplyPrefs(prefs);
134 expected_policy.mutable_ac_delays()->set_screen_off_ms( 137 expected_policy.mutable_ac_delays()->set_screen_off_ms(
135 prefs.ac_screen_off_delay_ms); 138 prefs.ac_screen_off_delay_ms);
136 expected_policy.mutable_battery_delays()->set_screen_off_ms( 139 expected_policy.mutable_battery_delays()->set_screen_off_ms(
137 prefs.battery_screen_off_delay_ms); 140 prefs.battery_screen_off_delay_ms);
138 expected_policy.mutable_ac_delays()->set_screen_lock_ms(-1); 141 expected_policy.mutable_ac_delays()->set_screen_lock_ms(-1);
139 expected_policy.mutable_battery_delays()->set_screen_lock_ms(-1); 142 expected_policy.mutable_battery_delays()->set_screen_lock_ms(-1);
140 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 143 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
141 PowerPolicyController::GetPolicyDebugString( 144 PowerPolicyController::GetPolicyDebugString(
142 fake_power_client_.get_policy())); 145 fake_power_client_->get_policy()));
143 146
144 // Set the "allow screen wake locks" pref to false. The system should be 147 // Set the "allow screen wake locks" pref to false. The system should be
145 // prevented from suspending due to user inactivity on AC power but the 148 // prevented from suspending due to user inactivity on AC power but the
146 // pref-supplied screen-related delays should be left untouched. 149 // pref-supplied screen-related delays should be left untouched.
147 prefs.allow_screen_wake_locks = false; 150 prefs.allow_screen_wake_locks = false;
148 policy_controller_->ApplyPrefs(prefs); 151 policy_controller_->ApplyPrefs(prefs);
149 policy_controller_->AddScreenWakeLock("Screen"); 152 policy_controller_->AddScreenWakeLock("Screen");
150 expected_policy.set_ac_idle_action( 153 expected_policy.set_ac_idle_action(
151 power_manager::PowerManagementPolicy_Action_DO_NOTHING); 154 power_manager::PowerManagementPolicy_Action_DO_NOTHING);
152 expected_policy.set_reason("Prefs, Screen"); 155 expected_policy.set_reason("Prefs, Screen");
153 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 156 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
154 PowerPolicyController::GetPolicyDebugString( 157 PowerPolicyController::GetPolicyDebugString(
155 fake_power_client_.get_policy())); 158 fake_power_client_->get_policy()));
156 } 159 }
157 160
158 TEST_F(PowerPolicyControllerTest, WakeLocks) { 161 TEST_F(PowerPolicyControllerTest, WakeLocks) {
159 const char kSystemWakeLockReason[] = "system"; 162 const char kSystemWakeLockReason[] = "system";
160 const int system_id = 163 const int system_id =
161 policy_controller_->AddSystemWakeLock(kSystemWakeLockReason); 164 policy_controller_->AddSystemWakeLock(kSystemWakeLockReason);
162 power_manager::PowerManagementPolicy expected_policy; 165 power_manager::PowerManagementPolicy expected_policy;
163 expected_policy.set_ac_idle_action( 166 expected_policy.set_ac_idle_action(
164 power_manager::PowerManagementPolicy_Action_DO_NOTHING); 167 power_manager::PowerManagementPolicy_Action_DO_NOTHING);
165 expected_policy.set_battery_idle_action( 168 expected_policy.set_battery_idle_action(
166 power_manager::PowerManagementPolicy_Action_DO_NOTHING); 169 power_manager::PowerManagementPolicy_Action_DO_NOTHING);
167 expected_policy.set_reason(kSystemWakeLockReason); 170 expected_policy.set_reason(kSystemWakeLockReason);
168 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 171 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
169 PowerPolicyController::GetPolicyDebugString( 172 PowerPolicyController::GetPolicyDebugString(
170 fake_power_client_.get_policy())); 173 fake_power_client_->get_policy()));
171 174
172 const char kScreenWakeLockReason[] = "screen"; 175 const char kScreenWakeLockReason[] = "screen";
173 const int screen_id = policy_controller_->AddScreenWakeLock( 176 const int screen_id = policy_controller_->AddScreenWakeLock(
174 kScreenWakeLockReason); 177 kScreenWakeLockReason);
175 expected_policy.mutable_ac_delays()->set_screen_dim_ms(0); 178 expected_policy.mutable_ac_delays()->set_screen_dim_ms(0);
176 expected_policy.mutable_ac_delays()->set_screen_off_ms(0); 179 expected_policy.mutable_ac_delays()->set_screen_off_ms(0);
177 expected_policy.mutable_ac_delays()->set_screen_lock_ms(0); 180 expected_policy.mutable_ac_delays()->set_screen_lock_ms(0);
178 expected_policy.mutable_battery_delays()->set_screen_dim_ms(0); 181 expected_policy.mutable_battery_delays()->set_screen_dim_ms(0);
179 expected_policy.mutable_battery_delays()->set_screen_off_ms(0); 182 expected_policy.mutable_battery_delays()->set_screen_off_ms(0);
180 expected_policy.mutable_battery_delays()->set_screen_lock_ms(0); 183 expected_policy.mutable_battery_delays()->set_screen_lock_ms(0);
181 expected_policy.set_reason( 184 expected_policy.set_reason(
182 std::string(kScreenWakeLockReason) + ", " + kSystemWakeLockReason); 185 std::string(kScreenWakeLockReason) + ", " + kSystemWakeLockReason);
183 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 186 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
184 PowerPolicyController::GetPolicyDebugString( 187 PowerPolicyController::GetPolicyDebugString(
185 fake_power_client_.get_policy())); 188 fake_power_client_->get_policy()));
186 189
187 policy_controller_->RemoveWakeLock(system_id); 190 policy_controller_->RemoveWakeLock(system_id);
188 expected_policy.set_reason(kScreenWakeLockReason); 191 expected_policy.set_reason(kScreenWakeLockReason);
189 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 192 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
190 PowerPolicyController::GetPolicyDebugString( 193 PowerPolicyController::GetPolicyDebugString(
191 fake_power_client_.get_policy())); 194 fake_power_client_->get_policy()));
192 195
193 policy_controller_->RemoveWakeLock(screen_id); 196 policy_controller_->RemoveWakeLock(screen_id);
194 expected_policy.Clear(); 197 expected_policy.Clear();
195 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 198 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
196 PowerPolicyController::GetPolicyDebugString( 199 PowerPolicyController::GetPolicyDebugString(
197 fake_power_client_.get_policy())); 200 fake_power_client_->get_policy()));
198 } 201 }
199 202
200 } // namespace chromeos 203 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/power_policy_controller.cc ('k') | chromeos/disks/disk_mount_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698