OLD | NEW |
---|---|
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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/extensions/api/power/power_api_manager.h" | 10 #include "chrome/browser/extensions/api/power/power_api_manager.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
62 EXPECT_CALL(provider_, RegisterPolicyDomain(_, _)).Times(AnyNumber()); | 62 EXPECT_CALL(provider_, RegisterPolicyDomain(_, _)).Times(AnyNumber()); |
63 BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); | 63 BrowserPolicyConnector::SetPolicyProviderForTesting(&provider_); |
64 } | 64 } |
65 | 65 |
66 void PowerPolicyBrowserTest::SetUserPolicy( | 66 void PowerPolicyBrowserTest::SetUserPolicy( |
67 const std::string& user_policy_name, | 67 const std::string& user_policy_name, |
68 base::Value* user_policy_value) { | 68 base::Value* user_policy_value) { |
69 PolicyMap policy_map; | 69 PolicyMap policy_map; |
70 policy_map.Set(user_policy_name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, | 70 policy_map.Set(user_policy_name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
71 user_policy_value); | 71 user_policy_value); |
72 | |
73 // The lock-on-idle-suspend policy must be set in order for the | |
74 // screen-lock-delay policies to be honored. | |
75 if (user_policy_name == key::kScreenLockDelayAC || | |
Daniel Erat
2013/05/22 17:12:34
This feels gross; let me know if you can think of
| |
76 user_policy_name == key::kScreenLockDelayBattery) { | |
77 policy_map.Set(key::kChromeOsLockOnIdleSuspend, POLICY_LEVEL_MANDATORY, | |
78 POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true)); | |
79 } | |
80 | |
72 provider_.UpdateChromePolicy(policy_map); | 81 provider_.UpdateChromePolicy(policy_map); |
73 base::RunLoop().RunUntilIdle(); | 82 base::RunLoop().RunUntilIdle(); |
74 } | 83 } |
75 | 84 |
76 std::string PowerPolicyBrowserTest::GetDebugString( | 85 std::string PowerPolicyBrowserTest::GetDebugString( |
77 const pm::PowerManagementPolicy& policy) { | 86 const pm::PowerManagementPolicy& policy) { |
78 return chromeos::PowerPolicyController::GetPolicyDebugString(policy); | 87 return chromeos::PowerPolicyController::GetPolicyDebugString(policy); |
79 } | 88 } |
80 | 89 |
81 IN_PROC_BROWSER_TEST_F(PowerPolicyBrowserTest, SetPowerPolicy) { | 90 IN_PROC_BROWSER_TEST_F(PowerPolicyBrowserTest, SetPowerPolicy) { |
82 pm::PowerManagementPolicy original_power_management_policy = | 91 pm::PowerManagementPolicy original_power_management_policy = |
83 power_manager_client_->get_policy(); | 92 power_manager_client_->get_policy(); |
84 | 93 |
94 // Also save the default policy that's sent when the lock-on-idle-suspend | |
95 // policy is enabled, as it results in a different interpretation of the | |
96 // screen-lock-delay policies. | |
97 SetUserPolicy(key::kChromeOsLockOnIdleSuspend, | |
98 base::Value::CreateBooleanValue(true)); | |
99 pm::PowerManagementPolicy original_power_management_screen_lock_policy = | |
100 power_manager_client_->get_policy(); | |
101 | |
85 pm::PowerManagementPolicy power_management_policy = | 102 pm::PowerManagementPolicy power_management_policy = |
86 original_power_management_policy; | 103 original_power_management_policy; |
87 power_management_policy.set_idle_action( | 104 power_management_policy.set_idle_action( |
88 pm::PowerManagementPolicy::STOP_SESSION); | 105 pm::PowerManagementPolicy::STOP_SESSION); |
89 SetUserPolicy( | 106 SetUserPolicy( |
90 key::kIdleAction, | 107 key::kIdleAction, |
91 base::Value::CreateIntegerValue(pm::PowerManagementPolicy::STOP_SESSION)); | 108 base::Value::CreateIntegerValue(pm::PowerManagementPolicy::STOP_SESSION)); |
92 EXPECT_EQ(GetDebugString(power_management_policy), | 109 EXPECT_EQ(GetDebugString(power_management_policy), |
93 GetDebugString(power_manager_client_->get_policy())); | 110 GetDebugString(power_manager_client_->get_policy())); |
94 | 111 |
(...skipping 24 matching lines...) Expand all Loading... | |
119 SetUserPolicy(key::kScreenOffDelayAC, base::Value::CreateIntegerValue(7000)); | 136 SetUserPolicy(key::kScreenOffDelayAC, base::Value::CreateIntegerValue(7000)); |
120 EXPECT_EQ(GetDebugString(power_management_policy), | 137 EXPECT_EQ(GetDebugString(power_management_policy), |
121 GetDebugString(power_manager_client_->get_policy())); | 138 GetDebugString(power_manager_client_->get_policy())); |
122 | 139 |
123 power_management_policy = original_power_management_policy; | 140 power_management_policy = original_power_management_policy; |
124 power_management_policy.mutable_ac_delays()->set_screen_dim_ms(5000); | 141 power_management_policy.mutable_ac_delays()->set_screen_dim_ms(5000); |
125 SetUserPolicy(key::kScreenDimDelayAC, base::Value::CreateIntegerValue(5000)); | 142 SetUserPolicy(key::kScreenDimDelayAC, base::Value::CreateIntegerValue(5000)); |
126 EXPECT_EQ(GetDebugString(power_management_policy), | 143 EXPECT_EQ(GetDebugString(power_management_policy), |
127 GetDebugString(power_manager_client_->get_policy())); | 144 GetDebugString(power_manager_client_->get_policy())); |
128 | 145 |
129 power_management_policy = original_power_management_policy; | 146 power_management_policy = original_power_management_screen_lock_policy; |
130 power_management_policy.mutable_ac_delays()->set_screen_lock_ms(6000); | 147 power_management_policy.mutable_ac_delays()->set_screen_lock_ms(6000); |
131 SetUserPolicy(key::kScreenLockDelayAC, base::Value::CreateIntegerValue(6000)); | 148 SetUserPolicy(key::kScreenLockDelayAC, base::Value::CreateIntegerValue(6000)); |
132 EXPECT_EQ(GetDebugString(power_management_policy), | 149 EXPECT_EQ(GetDebugString(power_management_policy), |
133 GetDebugString(power_manager_client_->get_policy())); | 150 GetDebugString(power_manager_client_->get_policy())); |
134 | 151 |
135 power_management_policy = original_power_management_policy; | 152 power_management_policy = original_power_management_policy; |
136 power_management_policy.mutable_battery_delays()->set_idle_ms(5000); | 153 power_management_policy.mutable_battery_delays()->set_idle_ms(5000); |
137 SetUserPolicy(key::kIdleDelayBattery, base::Value::CreateIntegerValue(5000)); | 154 SetUserPolicy(key::kIdleDelayBattery, base::Value::CreateIntegerValue(5000)); |
138 EXPECT_EQ(GetDebugString(power_management_policy), | 155 EXPECT_EQ(GetDebugString(power_management_policy), |
139 GetDebugString(power_manager_client_->get_policy())); | 156 GetDebugString(power_manager_client_->get_policy())); |
(...skipping 12 matching lines...) Expand all Loading... | |
152 EXPECT_EQ(GetDebugString(power_management_policy), | 169 EXPECT_EQ(GetDebugString(power_management_policy), |
153 GetDebugString(power_manager_client_->get_policy())); | 170 GetDebugString(power_manager_client_->get_policy())); |
154 | 171 |
155 power_management_policy = original_power_management_policy; | 172 power_management_policy = original_power_management_policy; |
156 power_management_policy.mutable_battery_delays()->set_screen_dim_ms(1000); | 173 power_management_policy.mutable_battery_delays()->set_screen_dim_ms(1000); |
157 SetUserPolicy(key::kScreenDimDelayBattery, | 174 SetUserPolicy(key::kScreenDimDelayBattery, |
158 base::Value::CreateIntegerValue(1000)); | 175 base::Value::CreateIntegerValue(1000)); |
159 EXPECT_EQ(GetDebugString(power_management_policy), | 176 EXPECT_EQ(GetDebugString(power_management_policy), |
160 GetDebugString(power_manager_client_->get_policy())); | 177 GetDebugString(power_manager_client_->get_policy())); |
161 | 178 |
162 power_management_policy = original_power_management_policy; | 179 power_management_policy = original_power_management_screen_lock_policy; |
163 power_management_policy.mutable_battery_delays()->set_screen_lock_ms(2000); | 180 power_management_policy.mutable_battery_delays()->set_screen_lock_ms(2000); |
164 SetUserPolicy(key::kScreenLockDelayBattery, | 181 SetUserPolicy(key::kScreenLockDelayBattery, |
165 base::Value::CreateIntegerValue(2000)); | 182 base::Value::CreateIntegerValue(2000)); |
166 EXPECT_EQ(GetDebugString(power_management_policy), | 183 EXPECT_EQ(GetDebugString(power_management_policy), |
167 GetDebugString(power_manager_client_->get_policy())); | 184 GetDebugString(power_manager_client_->get_policy())); |
168 | 185 |
169 power_management_policy = original_power_management_policy; | 186 power_management_policy = original_power_management_policy; |
170 power_management_policy.set_use_audio_activity(false); | 187 power_management_policy.set_use_audio_activity(false); |
171 SetUserPolicy(key::kPowerManagementUsesAudioActivity, | 188 SetUserPolicy(key::kPowerManagementUsesAudioActivity, |
172 base::Value::CreateBooleanValue(false)); | 189 base::Value::CreateBooleanValue(false)); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
220 SetUserPolicy(key::kAllowScreenWakeLocks, | 237 SetUserPolicy(key::kAllowScreenWakeLocks, |
221 base::Value::CreateBooleanValue(false)); | 238 base::Value::CreateBooleanValue(false)); |
222 policy = baseline_policy; | 239 policy = baseline_policy; |
223 policy.set_idle_action(power_manager_client_->get_policy().idle_action()); | 240 policy.set_idle_action(power_manager_client_->get_policy().idle_action()); |
224 policy.set_reason(power_manager_client_->get_policy().reason()); | 241 policy.set_reason(power_manager_client_->get_policy().reason()); |
225 EXPECT_EQ(GetDebugString(policy), | 242 EXPECT_EQ(GetDebugString(policy), |
226 GetDebugString(power_manager_client_->get_policy())); | 243 GetDebugString(power_manager_client_->get_policy())); |
227 } | 244 } |
228 | 245 |
229 } // namespace policy | 246 } // namespace policy |
OLD | NEW |