Index: chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc |
diff --git a/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc b/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc |
index cc71936301330d1c9402e96559974d144be2c018..c1373ebb83700bd4920ff8b8cacc84bec1f71963 100644 |
--- a/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc |
+++ b/chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc |
@@ -43,14 +43,55 @@ class TestingSyncConfirmationHandler : public SyncConfirmationHandler { |
using SyncConfirmationHandler::HandleConfirm; |
using SyncConfirmationHandler::HandleUndo; |
using SyncConfirmationHandler::HandleInitializedWithSize; |
- using SyncConfirmationHandler::HandleGoToSettings; |
using SyncConfirmationHandler::SetUserImageURL; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(TestingSyncConfirmationHandler); |
+}; |
+ |
+class TestingOneClickSigninSyncStarter : public OneClickSigninSyncStarter { |
+ public: |
+ TestingOneClickSigninSyncStarter(Profile* profile, |
+ Browser* browser, |
+ const std::string& gaia_id, |
+ const std::string& email, |
+ const std::string& password, |
+ const std::string& refresh_token, |
+ ProfileMode profile_mode, |
+ StartSyncMode start_mode, |
+ content::WebContents* web_contents, |
+ ConfirmationRequired display_confirmation, |
+ const GURL& current_url, |
+ const GURL& continue_url, |
+ Callback callback) |
+ : OneClickSigninSyncStarter(profile, |
+ browser, |
+ gaia_id, |
+ email, |
+ password, |
+ refresh_token, |
+ profile_mode, |
+ start_mode, |
+ web_contents, |
+ display_confirmation, |
+ current_url, |
+ continue_url, |
+ callback) {} |
+ |
+ protected: |
+ void ShowSyncSetupSettingsSubpage() override { |
+ // Intentionally don't open a tab to settings. |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(TestingOneClickSigninSyncStarter); |
}; |
class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest { |
public: |
- SyncConfirmationHandlerTest() : did_user_explicitly_interact(false), |
- web_ui_(new content::TestWebUI) {} |
+ SyncConfirmationHandlerTest() |
+ : did_user_explicitly_interact(false), web_ui_(new content::TestWebUI) {} |
+ |
void SetUp() override { |
BrowserWithTestWindowTest::SetUp(); |
chrome::NewTab(browser()); |
@@ -65,7 +106,7 @@ class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest { |
// This dialog assumes the signin flow was completed, which kicks off the |
// SigninManager. |
- new OneClickSigninSyncStarter( |
+ new TestingOneClickSigninSyncStarter( |
profile(), browser(), "gaia", "foo@example.com", "password", |
"refresh_token", OneClickSigninSyncStarter::CURRENT_PROFILE, |
OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, nullptr, |
@@ -78,11 +119,10 @@ class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest { |
web_ui_.reset(); |
BrowserWithTestWindowTest::TearDown(); |
- if (did_user_explicitly_interact) { |
+ if (did_user_explicitly_interact) |
EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Abort_Signin")); |
- } else { |
+ else |
EXPECT_EQ(1, user_action_tester()->GetActionCount("Signin_Abort_Signin")); |
- } |
} |
TestingSyncConfirmationHandler* handler() { |
@@ -125,14 +165,16 @@ class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest { |
return builder.Build().release(); |
} |
-protected: |
- bool did_user_explicitly_interact; |
+ protected: |
+ bool did_user_explicitly_interact; |
+ |
+ private: |
+ std::unique_ptr<content::TestWebUI> web_ui_; |
+ std::unique_ptr<SyncConfirmationUI> sync_confirmation_ui_; |
+ TestingSyncConfirmationHandler* handler_; // Not owned. |
+ base::UserActionTester user_action_tester_; |
-private: |
- std::unique_ptr<content::TestWebUI> web_ui_; |
- std::unique_ptr<SyncConfirmationUI> sync_confirmation_ui_; |
- TestingSyncConfirmationHandler* handler_; // Not owned. |
- base::UserActionTester user_action_tester_; |
+ DISALLOW_COPY_AND_ASSIGN(SyncConfirmationHandlerTest); |
}; |
TEST_F(SyncConfirmationHandlerTest, TestSetImageIfPrimaryAccountReady) { |
@@ -276,7 +318,9 @@ TEST_F(SyncConfirmationHandlerTest, TestHandleConfirm) { |
EXPECT_FALSE(sync()->IsFirstSetupComplete()); |
EXPECT_TRUE(sync()->IsFirstSetupInProgress()); |
- handler()->HandleConfirm(nullptr); |
+ base::ListValue args; |
+ args.AppendBoolean(false /* show advanced */); |
+ handler()->HandleConfirm(&args); |
did_user_explicitly_interact = true; |
EXPECT_FALSE(sync()->IsFirstSetupInProgress()); |
@@ -289,3 +333,23 @@ TEST_F(SyncConfirmationHandlerTest, TestHandleConfirm) { |
EXPECT_EQ(0, user_action_tester()->GetActionCount( |
"Signin_Signin_WithAdvancedSyncSettings")); |
} |
+ |
+TEST_F(SyncConfirmationHandlerTest, TestHandleConfirmWithAdvancedSyncSettings) { |
+ EXPECT_FALSE(sync()->IsFirstSetupComplete()); |
+ EXPECT_TRUE(sync()->IsFirstSetupInProgress()); |
+ |
+ base::ListValue args; |
+ args.AppendBoolean(true /* show advanced */); |
+ handler()->HandleConfirm(&args); |
+ did_user_explicitly_interact = true; |
+ |
+ EXPECT_FALSE(sync()->IsFirstSetupInProgress()); |
+ EXPECT_FALSE(sync()->IsFirstSetupComplete()); |
+ EXPECT_TRUE( |
+ SigninManagerFactory::GetForProfile(profile())->IsAuthenticated()); |
+ EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Undo_Signin")); |
+ EXPECT_EQ(0, user_action_tester()->GetActionCount( |
+ "Signin_Signin_WithDefaultSyncSettings")); |
+ EXPECT_EQ(1, user_action_tester()->GetActionCount( |
+ "Signin_Signin_WithAdvancedSyncSettings")); |
+} |