| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/webui/options/sync_setup_handler.h" | 5 #include "chrome/browser/ui/webui/options/sync_setup_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 306 } | 306 } |
| 307 | 307 |
| 308 #if !defined(OS_CHROMEOS) | 308 #if !defined(OS_CHROMEOS) |
| 309 TEST_F(SyncSetupHandlerFirstSigninTest, DisplayBasicLogin) { | 309 TEST_F(SyncSetupHandlerFirstSigninTest, DisplayBasicLogin) { |
| 310 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); | 310 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); |
| 311 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 311 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 312 // Ensure that the user is not signed in before calling |HandleStartSignin()|. | 312 // Ensure that the user is not signed in before calling |HandleStartSignin()|. |
| 313 SigninManager* manager = static_cast<SigninManager*>(mock_signin_); | 313 SigninManager* manager = static_cast<SigninManager*>(mock_signin_); |
| 314 manager->SignOut(signin_metrics::SIGNOUT_TEST, | 314 manager->SignOut(signin_metrics::SIGNOUT_TEST, |
| 315 signin_metrics::SignoutDelete::IGNORE_METRIC); | 315 signin_metrics::SignoutDelete::IGNORE_METRIC); |
| 316 handler_->HandleStartSignin(NULL); | 316 base::ListValue list_args; |
| 317 handler_->HandleStartSignin(&list_args); |
| 317 | 318 |
| 318 // Sync setup hands off control to the gaia login tab. | 319 // Sync setup hands off control to the gaia login tab. |
| 319 EXPECT_EQ(NULL, | 320 EXPECT_EQ(NULL, |
| 320 LoginUIServiceFactory::GetForProfile( | 321 LoginUIServiceFactory::GetForProfile( |
| 321 profile_.get())->current_login_ui()); | 322 profile_.get())->current_login_ui()); |
| 322 | 323 |
| 323 ASSERT_FALSE(handler_->is_configuring_sync()); | 324 ASSERT_FALSE(handler_->is_configuring_sync()); |
| 324 | 325 |
| 325 handler_->CloseSyncSetup(); | 326 handler_->CloseSyncSetup(); |
| 326 EXPECT_EQ(NULL, | 327 EXPECT_EQ(NULL, |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 // to showing a configuration page when sync setup completes successfully. | 385 // to showing a configuration page when sync setup completes successfully. |
| 385 TEST_F(SyncSetupHandlerTest, | 386 TEST_F(SyncSetupHandlerTest, |
| 386 DisplayConfigureWithBackendDisabledAndSyncStartupCompleted) { | 387 DisplayConfigureWithBackendDisabledAndSyncStartupCompleted) { |
| 387 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); | 388 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
| 388 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 389 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 389 error_ = GoogleServiceAuthError::AuthErrorNone(); | 390 error_ = GoogleServiceAuthError::AuthErrorNone(); |
| 390 // Sync backend is stopped initially, and will start up. | 391 // Sync backend is stopped initially, and will start up. |
| 391 EXPECT_CALL(*mock_pss_, IsBackendInitialized()).WillRepeatedly(Return(false)); | 392 EXPECT_CALL(*mock_pss_, IsBackendInitialized()).WillRepeatedly(Return(false)); |
| 392 SetDefaultExpectationsForConfigPage(); | 393 SetDefaultExpectationsForConfigPage(); |
| 393 | 394 |
| 394 handler_->OpenSyncSetup(nullptr); | 395 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 395 | 396 |
| 396 // We expect a call to SyncSetupOverlay.showSyncSetupPage. | 397 // We expect a call to SyncSetupOverlay.showSyncSetupPage. |
| 397 EXPECT_EQ(1U, web_ui_.call_data().size()); | 398 EXPECT_EQ(1U, web_ui_.call_data().size()); |
| 398 | 399 |
| 399 const content::TestWebUI::CallData& data0 = *web_ui_.call_data()[0]; | 400 const content::TestWebUI::CallData& data0 = *web_ui_.call_data()[0]; |
| 400 EXPECT_EQ("SyncSetupOverlay.showSyncSetupPage", data0.function_name()); | 401 EXPECT_EQ("SyncSetupOverlay.showSyncSetupPage", data0.function_name()); |
| 401 std::string page; | 402 std::string page; |
| 402 ASSERT_TRUE(data0.arg1()->GetAsString(&page)); | 403 ASSERT_TRUE(data0.arg1()->GetAsString(&page)); |
| 403 EXPECT_EQ(page, "spinner"); | 404 EXPECT_EQ(page, "spinner"); |
| 404 | 405 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 432 // before the user has continued on. | 433 // before the user has continued on. |
| 433 TEST_F(SyncSetupHandlerTest, | 434 TEST_F(SyncSetupHandlerTest, |
| 434 DisplayConfigureWithBackendDisabledAndCancelAfterSigninSuccess) { | 435 DisplayConfigureWithBackendDisabledAndCancelAfterSigninSuccess) { |
| 435 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); | 436 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
| 436 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 437 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 437 error_ = GoogleServiceAuthError::AuthErrorNone(); | 438 error_ = GoogleServiceAuthError::AuthErrorNone(); |
| 438 EXPECT_CALL(*mock_pss_, IsBackendInitialized()) | 439 EXPECT_CALL(*mock_pss_, IsBackendInitialized()) |
| 439 .WillOnce(Return(false)) | 440 .WillOnce(Return(false)) |
| 440 .WillRepeatedly(Return(true)); | 441 .WillRepeatedly(Return(true)); |
| 441 SetDefaultExpectationsForConfigPage(); | 442 SetDefaultExpectationsForConfigPage(); |
| 442 handler_->OpenSyncSetup(nullptr); | 443 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 443 | 444 |
| 444 // It's important to tell sync the user cancelled the setup flow before we | 445 // It's important to tell sync the user cancelled the setup flow before we |
| 445 // tell it we're through with the setup progress. | 446 // tell it we're through with the setup progress. |
| 446 testing::InSequence seq; | 447 testing::InSequence seq; |
| 447 EXPECT_CALL(*mock_pss_, RequestStop(ProfileSyncService::CLEAR_DATA)); | 448 EXPECT_CALL(*mock_pss_, RequestStop(ProfileSyncService::CLEAR_DATA)); |
| 448 EXPECT_CALL(*mock_pss_, SetSetupInProgress(false)); | 449 EXPECT_CALL(*mock_pss_, SetSetupInProgress(false)); |
| 449 | 450 |
| 450 handler_->CloseSyncSetup(); | 451 handler_->CloseSyncSetup(); |
| 451 EXPECT_EQ(NULL, | 452 EXPECT_EQ(NULL, |
| 452 LoginUIServiceFactory::GetForProfile( | 453 LoginUIServiceFactory::GetForProfile( |
| 453 profile_.get())->current_login_ui()); | 454 profile_.get())->current_login_ui()); |
| 454 } | 455 } |
| 455 | 456 |
| 456 TEST_F(SyncSetupHandlerTest, | 457 TEST_F(SyncSetupHandlerTest, |
| 457 DisplayConfigureWithBackendDisabledAndSigninFailed) { | 458 DisplayConfigureWithBackendDisabledAndSigninFailed) { |
| 458 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); | 459 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(true)); |
| 459 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 460 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 460 error_ = GoogleServiceAuthError::AuthErrorNone(); | 461 error_ = GoogleServiceAuthError::AuthErrorNone(); |
| 461 EXPECT_CALL(*mock_pss_, IsBackendInitialized()).WillRepeatedly(Return(false)); | 462 EXPECT_CALL(*mock_pss_, IsBackendInitialized()).WillRepeatedly(Return(false)); |
| 462 | 463 |
| 463 handler_->OpenSyncSetup(nullptr); | 464 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 464 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 465 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 465 EXPECT_EQ("SyncSetupOverlay.showSyncSetupPage", data.function_name()); | 466 EXPECT_EQ("SyncSetupOverlay.showSyncSetupPage", data.function_name()); |
| 466 std::string page; | 467 std::string page; |
| 467 ASSERT_TRUE(data.arg1()->GetAsString(&page)); | 468 ASSERT_TRUE(data.arg1()->GetAsString(&page)); |
| 468 EXPECT_EQ(page, "spinner"); | 469 EXPECT_EQ(page, "spinner"); |
| 469 Mock::VerifyAndClearExpectations(mock_pss_); | 470 Mock::VerifyAndClearExpectations(mock_pss_); |
| 470 error_ = GoogleServiceAuthError( | 471 error_ = GoogleServiceAuthError( |
| 471 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 472 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
| 472 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error_)); | 473 EXPECT_CALL(*mock_pss_, GetAuthError()).WillRepeatedly(ReturnRef(error_)); |
| 473 NotifySyncListeners(); | 474 NotifySyncListeners(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 484 public: | 485 public: |
| 485 SyncSetupHandlerNonCrosTest() {} | 486 SyncSetupHandlerNonCrosTest() {} |
| 486 }; | 487 }; |
| 487 | 488 |
| 488 TEST_F(SyncSetupHandlerNonCrosTest, HandleGaiaAuthFailure) { | 489 TEST_F(SyncSetupHandlerNonCrosTest, HandleGaiaAuthFailure) { |
| 489 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); | 490 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); |
| 490 EXPECT_CALL(*mock_pss_, HasUnrecoverableError()) | 491 EXPECT_CALL(*mock_pss_, HasUnrecoverableError()) |
| 491 .WillRepeatedly(Return(false)); | 492 .WillRepeatedly(Return(false)); |
| 492 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 493 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 493 // Open the web UI. | 494 // Open the web UI. |
| 494 handler_->OpenSyncSetup(nullptr); | 495 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 495 | 496 |
| 496 ASSERT_FALSE(handler_->is_configuring_sync()); | 497 ASSERT_FALSE(handler_->is_configuring_sync()); |
| 497 } | 498 } |
| 498 | 499 |
| 499 // TODO(kochi): We need equivalent tests for ChromeOS. | 500 // TODO(kochi): We need equivalent tests for ChromeOS. |
| 500 TEST_F(SyncSetupHandlerNonCrosTest, UnrecoverableErrorInitializingSync) { | 501 TEST_F(SyncSetupHandlerNonCrosTest, UnrecoverableErrorInitializingSync) { |
| 501 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); | 502 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); |
| 502 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 503 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 503 // Open the web UI. | 504 // Open the web UI. |
| 504 handler_->OpenSyncSetup(nullptr); | 505 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 505 | 506 |
| 506 ASSERT_FALSE(handler_->is_configuring_sync()); | 507 ASSERT_FALSE(handler_->is_configuring_sync()); |
| 507 } | 508 } |
| 508 | 509 |
| 509 TEST_F(SyncSetupHandlerNonCrosTest, GaiaErrorInitializingSync) { | 510 TEST_F(SyncSetupHandlerNonCrosTest, GaiaErrorInitializingSync) { |
| 510 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); | 511 EXPECT_CALL(*mock_pss_, CanSyncStart()).WillRepeatedly(Return(false)); |
| 511 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); | 512 EXPECT_CALL(*mock_pss_, IsFirstSetupComplete()).WillRepeatedly(Return(false)); |
| 512 // Open the web UI. | 513 // Open the web UI. |
| 513 handler_->OpenSyncSetup(nullptr); | 514 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 514 | 515 |
| 515 ASSERT_FALSE(handler_->is_configuring_sync()); | 516 ASSERT_FALSE(handler_->is_configuring_sync()); |
| 516 } | 517 } |
| 517 | 518 |
| 518 #endif // #if !defined(OS_CHROMEOS) | 519 #endif // #if !defined(OS_CHROMEOS) |
| 519 | 520 |
| 520 TEST_F(SyncSetupHandlerTest, TestSyncEverything) { | 521 TEST_F(SyncSetupHandlerTest, TestSyncEverything) { |
| 521 std::string args = | 522 std::string args = |
| 522 GetConfiguration(NULL, SYNC_ALL_DATA, GetAllTypes(), std::string(), | 523 GetConfiguration(NULL, SYNC_ALL_DATA, GetAllTypes(), std::string(), |
| 523 ENCRYPT_PASSWORDS, PAYMENTS_INTEGRATION_ENABLED); | 524 ENCRYPT_PASSWORDS, PAYMENTS_INTEGRATION_ENABLED); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 726 } | 727 } |
| 727 | 728 |
| 728 TEST_F(SyncSetupHandlerTest, ShowSyncSetup) { | 729 TEST_F(SyncSetupHandlerTest, ShowSyncSetup) { |
| 729 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 730 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 730 .WillRepeatedly(Return(false)); | 731 .WillRepeatedly(Return(false)); |
| 731 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 732 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 732 .WillRepeatedly(Return(false)); | 733 .WillRepeatedly(Return(false)); |
| 733 SetupInitializedProfileSyncService(); | 734 SetupInitializedProfileSyncService(); |
| 734 // This should display the sync setup dialog (not login). | 735 // This should display the sync setup dialog (not login). |
| 735 SetDefaultExpectationsForConfigPage(); | 736 SetDefaultExpectationsForConfigPage(); |
| 736 handler_->OpenSyncSetup(nullptr); | 737 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 737 | 738 |
| 738 ExpectConfig(); | 739 ExpectConfig(); |
| 739 } | 740 } |
| 740 | 741 |
| 741 // We do not display signin on chromeos in the case of auth error. | 742 // We do not display signin on chromeos in the case of auth error. |
| 742 TEST_F(SyncSetupHandlerTest, ShowSigninOnAuthError) { | 743 TEST_F(SyncSetupHandlerTest, ShowSigninOnAuthError) { |
| 743 // Initialize the system to a signed in state, but with an auth error. | 744 // Initialize the system to a signed in state, but with an auth error. |
| 744 error_ = GoogleServiceAuthError( | 745 error_ = GoogleServiceAuthError( |
| 745 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 746 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
| 746 | 747 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 761 // sync backend (which will fail due to the auth error). This should only | 762 // sync backend (which will fail due to the auth error). This should only |
| 762 // happen if the user manually navigates to chrome://settings/syncSetup - | 763 // happen if the user manually navigates to chrome://settings/syncSetup - |
| 763 // clicking on the button in the UI will sign the user out rather than | 764 // clicking on the button in the UI will sign the user out rather than |
| 764 // displaying a spinner. Should be no visible UI on ChromeOS in this case. | 765 // displaying a spinner. Should be no visible UI on ChromeOS in this case. |
| 765 EXPECT_EQ(NULL, LoginUIServiceFactory::GetForProfile( | 766 EXPECT_EQ(NULL, LoginUIServiceFactory::GetForProfile( |
| 766 profile_.get())->current_login_ui()); | 767 profile_.get())->current_login_ui()); |
| 767 #else | 768 #else |
| 768 | 769 |
| 769 // On ChromeOS, this should display the spinner while we try to startup the | 770 // On ChromeOS, this should display the spinner while we try to startup the |
| 770 // sync backend, and on desktop this displays the login dialog. | 771 // sync backend, and on desktop this displays the login dialog. |
| 771 handler_->OpenSyncSetup(nullptr); | 772 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 772 | 773 |
| 773 // Sync setup is closed when re-auth is in progress. | 774 // Sync setup is closed when re-auth is in progress. |
| 774 EXPECT_EQ(NULL, | 775 EXPECT_EQ(NULL, |
| 775 LoginUIServiceFactory::GetForProfile( | 776 LoginUIServiceFactory::GetForProfile( |
| 776 profile_.get())->current_login_ui()); | 777 profile_.get())->current_login_ui()); |
| 777 | 778 |
| 778 ASSERT_FALSE(handler_->is_configuring_sync()); | 779 ASSERT_FALSE(handler_->is_configuring_sync()); |
| 779 #endif | 780 #endif |
| 780 } | 781 } |
| 781 | 782 |
| 782 TEST_F(SyncSetupHandlerTest, ShowSetupSyncEverything) { | 783 TEST_F(SyncSetupHandlerTest, ShowSetupSyncEverything) { |
| 783 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 784 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 784 .WillRepeatedly(Return(false)); | 785 .WillRepeatedly(Return(false)); |
| 785 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 786 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 786 .WillRepeatedly(Return(false)); | 787 .WillRepeatedly(Return(false)); |
| 787 SetupInitializedProfileSyncService(); | 788 SetupInitializedProfileSyncService(); |
| 788 SetDefaultExpectationsForConfigPage(); | 789 SetDefaultExpectationsForConfigPage(); |
| 789 // This should display the sync setup dialog (not login). | 790 // This should display the sync setup dialog (not login). |
| 790 handler_->OpenSyncSetup(nullptr); | 791 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 791 | 792 |
| 792 ExpectConfig(); | 793 ExpectConfig(); |
| 793 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 794 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 794 const base::DictionaryValue* dictionary = nullptr; | 795 const base::DictionaryValue* dictionary = nullptr; |
| 795 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 796 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 796 CheckBool(dictionary, "syncAllDataTypes", true); | 797 CheckBool(dictionary, "syncAllDataTypes", true); |
| 797 CheckBool(dictionary, "appsRegistered", true); | 798 CheckBool(dictionary, "appsRegistered", true); |
| 798 CheckBool(dictionary, "autofillRegistered", true); | 799 CheckBool(dictionary, "autofillRegistered", true); |
| 799 CheckBool(dictionary, "bookmarksRegistered", true); | 800 CheckBool(dictionary, "bookmarksRegistered", true); |
| 800 CheckBool(dictionary, "extensionsRegistered", true); | 801 CheckBool(dictionary, "extensionsRegistered", true); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 815 TEST_F(SyncSetupHandlerTest, ShowSetupManuallySyncAll) { | 816 TEST_F(SyncSetupHandlerTest, ShowSetupManuallySyncAll) { |
| 816 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 817 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 817 .WillRepeatedly(Return(false)); | 818 .WillRepeatedly(Return(false)); |
| 818 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 819 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 819 .WillRepeatedly(Return(false)); | 820 .WillRepeatedly(Return(false)); |
| 820 SetupInitializedProfileSyncService(); | 821 SetupInitializedProfileSyncService(); |
| 821 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs()); | 822 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs()); |
| 822 sync_prefs.SetKeepEverythingSynced(false); | 823 sync_prefs.SetKeepEverythingSynced(false); |
| 823 SetDefaultExpectationsForConfigPage(); | 824 SetDefaultExpectationsForConfigPage(); |
| 824 // This should display the sync setup dialog (not login). | 825 // This should display the sync setup dialog (not login). |
| 825 handler_->OpenSyncSetup(nullptr); | 826 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 826 | 827 |
| 827 ExpectConfig(); | 828 ExpectConfig(); |
| 828 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 829 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 829 const base::DictionaryValue* dictionary = nullptr; | 830 const base::DictionaryValue* dictionary = nullptr; |
| 830 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 831 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 831 CheckConfigDataTypeArguments(dictionary, CHOOSE_WHAT_TO_SYNC, GetAllTypes()); | 832 CheckConfigDataTypeArguments(dictionary, CHOOSE_WHAT_TO_SYNC, GetAllTypes()); |
| 832 } | 833 } |
| 833 | 834 |
| 834 TEST_F(SyncSetupHandlerTest, ShowSetupSyncForAllTypesIndividually) { | 835 TEST_F(SyncSetupHandlerTest, ShowSetupSyncForAllTypesIndividually) { |
| 835 syncer::ModelTypeSet user_selectable_types = GetAllTypes(); | 836 syncer::ModelTypeSet user_selectable_types = GetAllTypes(); |
| 836 syncer::ModelTypeSet::Iterator it; | 837 syncer::ModelTypeSet::Iterator it; |
| 837 for (it = user_selectable_types.First(); it.Good(); it.Inc()) { | 838 for (it = user_selectable_types.First(); it.Good(); it.Inc()) { |
| 838 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 839 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 839 .WillRepeatedly(Return(false)); | 840 .WillRepeatedly(Return(false)); |
| 840 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 841 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 841 .WillRepeatedly(Return(false)); | 842 .WillRepeatedly(Return(false)); |
| 842 SetupInitializedProfileSyncService(); | 843 SetupInitializedProfileSyncService(); |
| 843 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs()); | 844 sync_driver::SyncPrefs sync_prefs(profile_->GetPrefs()); |
| 844 sync_prefs.SetKeepEverythingSynced(false); | 845 sync_prefs.SetKeepEverythingSynced(false); |
| 845 SetDefaultExpectationsForConfigPage(); | 846 SetDefaultExpectationsForConfigPage(); |
| 846 syncer::ModelTypeSet types; | 847 syncer::ModelTypeSet types; |
| 847 types.Put(it.Get()); | 848 types.Put(it.Get()); |
| 848 EXPECT_CALL(*mock_pss_, GetPreferredDataTypes()). | 849 EXPECT_CALL(*mock_pss_, GetPreferredDataTypes()). |
| 849 WillRepeatedly(Return(types)); | 850 WillRepeatedly(Return(types)); |
| 850 | 851 |
| 851 // This should display the sync setup dialog (not login). | 852 // This should display the sync setup dialog (not login). |
| 852 handler_->OpenSyncSetup(nullptr); | 853 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 853 | 854 |
| 854 ExpectConfig(); | 855 ExpectConfig(); |
| 855 // Close the config overlay. | 856 // Close the config overlay. |
| 856 LoginUIServiceFactory::GetForProfile(profile_.get())->LoginUIClosed( | 857 LoginUIServiceFactory::GetForProfile(profile_.get())->LoginUIClosed( |
| 857 handler_.get()); | 858 handler_.get()); |
| 858 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 859 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 859 const base::DictionaryValue* dictionary = nullptr; | 860 const base::DictionaryValue* dictionary = nullptr; |
| 860 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 861 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 861 CheckConfigDataTypeArguments(dictionary, CHOOSE_WHAT_TO_SYNC, types); | 862 CheckConfigDataTypeArguments(dictionary, CHOOSE_WHAT_TO_SYNC, types); |
| 862 Mock::VerifyAndClearExpectations(mock_pss_); | 863 Mock::VerifyAndClearExpectations(mock_pss_); |
| 863 // Clean up so we can loop back to display the dialog again. | 864 // Clean up so we can loop back to display the dialog again. |
| 864 web_ui_.ClearTrackedCalls(); | 865 web_ui_.ClearTrackedCalls(); |
| 865 } | 866 } |
| 866 } | 867 } |
| 867 | 868 |
| 868 TEST_F(SyncSetupHandlerTest, ShowSetupGaiaPassphraseRequired) { | 869 TEST_F(SyncSetupHandlerTest, ShowSetupGaiaPassphraseRequired) { |
| 869 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 870 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 870 .WillRepeatedly(Return(true)); | 871 .WillRepeatedly(Return(true)); |
| 871 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 872 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 872 .WillRepeatedly(Return(false)); | 873 .WillRepeatedly(Return(false)); |
| 873 SetupInitializedProfileSyncService(); | 874 SetupInitializedProfileSyncService(); |
| 874 SetDefaultExpectationsForConfigPage(); | 875 SetDefaultExpectationsForConfigPage(); |
| 875 | 876 |
| 876 // This should display the sync setup dialog (not login). | 877 // This should display the sync setup dialog (not login). |
| 877 handler_->OpenSyncSetup(nullptr); | 878 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 878 | 879 |
| 879 ExpectConfig(); | 880 ExpectConfig(); |
| 880 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 881 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 881 const base::DictionaryValue* dictionary = nullptr; | 882 const base::DictionaryValue* dictionary = nullptr; |
| 882 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 883 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 883 CheckBool(dictionary, "showPassphrase", true); | 884 CheckBool(dictionary, "showPassphrase", true); |
| 884 CheckBool(dictionary, "usePassphrase", false); | 885 CheckBool(dictionary, "usePassphrase", false); |
| 885 CheckBool(dictionary, "passphraseFailed", false); | 886 CheckBool(dictionary, "passphraseFailed", false); |
| 886 } | 887 } |
| 887 | 888 |
| 888 TEST_F(SyncSetupHandlerTest, ShowSetupCustomPassphraseRequired) { | 889 TEST_F(SyncSetupHandlerTest, ShowSetupCustomPassphraseRequired) { |
| 889 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 890 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 890 .WillRepeatedly(Return(true)); | 891 .WillRepeatedly(Return(true)); |
| 891 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 892 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 892 .WillRepeatedly(Return(true)); | 893 .WillRepeatedly(Return(true)); |
| 893 EXPECT_CALL(*mock_pss_, GetPassphraseType()) | 894 EXPECT_CALL(*mock_pss_, GetPassphraseType()) |
| 894 .WillRepeatedly(Return(syncer::CUSTOM_PASSPHRASE)); | 895 .WillRepeatedly(Return(syncer::CUSTOM_PASSPHRASE)); |
| 895 SetupInitializedProfileSyncService(); | 896 SetupInitializedProfileSyncService(); |
| 896 SetDefaultExpectationsForConfigPage(); | 897 SetDefaultExpectationsForConfigPage(); |
| 897 | 898 |
| 898 // This should display the sync setup dialog (not login). | 899 // This should display the sync setup dialog (not login). |
| 899 handler_->OpenSyncSetup(nullptr); | 900 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 900 | 901 |
| 901 ExpectConfig(); | 902 ExpectConfig(); |
| 902 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 903 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 903 const base::DictionaryValue* dictionary = nullptr; | 904 const base::DictionaryValue* dictionary = nullptr; |
| 904 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 905 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 905 CheckBool(dictionary, "showPassphrase", true); | 906 CheckBool(dictionary, "showPassphrase", true); |
| 906 CheckBool(dictionary, "usePassphrase", true); | 907 CheckBool(dictionary, "usePassphrase", true); |
| 907 CheckBool(dictionary, "passphraseFailed", false); | 908 CheckBool(dictionary, "passphraseFailed", false); |
| 908 } | 909 } |
| 909 | 910 |
| 910 TEST_F(SyncSetupHandlerTest, ShowSetupEncryptAll) { | 911 TEST_F(SyncSetupHandlerTest, ShowSetupEncryptAll) { |
| 911 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 912 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 912 .WillRepeatedly(Return(false)); | 913 .WillRepeatedly(Return(false)); |
| 913 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 914 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 914 .WillRepeatedly(Return(false)); | 915 .WillRepeatedly(Return(false)); |
| 915 SetupInitializedProfileSyncService(); | 916 SetupInitializedProfileSyncService(); |
| 916 SetDefaultExpectationsForConfigPage(); | 917 SetDefaultExpectationsForConfigPage(); |
| 917 EXPECT_CALL(*mock_pss_, IsEncryptEverythingEnabled()) | 918 EXPECT_CALL(*mock_pss_, IsEncryptEverythingEnabled()) |
| 918 .WillRepeatedly(Return(true)); | 919 .WillRepeatedly(Return(true)); |
| 919 | 920 |
| 920 // This should display the sync setup dialog (not login). | 921 // This should display the sync setup dialog (not login). |
| 921 handler_->OpenSyncSetup(nullptr); | 922 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 922 | 923 |
| 923 ExpectConfig(); | 924 ExpectConfig(); |
| 924 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 925 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 925 const base::DictionaryValue* dictionary = nullptr; | 926 const base::DictionaryValue* dictionary = nullptr; |
| 926 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 927 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 927 CheckBool(dictionary, "encryptAllData", true); | 928 CheckBool(dictionary, "encryptAllData", true); |
| 928 } | 929 } |
| 929 | 930 |
| 930 TEST_F(SyncSetupHandlerTest, ShowSetupEncryptAllDisallowed) { | 931 TEST_F(SyncSetupHandlerTest, ShowSetupEncryptAllDisallowed) { |
| 931 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) | 932 EXPECT_CALL(*mock_pss_, IsPassphraseRequired()) |
| 932 .WillRepeatedly(Return(false)); | 933 .WillRepeatedly(Return(false)); |
| 933 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) | 934 EXPECT_CALL(*mock_pss_, IsUsingSecondaryPassphrase()) |
| 934 .WillRepeatedly(Return(false)); | 935 .WillRepeatedly(Return(false)); |
| 935 SetupInitializedProfileSyncService(); | 936 SetupInitializedProfileSyncService(); |
| 936 SetDefaultExpectationsForConfigPage(); | 937 SetDefaultExpectationsForConfigPage(); |
| 937 EXPECT_CALL(*mock_pss_, IsEncryptEverythingAllowed()) | 938 EXPECT_CALL(*mock_pss_, IsEncryptEverythingAllowed()) |
| 938 .WillRepeatedly(Return(false)); | 939 .WillRepeatedly(Return(false)); |
| 939 | 940 |
| 940 // This should display the sync setup dialog (not login). | 941 // This should display the sync setup dialog (not login). |
| 941 handler_->OpenSyncSetup(nullptr); | 942 handler_->OpenSyncSetup(false /* creating_supervised_user */); |
| 942 | 943 |
| 943 ExpectConfig(); | 944 ExpectConfig(); |
| 944 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; | 945 const content::TestWebUI::CallData& data = *web_ui_.call_data()[0]; |
| 945 const base::DictionaryValue* dictionary = nullptr; | 946 const base::DictionaryValue* dictionary = nullptr; |
| 946 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); | 947 ASSERT_TRUE(data.arg2()->GetAsDictionary(&dictionary)); |
| 947 CheckBool(dictionary, "encryptAllData", false); | 948 CheckBool(dictionary, "encryptAllData", false); |
| 948 CheckBool(dictionary, "encryptAllDataAllowed", false); | 949 CheckBool(dictionary, "encryptAllDataAllowed", false); |
| 949 } | 950 } |
| 950 | 951 |
| 951 TEST_F(SyncSetupHandlerTest, TurnOnEncryptAllDisallowed) { | 952 TEST_F(SyncSetupHandlerTest, TurnOnEncryptAllDisallowed) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 962 EXPECT_CALL(*mock_pss_, IsEncryptEverythingAllowed()) | 963 EXPECT_CALL(*mock_pss_, IsEncryptEverythingAllowed()) |
| 963 .WillRepeatedly(Return(false)); | 964 .WillRepeatedly(Return(false)); |
| 964 EXPECT_CALL(*mock_pss_, EnableEncryptEverything()).Times(0); | 965 EXPECT_CALL(*mock_pss_, EnableEncryptEverything()).Times(0); |
| 965 EXPECT_CALL(*mock_pss_, OnUserChoseDatatypes(true, _)); | 966 EXPECT_CALL(*mock_pss_, OnUserChoseDatatypes(true, _)); |
| 966 handler_->HandleConfigure(&list_args); | 967 handler_->HandleConfigure(&list_args); |
| 967 | 968 |
| 968 // Ensure that we navigated to the "done" state since we don't need a | 969 // Ensure that we navigated to the "done" state since we don't need a |
| 969 // passphrase. | 970 // passphrase. |
| 970 ExpectDone(); | 971 ExpectDone(); |
| 971 } | 972 } |
| 972 | |
| OLD | NEW |