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

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

Issue 15734010: chromeos: Add delay between screen off and lock. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | 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 "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_power_manager_client.h" 9 #include "chromeos/dbus/fake_power_manager_client.h"
10 #include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h" 10 #include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 prefs.use_audio_activity = true; 53 prefs.use_audio_activity = true;
54 prefs.use_video_activity = true; 54 prefs.use_video_activity = true;
55 prefs.enable_screen_lock = false; 55 prefs.enable_screen_lock = false;
56 prefs.presentation_idle_delay_factor = 3.0; 56 prefs.presentation_idle_delay_factor = 3.0;
57 prefs.user_activity_screen_dim_delay_factor = 2.0; 57 prefs.user_activity_screen_dim_delay_factor = 2.0;
58 policy_controller_->ApplyPrefs(prefs); 58 policy_controller_->ApplyPrefs(prefs);
59 59
60 power_manager::PowerManagementPolicy expected_policy; 60 power_manager::PowerManagementPolicy expected_policy;
61 expected_policy.mutable_ac_delays()->set_screen_dim_ms(600000); 61 expected_policy.mutable_ac_delays()->set_screen_dim_ms(600000);
62 expected_policy.mutable_ac_delays()->set_screen_off_ms(660000); 62 expected_policy.mutable_ac_delays()->set_screen_off_ms(660000);
63 expected_policy.mutable_ac_delays()->set_screen_lock_ms(-1); 63 expected_policy.mutable_ac_delays()->set_screen_lock_ms(0);
64 expected_policy.mutable_ac_delays()->set_idle_warning_ms(-1); 64 expected_policy.mutable_ac_delays()->set_idle_warning_ms(-1);
65 expected_policy.mutable_ac_delays()->set_idle_ms(720000); 65 expected_policy.mutable_ac_delays()->set_idle_ms(720000);
66 expected_policy.mutable_battery_delays()->set_screen_dim_ms(300000); 66 expected_policy.mutable_battery_delays()->set_screen_dim_ms(300000);
67 expected_policy.mutable_battery_delays()->set_screen_off_ms(360000); 67 expected_policy.mutable_battery_delays()->set_screen_off_ms(360000);
68 expected_policy.mutable_battery_delays()->set_screen_lock_ms(-1); 68 expected_policy.mutable_battery_delays()->set_screen_lock_ms(0);
69 expected_policy.mutable_battery_delays()->set_idle_warning_ms(-1); 69 expected_policy.mutable_battery_delays()->set_idle_warning_ms(-1);
70 expected_policy.mutable_battery_delays()->set_idle_ms(420000); 70 expected_policy.mutable_battery_delays()->set_idle_ms(420000);
71 expected_policy.set_idle_action( 71 expected_policy.set_idle_action(
72 power_manager::PowerManagementPolicy_Action_SUSPEND); 72 power_manager::PowerManagementPolicy_Action_SUSPEND);
73 expected_policy.set_lid_closed_action( 73 expected_policy.set_lid_closed_action(
74 power_manager::PowerManagementPolicy_Action_SHUT_DOWN); 74 power_manager::PowerManagementPolicy_Action_SHUT_DOWN);
75 expected_policy.set_use_audio_activity(true); 75 expected_policy.set_use_audio_activity(true);
76 expected_policy.set_use_video_activity(true); 76 expected_policy.set_use_video_activity(true);
77 expected_policy.set_presentation_idle_delay_factor(3.0); 77 expected_policy.set_presentation_idle_delay_factor(3.0);
78 expected_policy.set_user_activity_screen_dim_delay_factor(2.0); 78 expected_policy.set_user_activity_screen_dim_delay_factor(2.0);
79 expected_policy.set_reason("Prefs"); 79 expected_policy.set_reason("Prefs");
80 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 80 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
81 PowerPolicyController::GetPolicyDebugString( 81 PowerPolicyController::GetPolicyDebugString(
82 fake_power_client_.get_policy())); 82 fake_power_client_.get_policy()));
83 83
84 // Change some prefs and check that an updated policy is sent. 84 // Change some prefs and check that an updated policy is sent.
85 prefs.ac_idle_warning_delay_ms = 700000; 85 prefs.ac_idle_warning_delay_ms = 700000;
86 prefs.battery_idle_warning_delay_ms = 400000; 86 prefs.battery_idle_warning_delay_ms = 400000;
87 prefs.lid_closed_action = PowerPolicyController::ACTION_SUSPEND; 87 prefs.lid_closed_action = PowerPolicyController::ACTION_SUSPEND;
88 policy_controller_->ApplyPrefs(prefs); 88 policy_controller_->ApplyPrefs(prefs);
89 expected_policy.mutable_ac_delays()->set_idle_warning_ms(700000); 89 expected_policy.mutable_ac_delays()->set_idle_warning_ms(700000);
90 expected_policy.mutable_battery_delays()->set_idle_warning_ms(400000); 90 expected_policy.mutable_battery_delays()->set_idle_warning_ms(400000);
91 expected_policy.set_lid_closed_action( 91 expected_policy.set_lid_closed_action(
92 power_manager::PowerManagementPolicy_Action_SUSPEND); 92 power_manager::PowerManagementPolicy_Action_SUSPEND);
93 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 93 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
94 PowerPolicyController::GetPolicyDebugString( 94 PowerPolicyController::GetPolicyDebugString(
95 fake_power_client_.get_policy())); 95 fake_power_client_.get_policy()));
96 96
97 // The enable-screen-lock pref should force the screen-lock delays to 97 // Screen lock delays should be ignored if the enable-screen-lock pref is
98 // match the screen-off delays. 98 // false.
99 prefs.enable_screen_lock = true; 99 prefs.ac_screen_lock_delay_ms = 670000;
100 prefs.battery_screen_lock_delay_ms = 370000;
100 policy_controller_->ApplyPrefs(prefs); 101 policy_controller_->ApplyPrefs(prefs);
101 expected_policy.mutable_ac_delays()->set_screen_lock_ms(660000);
102 expected_policy.mutable_battery_delays()->set_screen_lock_ms(360000);
103 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 102 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
104 PowerPolicyController::GetPolicyDebugString( 103 PowerPolicyController::GetPolicyDebugString(
105 fake_power_client_.get_policy())); 104 fake_power_client_.get_policy()));
106 105
107 // If the screen-lock-delay prefs are set to lower values than the 106 // After setting the enable-screen-lock pref, the lock delays should be sent.
108 // screen-off delays, the lock prefs should take precedence. 107 prefs.enable_screen_lock = true;
109 prefs.ac_screen_lock_delay_ms = 70000;
110 prefs.battery_screen_lock_delay_ms = 60000;
111 policy_controller_->ApplyPrefs(prefs); 108 policy_controller_->ApplyPrefs(prefs);
112 expected_policy.mutable_ac_delays()->set_screen_lock_ms(70000); 109 expected_policy.mutable_ac_delays()->set_screen_lock_ms(670000);
113 expected_policy.mutable_battery_delays()->set_screen_lock_ms(60000); 110 expected_policy.mutable_battery_delays()->set_screen_lock_ms(370000);
114 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 111 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
115 PowerPolicyController::GetPolicyDebugString( 112 PowerPolicyController::GetPolicyDebugString(
116 fake_power_client_.get_policy())); 113 fake_power_client_.get_policy()));
117 114
118 // Set the "allow screen wake locks" pref to false. The system should be 115 // Set the "allow screen wake locks" pref to false. The system should be
119 // prevented from suspending due to user inactivity but the pref-supplied 116 // prevented from suspending due to user inactivity but the pref-supplied
120 // screen-related delays should be left untouched. 117 // screen-related delays should be left untouched.
121 prefs.allow_screen_wake_locks = false; 118 prefs.allow_screen_wake_locks = false;
122 policy_controller_->ApplyPrefs(prefs); 119 policy_controller_->ApplyPrefs(prefs);
123 policy_controller_->AddScreenWakeLock("Screen"); 120 policy_controller_->AddScreenWakeLock("Screen");
124 expected_policy.set_idle_action( 121 expected_policy.set_idle_action(
125 power_manager::PowerManagementPolicy_Action_DO_NOTHING); 122 power_manager::PowerManagementPolicy_Action_DO_NOTHING);
126 expected_policy.set_reason("Prefs, Screen"); 123 expected_policy.set_reason("Prefs, Screen");
127 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 124 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
128 PowerPolicyController::GetPolicyDebugString( 125 PowerPolicyController::GetPolicyDebugString(
129 fake_power_client_.get_policy())); 126 fake_power_client_.get_policy()));
127
128 // Allow screen wake locks and check that the screen-related delays from
129 // the prefs are overridden.
130 prefs.allow_screen_wake_locks = true;
131 policy_controller_->ApplyPrefs(prefs);
132 expected_policy.mutable_ac_delays()->set_screen_dim_ms(0);
133 expected_policy.mutable_ac_delays()->set_screen_off_ms(0);
134 expected_policy.mutable_ac_delays()->set_screen_lock_ms(0);
135 expected_policy.mutable_battery_delays()->set_screen_dim_ms(0);
136 expected_policy.mutable_battery_delays()->set_screen_off_ms(0);
137 expected_policy.mutable_battery_delays()->set_screen_lock_ms(0);
138 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
139 PowerPolicyController::GetPolicyDebugString(
140 fake_power_client_.get_policy()));
130 } 141 }
131 142
132 TEST_F(PowerPolicyControllerTest, WakeLocks) { 143 TEST_F(PowerPolicyControllerTest, WakeLocks) {
133 const char kSystemWakeLockReason[] = "system"; 144 const char kSystemWakeLockReason[] = "system";
134 const int system_id = 145 const int system_id =
135 policy_controller_->AddSystemWakeLock(kSystemWakeLockReason); 146 policy_controller_->AddSystemWakeLock(kSystemWakeLockReason);
136 power_manager::PowerManagementPolicy expected_policy; 147 power_manager::PowerManagementPolicy expected_policy;
137 expected_policy.set_idle_action( 148 expected_policy.set_idle_action(
138 power_manager::PowerManagementPolicy_Action_DO_NOTHING); 149 power_manager::PowerManagementPolicy_Action_DO_NOTHING);
139 expected_policy.set_reason(kSystemWakeLockReason); 150 expected_policy.set_reason(kSystemWakeLockReason);
140 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 151 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
141 PowerPolicyController::GetPolicyDebugString( 152 PowerPolicyController::GetPolicyDebugString(
142 fake_power_client_.get_policy())); 153 fake_power_client_.get_policy()));
143 154
144 const char kScreenWakeLockReason[] = "screen"; 155 const char kScreenWakeLockReason[] = "screen";
145 const int screen_id = policy_controller_->AddScreenWakeLock( 156 const int screen_id = policy_controller_->AddScreenWakeLock(
146 kScreenWakeLockReason); 157 kScreenWakeLockReason);
147 expected_policy.mutable_ac_delays()->set_screen_dim_ms(0); 158 expected_policy.mutable_ac_delays()->set_screen_dim_ms(0);
148 expected_policy.mutable_ac_delays()->set_screen_off_ms(0); 159 expected_policy.mutable_ac_delays()->set_screen_off_ms(0);
160 expected_policy.mutable_ac_delays()->set_screen_lock_ms(0);
149 expected_policy.mutable_battery_delays()->set_screen_dim_ms(0); 161 expected_policy.mutable_battery_delays()->set_screen_dim_ms(0);
150 expected_policy.mutable_battery_delays()->set_screen_off_ms(0); 162 expected_policy.mutable_battery_delays()->set_screen_off_ms(0);
163 expected_policy.mutable_battery_delays()->set_screen_lock_ms(0);
151 expected_policy.set_reason( 164 expected_policy.set_reason(
152 std::string(kScreenWakeLockReason) + ", " + kSystemWakeLockReason); 165 std::string(kScreenWakeLockReason) + ", " + kSystemWakeLockReason);
153 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 166 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
154 PowerPolicyController::GetPolicyDebugString( 167 PowerPolicyController::GetPolicyDebugString(
155 fake_power_client_.get_policy())); 168 fake_power_client_.get_policy()));
156 169
157 policy_controller_->RemoveWakeLock(system_id); 170 policy_controller_->RemoveWakeLock(system_id);
158 expected_policy.set_reason(kScreenWakeLockReason); 171 expected_policy.set_reason(kScreenWakeLockReason);
159 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 172 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
160 PowerPolicyController::GetPolicyDebugString( 173 PowerPolicyController::GetPolicyDebugString(
161 fake_power_client_.get_policy())); 174 fake_power_client_.get_policy()));
162 175
163 policy_controller_->RemoveWakeLock(screen_id); 176 policy_controller_->RemoveWakeLock(screen_id);
164 expected_policy.Clear(); 177 expected_policy.Clear();
165 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy), 178 EXPECT_EQ(PowerPolicyController::GetPolicyDebugString(expected_policy),
166 PowerPolicyController::GetPolicyDebugString( 179 PowerPolicyController::GetPolicyDebugString(
167 fake_power_client_.get_policy())); 180 fake_power_client_.get_policy()));
168 } 181 }
169 182
170 } // namespace chromeos 183 } // 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