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

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

Issue 14134004: chromeos: Move default power management policy into Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move pref-watching back out of PowerPolicyController Created 7 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 unified diff | Download patch | Annotate | Revision Log
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 "chromeos/dbus/dbus_thread_manager.h" 7 #include "chromeos/dbus/dbus_thread_manager.h"
8 #include "chromeos/dbus/mock_dbus_thread_manager.h" 8 #include "chromeos/dbus/mock_dbus_thread_manager.h"
9 #include "chromeos/dbus/mock_power_manager_client.h" 9 #include "chromeos/dbus/mock_power_manager_client.h"
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 using ::testing::_; 13 using ::testing::_;
14 using ::testing::SaveArg; 14 using ::testing::SaveArg;
15 15
16 namespace chromeos { 16 namespace chromeos {
17 17
18 class PowerPolicyControllerTest : public testing::Test { 18 class PowerPolicyControllerTest : public testing::Test {
19 public: 19 public:
20 PowerPolicyControllerTest() {} 20 PowerPolicyControllerTest() {}
21 virtual ~PowerPolicyControllerTest() {} 21 virtual ~PowerPolicyControllerTest() {}
22 22
23 virtual void SetUp() OVERRIDE { 23 virtual void SetUp() OVERRIDE {
24 dbus_manager_ = new MockDBusThreadManager; 24 dbus_manager_ = new MockDBusThreadManager;
25 DBusThreadManager::InitializeForTesting(dbus_manager_); // Takes ownership. 25 DBusThreadManager::InitializeForTesting(dbus_manager_); // Takes ownership.
26 power_client_ = dbus_manager_->mock_power_manager_client(); 26 power_client_ = dbus_manager_->mock_power_manager_client();
27 EXPECT_CALL(*power_client_, SetPolicy(_)) 27 EXPECT_CALL(*power_client_, SetPolicy(_))
28 .WillRepeatedly(SaveArg<0>(&last_policy_)); 28 .WillRepeatedly(SaveArg<0>(&last_policy_));
29
30 policy_controller_ = dbus_manager_->GetPowerPolicyController(); 29 policy_controller_ = dbus_manager_->GetPowerPolicyController();
31
32 // TODO(derat): Write what looks like it will be a ridiculously large
33 // amount of code to register prefs so that UpdatePolicyFromPrefs() can
34 // be tested.
35 } 30 }
36 31
37 virtual void TearDown() OVERRIDE { 32 virtual void TearDown() OVERRIDE {
38 DBusThreadManager::Shutdown(); 33 DBusThreadManager::Shutdown();
39 } 34 }
40 35
41 protected: 36 protected:
42 MockDBusThreadManager* dbus_manager_; // Not owned. 37 MockDBusThreadManager* dbus_manager_; // Not owned.
43 MockPowerManagerClient* power_client_; // Not owned. 38 MockPowerManagerClient* power_client_; // Not owned.
44 PowerPolicyController* policy_controller_; // Not owned. 39 PowerPolicyController* policy_controller_; // Not owned.
45 40
46 power_manager::PowerManagementPolicy last_policy_; 41 power_manager::PowerManagementPolicy last_policy_;
47 }; 42 };
48 43
44 TEST_F(PowerPolicyControllerTest, Prefs) {
45 PowerPolicyController::PrefValues prefs;
46 prefs.ac_screen_dim_delay_ms = 600000;
47 prefs.ac_screen_off_delay_ms = 660000;
48 prefs.ac_idle_delay_ms = 720000;
49 prefs.battery_screen_dim_delay_ms = 300000;
50 prefs.battery_screen_off_delay_ms = 360000;
51 prefs.battery_idle_delay_ms = 420000;
52 prefs.idle_action = PowerPolicyController::ACTION_SUSPEND;
53 prefs.lid_closed_action = PowerPolicyController::ACTION_SHUT_DOWN;
54 prefs.use_audio_activity = true;
55 prefs.use_video_activity = true;
56 prefs.enable_screen_lock = false;
57 prefs.presentation_idle_delay_factor = 2.0;
58 policy_controller_->ApplyPrefs(prefs);
59
60 power_manager::PowerManagementPolicy expected_policy;
61 expected_policy.mutable_ac_delays()->set_screen_dim_ms(600000);
62 expected_policy.mutable_ac_delays()->set_screen_off_ms(660000);
63 expected_policy.mutable_ac_delays()->set_screen_lock_ms(-1);
64 expected_policy.mutable_ac_delays()->set_idle_warning_ms(-1);
65 expected_policy.mutable_ac_delays()->set_idle_ms(720000);
66 expected_policy.mutable_battery_delays()->set_screen_dim_ms(300000);
67 expected_policy.mutable_battery_delays()->set_screen_off_ms(360000);
68 expected_policy.mutable_battery_delays()->set_screen_lock_ms(-1);
69 expected_policy.mutable_battery_delays()->set_idle_warning_ms(-1);
70 expected_policy.mutable_battery_delays()->set_idle_ms(420000);
71 expected_policy.set_idle_action(
72 power_manager::PowerManagementPolicy_Action_SUSPEND);
73 expected_policy.set_lid_closed_action(
74 power_manager::PowerManagementPolicy_Action_SHUT_DOWN);
75 expected_policy.set_use_audio_activity(true);
76 expected_policy.set_use_video_activity(true);
77 expected_policy.set_presentation_idle_delay_factor(2.0);
78 expected_policy.set_reason("Prefs");
79 EXPECT_EQ(expected_policy.SerializeAsString(),
80 last_policy_.SerializeAsString());
81
82 // Change some prefs and check that an updated policy is sent.
83 prefs.ac_idle_warning_delay_ms = 700000;
84 prefs.battery_idle_warning_delay_ms = 400000;
85 prefs.lid_closed_action = PowerPolicyController::ACTION_SUSPEND;
86 policy_controller_->ApplyPrefs(prefs);
87 expected_policy.mutable_ac_delays()->set_idle_warning_ms(700000);
88 expected_policy.mutable_battery_delays()->set_idle_warning_ms(400000);
89 expected_policy.set_lid_closed_action(
90 power_manager::PowerManagementPolicy_Action_SUSPEND);
91 EXPECT_EQ(expected_policy.SerializeAsString(),
92 last_policy_.SerializeAsString());
93
94 // The enable-screen-lock pref should force the screen-lock delays to
95 // match the screen-off delays.
96 prefs.enable_screen_lock = true;
97 policy_controller_->ApplyPrefs(prefs);
98 expected_policy.mutable_ac_delays()->set_screen_lock_ms(660000);
99 expected_policy.mutable_battery_delays()->set_screen_lock_ms(360000);
100 EXPECT_EQ(expected_policy.SerializeAsString(),
101 last_policy_.SerializeAsString());
102
103 // If the screen-lock-delay prefs are set to lower values than the
104 // screen-off delays, the lock prefs should take precedence.
105 prefs.ac_screen_lock_delay_ms = 70000;
106 prefs.battery_screen_lock_delay_ms = 60000;
107 policy_controller_->ApplyPrefs(prefs);
108 expected_policy.mutable_ac_delays()->set_screen_lock_ms(70000);
109 expected_policy.mutable_battery_delays()->set_screen_lock_ms(60000);
110 EXPECT_EQ(expected_policy.SerializeAsString(),
111 last_policy_.SerializeAsString());
112 }
113
49 TEST_F(PowerPolicyControllerTest, Blocks) { 114 TEST_F(PowerPolicyControllerTest, Blocks) {
50 const char kSuspendBlockReason[] = "suspend"; 115 const char kSuspendBlockReason[] = "suspend";
51 const int suspend_id = 116 const int suspend_id =
52 policy_controller_->AddSuspendBlock(kSuspendBlockReason); 117 policy_controller_->AddSuspendBlock(kSuspendBlockReason);
53 power_manager::PowerManagementPolicy expected_policy; 118 power_manager::PowerManagementPolicy expected_policy;
54 expected_policy.set_idle_action( 119 expected_policy.set_idle_action(
55 power_manager::PowerManagementPolicy_Action_DO_NOTHING); 120 power_manager::PowerManagementPolicy_Action_DO_NOTHING);
56 expected_policy.set_reason(kSuspendBlockReason); 121 expected_policy.set_reason(kSuspendBlockReason);
57 EXPECT_EQ(expected_policy.SerializeAsString(), 122 EXPECT_EQ(expected_policy.SerializeAsString(),
58 last_policy_.SerializeAsString()); 123 last_policy_.SerializeAsString());
(...skipping 14 matching lines...) Expand all
73 EXPECT_EQ(expected_policy.SerializeAsString(), 138 EXPECT_EQ(expected_policy.SerializeAsString(),
74 last_policy_.SerializeAsString()); 139 last_policy_.SerializeAsString());
75 140
76 policy_controller_->RemoveBlock(screen_id); 141 policy_controller_->RemoveBlock(screen_id);
77 expected_policy.Clear(); 142 expected_policy.Clear();
78 EXPECT_EQ(expected_policy.SerializeAsString(), 143 EXPECT_EQ(expected_policy.SerializeAsString(),
79 last_policy_.SerializeAsString()); 144 last_policy_.SerializeAsString());
80 } 145 }
81 146
82 } // namespace chromeos 147 } // namespace chromeos
OLDNEW
« chromeos/dbus/power_policy_controller.cc ('K') | « chromeos/dbus/power_policy_controller.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698