| OLD | NEW | 
|---|
| 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 <memory> | 7 #include <memory> | 
| 8 #include <utility> | 8 #include <utility> | 
| 9 | 9 | 
| 10 #include "ash/common/accessibility_types.h" | 10 #include "ash/common/accessibility_types.h" | 
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 179       prefs_->FindPreference(pref_name); | 179       prefs_->FindPreference(pref_name); | 
| 180   ASSERT_TRUE(pref); | 180   ASSERT_TRUE(pref); | 
| 181   EXPECT_TRUE(pref->HasUserSetting()); | 181   EXPECT_TRUE(pref->HasUserSetting()); | 
| 182   const base::Value* value = pref->GetValue(); | 182   const base::Value* value = pref->GetValue(); | 
| 183   ASSERT_TRUE(value); | 183   ASSERT_TRUE(value); | 
| 184   EXPECT_TRUE(expected_value.Equals(value)); | 184   EXPECT_TRUE(expected_value.Equals(value)); | 
| 185 } | 185 } | 
| 186 | 186 | 
| 187 void RecommendationRestorerTest::VerifyPrefsFollowUser() const { | 187 void RecommendationRestorerTest::VerifyPrefsFollowUser() const { | 
| 188   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 188   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 
| 189                         base::FundamentalValue(true)); | 189                         base::Value(true)); | 
| 190   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 190   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 191                         base::FundamentalValue(true)); | 191                         base::Value(true)); | 
| 192   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 192   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 
| 193                         base::FundamentalValue(true)); | 193                         base::Value(true)); | 
| 194   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 194   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 195                         base::FundamentalValue(true)); | 195                         base::Value(true)); | 
| 196   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 196   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 
| 197                         base::FundamentalValue(ash::MAGNIFIER_FULL)); | 197                         base::Value(ash::MAGNIFIER_FULL)); | 
| 198   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 198   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 199                         base::FundamentalValue(true)); | 199                         base::Value(true)); | 
| 200 } | 200 } | 
| 201 | 201 | 
| 202 void RecommendationRestorerTest::VerifyPrefFollowsRecommendation( | 202 void RecommendationRestorerTest::VerifyPrefFollowsRecommendation( | 
| 203     const char* pref_name, | 203     const char* pref_name, | 
| 204     const base::Value& expected_value) const { | 204     const base::Value& expected_value) const { | 
| 205   const sync_preferences::PrefServiceSyncable::Preference* pref = | 205   const sync_preferences::PrefServiceSyncable::Preference* pref = | 
| 206       prefs_->FindPreference(pref_name); | 206       prefs_->FindPreference(pref_name); | 
| 207   ASSERT_TRUE(pref); | 207   ASSERT_TRUE(pref); | 
| 208   EXPECT_TRUE(pref->IsRecommended()); | 208   EXPECT_TRUE(pref->IsRecommended()); | 
| 209   EXPECT_FALSE(pref->HasUserSetting()); | 209   EXPECT_FALSE(pref->HasUserSetting()); | 
| 210   const base::Value* value = pref->GetValue(); | 210   const base::Value* value = pref->GetValue(); | 
| 211   ASSERT_TRUE(value); | 211   ASSERT_TRUE(value); | 
| 212   EXPECT_TRUE(expected_value.Equals(value)); | 212   EXPECT_TRUE(expected_value.Equals(value)); | 
| 213 } | 213 } | 
| 214 | 214 | 
| 215 void RecommendationRestorerTest::VerifyPrefsFollowRecommendations() const { | 215 void RecommendationRestorerTest::VerifyPrefsFollowRecommendations() const { | 
| 216   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 216   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 
| 217                                   base::FundamentalValue(false)); | 217                                   base::Value(false)); | 
| 218   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 218   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 219                                   base::FundamentalValue(false)); | 219                                   base::Value(false)); | 
| 220   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 220   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 
| 221                                   base::FundamentalValue(false)); | 221                                   base::Value(false)); | 
| 222   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 222   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 223                                   base::FundamentalValue(false)); | 223                                   base::Value(false)); | 
| 224   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 224   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 
| 225                                   base::FundamentalValue(0)); | 225                                   base::Value(0)); | 
| 226   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 226   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 227                                   base::FundamentalValue(false)); | 227                                   base::Value(false)); | 
| 228 } | 228 } | 
| 229 | 229 | 
| 230 void RecommendationRestorerTest::VerifyNotListeningForNotifications() const { | 230 void RecommendationRestorerTest::VerifyNotListeningForNotifications() const { | 
| 231   ASSERT_TRUE(restorer_); | 231   ASSERT_TRUE(restorer_); | 
| 232   EXPECT_TRUE(restorer_->pref_change_registrar_.IsEmpty()); | 232   EXPECT_TRUE(restorer_->pref_change_registrar_.IsEmpty()); | 
| 233   EXPECT_TRUE(restorer_->notification_registrar_.IsEmpty()); | 233   EXPECT_TRUE(restorer_->notification_registrar_.IsEmpty()); | 
| 234 } | 234 } | 
| 235 | 235 | 
| 236 void RecommendationRestorerTest::VerifyTimerIsStopped() const { | 236 void RecommendationRestorerTest::VerifyTimerIsStopped() const { | 
| 237   ASSERT_TRUE(restorer_); | 237   ASSERT_TRUE(restorer_); | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 291   // shown, a timer is started that will clear user settings eventually. | 291   // shown, a timer is started that will clear user settings eventually. | 
| 292   RegisterLoginProfilePrefs(); | 292   RegisterLoginProfilePrefs(); | 
| 293   SetUserSettings(); | 293   SetUserSettings(); | 
| 294 | 294 | 
| 295   CreateLoginProfile(); | 295   CreateLoginProfile(); | 
| 296 | 296 | 
| 297   VerifyTimerIsStopped(); | 297   VerifyTimerIsStopped(); | 
| 298   recommended_prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, | 298   recommended_prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, | 
| 299                                  false); | 299                                  false); | 
| 300   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 300   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 
| 301                         base::FundamentalValue(true)); | 301                         base::Value(true)); | 
| 302   VerifyTimerIsRunning(); | 302   VerifyTimerIsRunning(); | 
| 303   runner_->RunUntilIdle(); | 303   runner_->RunUntilIdle(); | 
| 304   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 304   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 
| 305                                   base::FundamentalValue(false)); | 305                                   base::Value(false)); | 
| 306 | 306 | 
| 307   VerifyTimerIsStopped(); | 307   VerifyTimerIsStopped(); | 
| 308   recommended_prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, | 308   recommended_prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 309                                  false); | 309                                  false); | 
| 310   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 310   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 311                         base::FundamentalValue(true)); | 311                         base::Value(true)); | 
| 312   VerifyTimerIsRunning(); | 312   VerifyTimerIsRunning(); | 
| 313   runner_->RunUntilIdle(); | 313   runner_->RunUntilIdle(); | 
| 314   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 314   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 315                                   base::FundamentalValue(false)); | 315                                   base::Value(false)); | 
| 316 | 316 | 
| 317   VerifyTimerIsStopped(); | 317   VerifyTimerIsStopped(); | 
| 318   recommended_prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, | 318   recommended_prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, | 
| 319                                  false); | 319                                  false); | 
| 320   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 320   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 
| 321                         base::FundamentalValue(true)); | 321                         base::Value(true)); | 
| 322   VerifyTimerIsRunning(); | 322   VerifyTimerIsRunning(); | 
| 323   runner_->RunUntilIdle(); | 323   runner_->RunUntilIdle(); | 
| 324   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 324   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 
| 325                                   base::FundamentalValue(false)); | 325                                   base::Value(false)); | 
| 326 | 326 | 
| 327   VerifyTimerIsStopped(); | 327   VerifyTimerIsStopped(); | 
| 328   recommended_prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, | 328   recommended_prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 329                                  false); | 329                                  false); | 
| 330   recommended_prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, 0); | 330   recommended_prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, 0); | 
| 331   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 331   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 332                         base::FundamentalValue(true)); | 332                         base::Value(true)); | 
| 333   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 333   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 
| 334                         base::FundamentalValue(ash::MAGNIFIER_FULL)); | 334                         base::Value(ash::MAGNIFIER_FULL)); | 
| 335   VerifyTimerIsRunning(); | 335   VerifyTimerIsRunning(); | 
| 336   runner_->RunUntilIdle(); | 336   runner_->RunUntilIdle(); | 
| 337   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 337   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 338                                   base::FundamentalValue(false)); | 338                                   base::Value(false)); | 
| 339   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 339   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 
| 340                                   base::FundamentalValue(0)); | 340                                   base::Value(0)); | 
| 341   VerifyTimerIsStopped(); | 341   VerifyTimerIsStopped(); | 
| 342   recommended_prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, | 342   recommended_prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 343                                  false); | 343                                  false); | 
| 344   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 344   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 345                         base::FundamentalValue(true)); | 345                         base::Value(true)); | 
| 346   VerifyTimerIsRunning(); | 346   VerifyTimerIsRunning(); | 
| 347   runner_->RunUntilIdle(); | 347   runner_->RunUntilIdle(); | 
| 348   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 348   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 349                                   base::FundamentalValue(false)); | 349                                   base::Value(false)); | 
| 350   VerifyTimerIsStopped(); | 350   VerifyTimerIsStopped(); | 
| 351 } | 351 } | 
| 352 | 352 | 
| 353 TEST_F(RecommendationRestorerTest, RestoreOnRecommendationChangeInUserSession) { | 353 TEST_F(RecommendationRestorerTest, RestoreOnRecommendationChangeInUserSession) { | 
| 354   // Verifies that if recommended values change while a user session is in | 354   // Verifies that if recommended values change while a user session is in | 
| 355   // progress, user settings are cleared immediately. | 355   // progress, user settings are cleared immediately. | 
| 356   RegisterLoginProfilePrefs(); | 356   RegisterLoginProfilePrefs(); | 
| 357   SetUserSettings(); | 357   SetUserSettings(); | 
| 358 | 358 | 
| 359   CreateLoginProfile(); | 359   CreateLoginProfile(); | 
| 360   NotifyOfSessionStart(); | 360   NotifyOfSessionStart(); | 
| 361 | 361 | 
| 362   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 362   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 
| 363                         base::FundamentalValue(true)); | 363                         base::Value(true)); | 
| 364   recommended_prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, | 364   recommended_prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, | 
| 365                                  false); | 365                                  false); | 
| 366   VerifyTimerIsStopped(); | 366   VerifyTimerIsStopped(); | 
| 367   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 367   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 
| 368                                   base::FundamentalValue(false)); | 368                                   base::Value(false)); | 
| 369 | 369 | 
| 370   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 370   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 371                         base::FundamentalValue(true)); | 371                         base::Value(true)); | 
| 372   recommended_prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, | 372   recommended_prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 373                                  false); | 373                                  false); | 
| 374   VerifyTimerIsStopped(); | 374   VerifyTimerIsStopped(); | 
| 375   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 375   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 376                                   base::FundamentalValue(false)); | 376                                   base::Value(false)); | 
| 377 | 377 | 
| 378   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 378   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 
| 379                         base::FundamentalValue(true)); | 379                         base::Value(true)); | 
| 380   recommended_prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, | 380   recommended_prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, | 
| 381                                  false); | 381                                  false); | 
| 382   VerifyTimerIsStopped(); | 382   VerifyTimerIsStopped(); | 
| 383   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 383   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 
| 384                                   base::FundamentalValue(false)); | 384                                   base::Value(false)); | 
| 385 | 385 | 
| 386   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 386   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 387                         base::FundamentalValue(true)); | 387                         base::Value(true)); | 
| 388   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 388   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 
| 389                         base::FundamentalValue(ash::MAGNIFIER_FULL)); | 389                         base::Value(ash::MAGNIFIER_FULL)); | 
| 390   recommended_prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, | 390   recommended_prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 391                                  false); | 391                                  false); | 
| 392   recommended_prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, 0); | 392   recommended_prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, 0); | 
| 393   VerifyTimerIsStopped(); | 393   VerifyTimerIsStopped(); | 
| 394   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 394   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 395                                   base::FundamentalValue(false)); | 395                                   base::Value(false)); | 
| 396   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 396   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 
| 397                                   base::FundamentalValue(0)); | 397                                   base::Value(0)); | 
| 398 | 398 | 
| 399   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 399   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 400                         base::FundamentalValue(true)); | 400                         base::Value(true)); | 
| 401   recommended_prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, | 401   recommended_prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 402                                  false); | 402                                  false); | 
| 403   VerifyTimerIsStopped(); | 403   VerifyTimerIsStopped(); | 
| 404   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 404   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 405                                   base::FundamentalValue(false)); | 405                                   base::Value(false)); | 
| 406 } | 406 } | 
| 407 | 407 | 
| 408 TEST_F(RecommendationRestorerTest, DoNothingOnUserChange) { | 408 TEST_F(RecommendationRestorerTest, DoNothingOnUserChange) { | 
| 409   // Verifies that if no recommended values have been set and user settings | 409   // Verifies that if no recommended values have been set and user settings | 
| 410   // change, the user settings are not cleared immediately and no timer is | 410   // change, the user settings are not cleared immediately and no timer is | 
| 411   // started that will clear the user settings eventually. | 411   // started that will clear the user settings eventually. | 
| 412   RegisterLoginProfilePrefs(); | 412   RegisterLoginProfilePrefs(); | 
| 413   CreateLoginProfile(); | 413   CreateLoginProfile(); | 
| 414 | 414 | 
| 415   prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, true); | 415   prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, true); | 
| 416   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 416   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 
| 417                         base::FundamentalValue(true)); | 417                         base::Value(true)); | 
| 418   VerifyTimerIsStopped(); | 418   VerifyTimerIsStopped(); | 
| 419 | 419 | 
| 420   prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, true); | 420   prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, true); | 
| 421   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 421   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 422                         base::FundamentalValue(true)); | 422                         base::Value(true)); | 
| 423   VerifyTimerIsStopped(); | 423   VerifyTimerIsStopped(); | 
| 424 | 424 | 
| 425   prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, true); | 425   prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, true); | 
| 426   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 426   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 
| 427                         base::FundamentalValue(true)); | 427                         base::Value(true)); | 
| 428   VerifyTimerIsStopped(); | 428   VerifyTimerIsStopped(); | 
| 429 | 429 | 
| 430   prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, true); | 430   prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, true); | 
| 431   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 431   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 432                         base::FundamentalValue(true)); | 432                         base::Value(true)); | 
| 433   VerifyTimerIsStopped(); | 433   VerifyTimerIsStopped(); | 
| 434 | 434 | 
| 435   prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, true); | 435   prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, true); | 
| 436   prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, | 436   prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, | 
| 437                      ash::MAGNIFIER_FULL); | 437                      ash::MAGNIFIER_FULL); | 
| 438   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 438   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 439                         base::FundamentalValue(true)); | 439                         base::Value(true)); | 
| 440   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 440   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 
| 441                         base::FundamentalValue(ash::MAGNIFIER_FULL)); | 441                         base::Value(ash::MAGNIFIER_FULL)); | 
| 442   VerifyTimerIsStopped(); | 442   VerifyTimerIsStopped(); | 
| 443 | 443 | 
| 444   prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, true); | 444   prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, true); | 
| 445   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 445   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 446                         base::FundamentalValue(true)); | 446                         base::Value(true)); | 
| 447   VerifyTimerIsStopped(); | 447   VerifyTimerIsStopped(); | 
| 448 } | 448 } | 
| 449 | 449 | 
| 450 TEST_F(RecommendationRestorerTest, RestoreOnUserChange) { | 450 TEST_F(RecommendationRestorerTest, RestoreOnUserChange) { | 
| 451   // Verifies that if recommended values have been set and user settings change | 451   // Verifies that if recommended values have been set and user settings change | 
| 452   // while the login screen is being shown, a timer is started that will clear | 452   // while the login screen is being shown, a timer is started that will clear | 
| 453   // the user settings eventually. | 453   // the user settings eventually. | 
| 454   RegisterLoginProfilePrefs(); | 454   RegisterLoginProfilePrefs(); | 
| 455   SetRecommendedValues(); | 455   SetRecommendedValues(); | 
| 456 | 456 | 
| 457   CreateLoginProfile(); | 457   CreateLoginProfile(); | 
| 458 | 458 | 
| 459   VerifyTimerIsStopped(); | 459   VerifyTimerIsStopped(); | 
| 460   prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, true); | 460   prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, true); | 
| 461   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 461   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 
| 462                         base::FundamentalValue(true)); | 462                         base::Value(true)); | 
| 463   VerifyTimerIsRunning(); | 463   VerifyTimerIsRunning(); | 
| 464   runner_->RunUntilIdle(); | 464   runner_->RunUntilIdle(); | 
| 465   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 465   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 
| 466                                   base::FundamentalValue(false)); | 466                                   base::Value(false)); | 
| 467 | 467 | 
| 468   VerifyTimerIsStopped(); | 468   VerifyTimerIsStopped(); | 
| 469   prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, true); | 469   prefs_->SetBoolean(prefs::kAccessibilitySpokenFeedbackEnabled, true); | 
| 470   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 470   VerifyPrefFollowsUser(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 471                         base::FundamentalValue(true)); | 471                         base::Value(true)); | 
| 472   VerifyTimerIsRunning(); | 472   VerifyTimerIsRunning(); | 
| 473   runner_->RunUntilIdle(); | 473   runner_->RunUntilIdle(); | 
| 474   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 474   VerifyPrefFollowsRecommendation(prefs::kAccessibilitySpokenFeedbackEnabled, | 
| 475                                   base::FundamentalValue(false)); | 475                                   base::Value(false)); | 
| 476 | 476 | 
| 477   VerifyTimerIsStopped(); | 477   VerifyTimerIsStopped(); | 
| 478   prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, true); | 478   prefs_->SetBoolean(prefs::kAccessibilityHighContrastEnabled, true); | 
| 479   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 479   VerifyPrefFollowsUser(prefs::kAccessibilityHighContrastEnabled, | 
| 480                         base::FundamentalValue(true)); | 480                         base::Value(true)); | 
| 481   VerifyTimerIsRunning(); | 481   VerifyTimerIsRunning(); | 
| 482   runner_->RunUntilIdle(); | 482   runner_->RunUntilIdle(); | 
| 483   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 483   VerifyPrefFollowsRecommendation(prefs::kAccessibilityHighContrastEnabled, | 
| 484                                   base::FundamentalValue(false)); | 484                                   base::Value(false)); | 
| 485 | 485 | 
| 486   VerifyTimerIsStopped(); | 486   VerifyTimerIsStopped(); | 
| 487   prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, true); | 487   prefs_->SetBoolean(prefs::kAccessibilityScreenMagnifierEnabled, true); | 
| 488   prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, | 488   prefs_->SetInteger(prefs::kAccessibilityScreenMagnifierType, | 
| 489                      ash::MAGNIFIER_FULL); | 489                      ash::MAGNIFIER_FULL); | 
| 490   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 490   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 491                         base::FundamentalValue(true)); | 491                         base::Value(true)); | 
| 492   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 492   VerifyPrefFollowsUser(prefs::kAccessibilityScreenMagnifierType, | 
| 493                         base::FundamentalValue(ash::MAGNIFIER_FULL)); | 493                         base::Value(ash::MAGNIFIER_FULL)); | 
| 494   VerifyTimerIsRunning(); | 494   VerifyTimerIsRunning(); | 
| 495   runner_->RunUntilIdle(); | 495   runner_->RunUntilIdle(); | 
| 496   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 496   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierEnabled, | 
| 497                                   base::FundamentalValue(false)); | 497                                   base::Value(false)); | 
| 498   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 498   VerifyPrefFollowsRecommendation(prefs::kAccessibilityScreenMagnifierType, | 
| 499                                   base::FundamentalValue(0)); | 499                                   base::Value(0)); | 
| 500 | 500 | 
| 501   VerifyTimerIsStopped(); | 501   VerifyTimerIsStopped(); | 
| 502   prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, true); | 502   prefs_->SetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled, true); | 
| 503   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 503   VerifyPrefFollowsUser(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 504                         base::FundamentalValue(true)); | 504                         base::Value(true)); | 
| 505   VerifyTimerIsRunning(); | 505   VerifyTimerIsRunning(); | 
| 506   runner_->RunUntilIdle(); | 506   runner_->RunUntilIdle(); | 
| 507   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 507   VerifyPrefFollowsRecommendation(prefs::kAccessibilityVirtualKeyboardEnabled, | 
| 508                                   base::FundamentalValue(false)); | 508                                   base::Value(false)); | 
| 509 | 509 | 
| 510   VerifyTimerIsStopped(); | 510   VerifyTimerIsStopped(); | 
| 511 } | 511 } | 
| 512 | 512 | 
| 513 TEST_F(RecommendationRestorerTest, RestoreOnSessionStart) { | 513 TEST_F(RecommendationRestorerTest, RestoreOnSessionStart) { | 
| 514   // Verifies that if recommended values have been set, user settings have | 514   // Verifies that if recommended values have been set, user settings have | 
| 515   // changed and a session is then started, the user settings are cleared | 515   // changed and a session is then started, the user settings are cleared | 
| 516   // immediately and the timer that would have cleared them eventually on the | 516   // immediately and the timer that would have cleared them eventually on the | 
| 517   // login screen is stopped. | 517   // login screen is stopped. | 
| 518   RegisterLoginProfilePrefs(); | 518   RegisterLoginProfilePrefs(); | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
| 549   CreateLoginProfile(); | 549   CreateLoginProfile(); | 
| 550 | 550 | 
| 551   prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, true); | 551   prefs_->SetBoolean(prefs::kAccessibilityLargeCursorEnabled, true); | 
| 552   VerifyTimerIsRunning(); | 552   VerifyTimerIsRunning(); | 
| 553 | 553 | 
| 554   // Notify that there is user activity, then fast forward until the originally | 554   // Notify that there is user activity, then fast forward until the originally | 
| 555   // set timer fires. | 555   // set timer fires. | 
| 556   NotifyOfUserActivity(); | 556   NotifyOfUserActivity(); | 
| 557   runner_->RunPendingTasks(); | 557   runner_->RunPendingTasks(); | 
| 558   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 558   VerifyPrefFollowsUser(prefs::kAccessibilityLargeCursorEnabled, | 
| 559                         base::FundamentalValue(true)); | 559                         base::Value(true)); | 
| 560 | 560 | 
| 561   // Fast forward until the reset timer fires. | 561   // Fast forward until the reset timer fires. | 
| 562   VerifyTimerIsRunning(); | 562   VerifyTimerIsRunning(); | 
| 563   runner_->RunUntilIdle(); | 563   runner_->RunUntilIdle(); | 
| 564   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 564   VerifyPrefFollowsRecommendation(prefs::kAccessibilityLargeCursorEnabled, | 
| 565                                   base::FundamentalValue(false)); | 565                                   base::Value(false)); | 
| 566   VerifyTimerIsStopped(); | 566   VerifyTimerIsStopped(); | 
| 567 } | 567 } | 
| 568 | 568 | 
| 569 }  // namespace policy | 569 }  // namespace policy | 
| OLD | NEW | 
|---|