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

Side by Side Diff: chrome/browser/chromeos/policy/recommendation_restorer_unittest.cc

Issue 18199003: Allow Chrome OS login profile to have different default pref values (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 7 years, 5 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/chromeos/policy/recommendation_restorer.h" 5 #include "chrome/browser/chromeos/policy/recommendation_restorer.h"
6 6
7 #include "ash/magnifier/magnifier_constants.h" 7 #include "ash/magnifier/magnifier_constants.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/prefs/pref_notifier_impl.h" 9 #include "base/prefs/pref_notifier_impl.h"
10 #include "base/prefs/testing_pref_store.h" 10 #include "base/prefs/testing_pref_store.h"
(...skipping 25 matching lines...) Expand all
36 const int kRestoreDelayInMs = 60 * 1000; // 1 minute. 36 const int kRestoreDelayInMs = 60 * 1000; // 1 minute.
37 } // namespace 37 } // namespace
38 38
39 class RecommendationRestorerTest : public testing::Test { 39 class RecommendationRestorerTest : public testing::Test {
40 protected: 40 protected:
41 RecommendationRestorerTest(); 41 RecommendationRestorerTest();
42 42
43 // testing::Test: 43 // testing::Test:
44 virtual void SetUp() OVERRIDE; 44 virtual void SetUp() OVERRIDE;
45 45
46 void RegisterUserProfilePrefs();
47 void RegisterLoginProfilePrefs();
48
46 void SetRecommendedValues(); 49 void SetRecommendedValues();
47 void SetUserSettings(); 50 void SetUserSettings();
48 51
49 void CreateLoginProfile(); 52 void CreateLoginProfile();
50 void CreateUserProfile(); 53 void CreateUserProfile();
51 54
52 void NotifyOfSessionStart(); 55 void NotifyOfSessionStart();
53 void NotifyOfUserActivity(); 56 void NotifyOfUserActivity();
54 57
55 void VerifyPrefFollowsUser(const char* pref_name, 58 void VerifyPrefFollowsUser(const char* pref_name,
(...skipping 28 matching lines...) Expand all
84 new TestingPrefStore, 87 new TestingPrefStore,
85 new TestingPrefStore, 88 new TestingPrefStore,
86 recommended_prefs_, 89 recommended_prefs_,
87 new user_prefs::PrefRegistrySyncable, 90 new user_prefs::PrefRegistrySyncable,
88 new PrefNotifierImpl)), 91 new PrefNotifierImpl)),
89 restorer_(NULL), 92 restorer_(NULL),
90 runner_(new base::TestSimpleTaskRunner), 93 runner_(new base::TestSimpleTaskRunner),
91 runner_handler_(runner_), 94 runner_handler_(runner_),
92 prefs_owner_(prefs_), 95 prefs_owner_(prefs_),
93 profile_manager_(TestingBrowserProcess::GetGlobal()) { 96 profile_manager_(TestingBrowserProcess::GetGlobal()) {
94 chrome::RegisterUserPrefs(prefs_->registry());
95 } 97 }
96 98
97 void RecommendationRestorerTest::SetUp() { 99 void RecommendationRestorerTest::SetUp() {
98 testing::Test::SetUp(); 100 testing::Test::SetUp();
99 ASSERT_TRUE(profile_manager_.SetUp()); 101 ASSERT_TRUE(profile_manager_.SetUp());
100 } 102 }
101 103
104 void RecommendationRestorerTest::RegisterUserProfilePrefs() {
105 chrome::RegisterUserProfilePrefs(prefs_->registry());
106 }
107
108 void RecommendationRestorerTest::RegisterLoginProfilePrefs() {
109 chrome::RegisterLoginProfilePrefs(prefs_->registry());
110 }
111
102 void RecommendationRestorerTest::SetRecommendedValues() { 112 void RecommendationRestorerTest::SetRecommendedValues() {
103 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false); 113 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false);
104 recommended_prefs_->SetBoolean(prefs::kSpokenFeedbackEnabled, false); 114 recommended_prefs_->SetBoolean(prefs::kSpokenFeedbackEnabled, false);
105 recommended_prefs_->SetBoolean(prefs::kHighContrastEnabled, false); 115 recommended_prefs_->SetBoolean(prefs::kHighContrastEnabled, false);
106 recommended_prefs_->SetBoolean(prefs::kScreenMagnifierEnabled, false); 116 recommended_prefs_->SetBoolean(prefs::kScreenMagnifierEnabled, false);
107 recommended_prefs_->SetInteger(prefs::kScreenMagnifierType, 0); 117 recommended_prefs_->SetInteger(prefs::kScreenMagnifierType, 0);
108 } 118 }
109 119
110 void RecommendationRestorerTest::SetUserSettings() { 120 void RecommendationRestorerTest::SetUserSettings() {
111 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true); 121 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 EXPECT_TRUE(restorer_->restore_timer_.IsRunning()); 221 EXPECT_TRUE(restorer_->restore_timer_.IsRunning());
212 EXPECT_EQ(base::TimeDelta::FromMilliseconds(kRestoreDelayInMs), 222 EXPECT_EQ(base::TimeDelta::FromMilliseconds(kRestoreDelayInMs),
213 restorer_->restore_timer_.GetCurrentDelay()); 223 restorer_->restore_timer_.GetCurrentDelay());
214 } 224 }
215 225
216 TEST_F(RecommendationRestorerTest, CreateForUserProfile) { 226 TEST_F(RecommendationRestorerTest, CreateForUserProfile) {
217 // Verifies that when a RecommendationRestorer is created for a user profile, 227 // Verifies that when a RecommendationRestorer is created for a user profile,
218 // it does not start listening for any notifications, does not clear user 228 // it does not start listening for any notifications, does not clear user
219 // settings on initialization and does not start a timer that will clear user 229 // settings on initialization and does not start a timer that will clear user
220 // settings eventually. 230 // settings eventually.
231 RegisterUserProfilePrefs();
221 SetRecommendedValues(); 232 SetRecommendedValues();
222 SetUserSettings(); 233 SetUserSettings();
223 234
224 CreateUserProfile(); 235 CreateUserProfile();
225 VerifyNotListeningForNotifications(); 236 VerifyNotListeningForNotifications();
226 VerifyPrefsFollowUser(); 237 VerifyPrefsFollowUser();
227 VerifyTimerIsStopped(); 238 VerifyTimerIsStopped();
228 } 239 }
229 240
230 TEST_F(RecommendationRestorerTest, NoRecommendations) { 241 TEST_F(RecommendationRestorerTest, NoRecommendations) {
231 // Verifies that when no recommended values have been set and a 242 // Verifies that when no recommended values have been set and a
232 // RecommendationRestorer is created for the login profile, it does not clear 243 // RecommendationRestorer is created for the login profile, it does not clear
233 // user settings on initialization and does not start a timer that will clear 244 // user settings on initialization and does not start a timer that will clear
234 // user settings eventually. 245 // user settings eventually.
246 RegisterLoginProfilePrefs();
235 SetUserSettings(); 247 SetUserSettings();
236 248
237 CreateLoginProfile(); 249 CreateLoginProfile();
238 VerifyPrefsFollowUser(); 250 VerifyPrefsFollowUser();
239 VerifyTimerIsStopped(); 251 VerifyTimerIsStopped();
240 } 252 }
241 253
242 TEST_F(RecommendationRestorerTest, RestoreOnStartup) { 254 TEST_F(RecommendationRestorerTest, RestoreOnStartup) {
243 // Verifies that when recommended values have been set and a 255 // Verifies that when recommended values have been set and a
244 // RecommendationRestorer is created for the login profile, it clears user 256 // RecommendationRestorer is created for the login profile, it clears user
245 // settings on initialization. 257 // settings on initialization.
258 RegisterLoginProfilePrefs();
246 SetRecommendedValues(); 259 SetRecommendedValues();
247 SetUserSettings(); 260 SetUserSettings();
248 261
249 CreateLoginProfile(); 262 CreateLoginProfile();
250 VerifyPrefsFollowRecommendations(); 263 VerifyPrefsFollowRecommendations();
251 VerifyTimerIsStopped(); 264 VerifyTimerIsStopped();
252 } 265 }
253 266
254 TEST_F(RecommendationRestorerTest, RestoreOnRecommendationChangeOnLoginScreen) { 267 TEST_F(RecommendationRestorerTest, RestoreOnRecommendationChangeOnLoginScreen) {
255 // Verifies that if recommended values change while the login screen is being 268 // Verifies that if recommended values change while the login screen is being
256 // shown, a timer is started that will clear user settings eventually. 269 // shown, a timer is started that will clear user settings eventually.
270 RegisterLoginProfilePrefs();
257 SetUserSettings(); 271 SetUserSettings();
258 272
259 CreateLoginProfile(); 273 CreateLoginProfile();
260 274
261 VerifyTimerIsStopped(); 275 VerifyTimerIsStopped();
262 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false); 276 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false);
263 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled, 277 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled,
264 base::FundamentalValue(true)); 278 base::FundamentalValue(true));
265 VerifyTimerIsRunning(); 279 VerifyTimerIsRunning();
266 runner_->RunUntilIdle(); 280 runner_->RunUntilIdle();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 base::FundamentalValue(false)); 312 base::FundamentalValue(false));
299 VerifyPrefFollowsRecommendation(prefs::kScreenMagnifierType, 313 VerifyPrefFollowsRecommendation(prefs::kScreenMagnifierType,
300 base::FundamentalValue(0)); 314 base::FundamentalValue(0));
301 315
302 VerifyTimerIsStopped(); 316 VerifyTimerIsStopped();
303 } 317 }
304 318
305 TEST_F(RecommendationRestorerTest, RestoreOnRecommendationChangeInUserSession) { 319 TEST_F(RecommendationRestorerTest, RestoreOnRecommendationChangeInUserSession) {
306 // Verifies that if recommended values change while a user session is in 320 // Verifies that if recommended values change while a user session is in
307 // progress, user settings are cleared immediately. 321 // progress, user settings are cleared immediately.
322 RegisterLoginProfilePrefs();
308 SetUserSettings(); 323 SetUserSettings();
309 324
310 CreateLoginProfile(); 325 CreateLoginProfile();
311 NotifyOfSessionStart(); 326 NotifyOfSessionStart();
312 327
313 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled, 328 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled,
314 base::FundamentalValue(true)); 329 base::FundamentalValue(true));
315 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false); 330 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false);
316 VerifyTimerIsStopped(); 331 VerifyTimerIsStopped();
317 VerifyPrefFollowsRecommendation(prefs::kLargeCursorEnabled, 332 VerifyPrefFollowsRecommendation(prefs::kLargeCursorEnabled,
(...skipping 23 matching lines...) Expand all
341 VerifyPrefFollowsRecommendation(prefs::kScreenMagnifierEnabled, 356 VerifyPrefFollowsRecommendation(prefs::kScreenMagnifierEnabled,
342 base::FundamentalValue(false)); 357 base::FundamentalValue(false));
343 VerifyPrefFollowsRecommendation(prefs::kScreenMagnifierType, 358 VerifyPrefFollowsRecommendation(prefs::kScreenMagnifierType,
344 base::FundamentalValue(0)); 359 base::FundamentalValue(0));
345 } 360 }
346 361
347 TEST_F(RecommendationRestorerTest, DoNothingOnUserChange) { 362 TEST_F(RecommendationRestorerTest, DoNothingOnUserChange) {
348 // Verifies that if no recommended values have been set and user settings 363 // Verifies that if no recommended values have been set and user settings
349 // change, the user settings are not cleared immediately and no timer is 364 // change, the user settings are not cleared immediately and no timer is
350 // started that will clear the user settings eventually. 365 // started that will clear the user settings eventually.
366 RegisterLoginProfilePrefs();
351 CreateLoginProfile(); 367 CreateLoginProfile();
352 368
353 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true); 369 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true);
354 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled, 370 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled,
355 base::FundamentalValue(true)); 371 base::FundamentalValue(true));
356 VerifyTimerIsStopped(); 372 VerifyTimerIsStopped();
357 373
358 prefs_->SetBoolean(prefs::kSpokenFeedbackEnabled, true); 374 prefs_->SetBoolean(prefs::kSpokenFeedbackEnabled, true);
359 VerifyPrefFollowsUser(prefs::kSpokenFeedbackEnabled, 375 VerifyPrefFollowsUser(prefs::kSpokenFeedbackEnabled,
360 base::FundamentalValue(true)); 376 base::FundamentalValue(true));
(...skipping 15 matching lines...) Expand all
376 base::FundamentalValue(true)); 392 base::FundamentalValue(true));
377 VerifyPrefFollowsUser(prefs::kScreenMagnifierType, 393 VerifyPrefFollowsUser(prefs::kScreenMagnifierType,
378 base::FundamentalValue(ash::MAGNIFIER_FULL)); 394 base::FundamentalValue(ash::MAGNIFIER_FULL));
379 VerifyTimerIsStopped(); 395 VerifyTimerIsStopped();
380 } 396 }
381 397
382 TEST_F(RecommendationRestorerTest, RestoreOnUserChange) { 398 TEST_F(RecommendationRestorerTest, RestoreOnUserChange) {
383 // Verifies that if recommended values have been set and user settings change 399 // Verifies that if recommended values have been set and user settings change
384 // while the login screen is being shown, a timer is started that will clear 400 // while the login screen is being shown, a timer is started that will clear
385 // the user settings eventually. 401 // the user settings eventually.
402 RegisterLoginProfilePrefs();
386 SetRecommendedValues(); 403 SetRecommendedValues();
387 404
388 CreateLoginProfile(); 405 CreateLoginProfile();
389 406
390 VerifyTimerIsStopped(); 407 VerifyTimerIsStopped();
391 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true); 408 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true);
392 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled, 409 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled,
393 base::FundamentalValue(true)); 410 base::FundamentalValue(true));
394 VerifyTimerIsRunning(); 411 VerifyTimerIsRunning();
395 runner_->RunUntilIdle(); 412 runner_->RunUntilIdle();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 base::FundamentalValue(0)); 446 base::FundamentalValue(0));
430 447
431 VerifyTimerIsStopped(); 448 VerifyTimerIsStopped();
432 } 449 }
433 450
434 TEST_F(RecommendationRestorerTest, RestoreOnSessionStart) { 451 TEST_F(RecommendationRestorerTest, RestoreOnSessionStart) {
435 // Verifies that if recommended values have been set, user settings have 452 // Verifies that if recommended values have been set, user settings have
436 // changed and a session is then started, the user settings are cleared 453 // changed and a session is then started, the user settings are cleared
437 // immediately and the timer that would have cleared them eventually on the 454 // immediately and the timer that would have cleared them eventually on the
438 // login screen is stopped. 455 // login screen is stopped.
456 RegisterLoginProfilePrefs();
439 SetRecommendedValues(); 457 SetRecommendedValues();
440 458
441 CreateLoginProfile(); 459 CreateLoginProfile();
442 SetUserSettings(); 460 SetUserSettings();
443 461
444 NotifyOfSessionStart(); 462 NotifyOfSessionStart();
445 VerifyPrefsFollowRecommendations(); 463 VerifyPrefsFollowRecommendations();
446 VerifyTimerIsStopped(); 464 VerifyTimerIsStopped();
447 } 465 }
448 466
449 TEST_F(RecommendationRestorerTest, DoNothingOnSessionStart) { 467 TEST_F(RecommendationRestorerTest, DoNothingOnSessionStart) {
450 // Verifies that if recommended values have not been set, user settings have 468 // Verifies that if recommended values have not been set, user settings have
451 // changed and a session is then started, the user settings are not cleared 469 // changed and a session is then started, the user settings are not cleared
452 // immediately. 470 // immediately.
471 RegisterLoginProfilePrefs();
453 CreateLoginProfile(); 472 CreateLoginProfile();
454 SetUserSettings(); 473 SetUserSettings();
455 474
456 NotifyOfSessionStart(); 475 NotifyOfSessionStart();
457 VerifyPrefsFollowUser(); 476 VerifyPrefsFollowUser();
458 VerifyTimerIsStopped(); 477 VerifyTimerIsStopped();
459 } 478 }
460 479
461 TEST_F(RecommendationRestorerTest, UserActivityResetsTimer) { 480 TEST_F(RecommendationRestorerTest, UserActivityResetsTimer) {
462 // Verifies that user activity resets the timer which clears user settings. 481 // Verifies that user activity resets the timer which clears user settings.
482 RegisterLoginProfilePrefs();
483
463 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false); 484 recommended_prefs_->SetBoolean(prefs::kLargeCursorEnabled, false);
464 485
465 CreateLoginProfile(); 486 CreateLoginProfile();
466 487
467 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true); 488 prefs_->SetBoolean(prefs::kLargeCursorEnabled, true);
468 VerifyTimerIsRunning(); 489 VerifyTimerIsRunning();
469 490
470 // Notify that there is user activity, then fast forward until the originally 491 // Notify that there is user activity, then fast forward until the originally
471 // set timer fires. 492 // set timer fires.
472 NotifyOfUserActivity(); 493 NotifyOfUserActivity();
473 runner_->RunPendingTasks(); 494 runner_->RunPendingTasks();
474 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled, 495 VerifyPrefFollowsUser(prefs::kLargeCursorEnabled,
475 base::FundamentalValue(true)); 496 base::FundamentalValue(true));
476 497
477 // Fast forward until the reset timer fires. 498 // Fast forward until the reset timer fires.
478 VerifyTimerIsRunning(); 499 VerifyTimerIsRunning();
479 runner_->RunUntilIdle(); 500 runner_->RunUntilIdle();
480 VerifyPrefFollowsRecommendation(prefs::kLargeCursorEnabled, 501 VerifyPrefFollowsRecommendation(prefs::kLargeCursorEnabled,
481 base::FundamentalValue(false)); 502 base::FundamentalValue(false));
482 VerifyTimerIsStopped(); 503 VerifyTimerIsStopped();
483 } 504 }
484 505
485 } // namespace policy 506 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/oauth2_login_manager.cc ('k') | chrome/browser/chromeos/preferences.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698