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

Side by Side Diff: chrome/browser/ui/webui/signin/sync_confirmation_handler_unittest.cc

Issue 2800683008: Sync confirmation: change "Settings" link to checkbox (Closed)
Patch Set: tests Created 3 years, 8 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/signin/sync_confirmation_handler.h" 5 #include "chrome/browser/ui/webui/signin/sync_confirmation_handler.h"
6 6
7 #include "base/test/user_action_tester.h" 7 #include "base/test/user_action_tester.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/profiles/profile_avatar_icon_util.h" 9 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
10 #include "chrome/browser/signin/account_fetcher_service_factory.h" 10 #include "chrome/browser/signin/account_fetcher_service_factory.h"
(...skipping 25 matching lines...) Expand all
36 public: 36 public:
37 explicit TestingSyncConfirmationHandler(Browser* browser, 37 explicit TestingSyncConfirmationHandler(Browser* browser,
38 content::WebUI* web_ui) 38 content::WebUI* web_ui)
39 : SyncConfirmationHandler(browser) { 39 : SyncConfirmationHandler(browser) {
40 set_web_ui(web_ui); 40 set_web_ui(web_ui);
41 } 41 }
42 42
43 using SyncConfirmationHandler::HandleConfirm; 43 using SyncConfirmationHandler::HandleConfirm;
44 using SyncConfirmationHandler::HandleUndo; 44 using SyncConfirmationHandler::HandleUndo;
45 using SyncConfirmationHandler::HandleInitializedWithSize; 45 using SyncConfirmationHandler::HandleInitializedWithSize;
46 using SyncConfirmationHandler::HandleGoToSettings;
47 using SyncConfirmationHandler::SetUserImageURL; 46 using SyncConfirmationHandler::SetUserImageURL;
47
48 private:
49 DISALLOW_COPY_AND_ASSIGN(TestingSyncConfirmationHandler);
50 };
51
52 class TestingOneClickSigninSyncStarter : public OneClickSigninSyncStarter {
53 public:
54 TestingOneClickSigninSyncStarter(Profile* profile,
55 Browser* browser,
56 const std::string& gaia_id,
57 const std::string& email,
58 const std::string& password,
59 const std::string& refresh_token,
60 ProfileMode profile_mode,
61 StartSyncMode start_mode,
62 content::WebContents* web_contents,
63 ConfirmationRequired display_confirmation,
64 const GURL& current_url,
65 const GURL& continue_url,
66 Callback callback)
67 : OneClickSigninSyncStarter(profile,
68 browser,
69 gaia_id,
70 email,
71 password,
72 refresh_token,
73 profile_mode,
74 start_mode,
75 web_contents,
76 display_confirmation,
77 current_url,
78 continue_url,
79 callback) {}
80
81 protected:
82 void ShowSyncSetupSettingsSubpage() override {
83 // Intentionally don't open a tab to settings.
84 }
85
86 private:
87 DISALLOW_COPY_AND_ASSIGN(TestingOneClickSigninSyncStarter);
48 }; 88 };
49 89
50 class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest { 90 class SyncConfirmationHandlerTest : public BrowserWithTestWindowTest {
51 public: 91 public:
52 SyncConfirmationHandlerTest() : did_user_explicitly_interact(false), 92 SyncConfirmationHandlerTest()
53 web_ui_(new content::TestWebUI) {} 93 : did_user_explicitly_interact(false), web_ui_(new content::TestWebUI) {}
94
54 void SetUp() override { 95 void SetUp() override {
55 BrowserWithTestWindowTest::SetUp(); 96 BrowserWithTestWindowTest::SetUp();
56 chrome::NewTab(browser()); 97 chrome::NewTab(browser());
57 web_ui()->set_web_contents( 98 web_ui()->set_web_contents(
58 browser()->tab_strip_model()->GetActiveWebContents()); 99 browser()->tab_strip_model()->GetActiveWebContents());
59 100
60 auto handler = 101 auto handler =
61 base::MakeUnique<TestingSyncConfirmationHandler>(browser(), web_ui()); 102 base::MakeUnique<TestingSyncConfirmationHandler>(browser(), web_ui());
62 handler_ = handler.get(); 103 handler_ = handler.get();
63 sync_confirmation_ui_.reset(new SyncConfirmationUI(web_ui())); 104 sync_confirmation_ui_.reset(new SyncConfirmationUI(web_ui()));
64 web_ui()->AddMessageHandler(std::move(handler)); 105 web_ui()->AddMessageHandler(std::move(handler));
65 106
66 // This dialog assumes the signin flow was completed, which kicks off the 107 // This dialog assumes the signin flow was completed, which kicks off the
67 // SigninManager. 108 // SigninManager.
68 new OneClickSigninSyncStarter( 109 new TestingOneClickSigninSyncStarter(
69 profile(), browser(), "gaia", "foo@example.com", "password", 110 profile(), browser(), "gaia", "foo@example.com", "password",
70 "refresh_token", OneClickSigninSyncStarter::CURRENT_PROFILE, 111 "refresh_token", OneClickSigninSyncStarter::CURRENT_PROFILE,
71 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, nullptr, 112 OneClickSigninSyncStarter::SYNC_WITH_DEFAULT_SETTINGS, nullptr,
72 OneClickSigninSyncStarter::NO_CONFIRMATION, GURL(), GURL(), 113 OneClickSigninSyncStarter::NO_CONFIRMATION, GURL(), GURL(),
73 OneClickSigninSyncStarter::Callback()); 114 OneClickSigninSyncStarter::Callback());
74 } 115 }
75 116
76 void TearDown() override { 117 void TearDown() override {
77 sync_confirmation_ui_.reset(); 118 sync_confirmation_ui_.reset();
78 web_ui_.reset(); 119 web_ui_.reset();
79 BrowserWithTestWindowTest::TearDown(); 120 BrowserWithTestWindowTest::TearDown();
80 121
81 if (did_user_explicitly_interact) { 122 if (did_user_explicitly_interact)
82 EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Abort_Signin")); 123 EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Abort_Signin"));
83 } else { 124 else
84 EXPECT_EQ(1, user_action_tester()->GetActionCount("Signin_Abort_Signin")); 125 EXPECT_EQ(1, user_action_tester()->GetActionCount("Signin_Abort_Signin"));
85 }
86 } 126 }
87 127
88 TestingSyncConfirmationHandler* handler() { 128 TestingSyncConfirmationHandler* handler() {
89 return handler_; 129 return handler_;
90 } 130 }
91 131
92 content::TestWebUI* web_ui() { 132 content::TestWebUI* web_ui() {
93 return web_ui_.get(); 133 return web_ui_.get();
94 } 134 }
95 135
(...skipping 22 matching lines...) Expand all
118 158
119 TestingProfile* CreateProfile() override { 159 TestingProfile* CreateProfile() override {
120 TestingProfile::Builder builder; 160 TestingProfile::Builder builder;
121 builder.AddTestingFactory(AccountFetcherServiceFactory::GetInstance(), 161 builder.AddTestingFactory(AccountFetcherServiceFactory::GetInstance(),
122 FakeAccountFetcherServiceBuilder::BuildForTests); 162 FakeAccountFetcherServiceBuilder::BuildForTests);
123 builder.AddTestingFactory( 163 builder.AddTestingFactory(
124 SigninManagerFactory::GetInstance(), BuildFakeSigninManagerBase); 164 SigninManagerFactory::GetInstance(), BuildFakeSigninManagerBase);
125 return builder.Build().release(); 165 return builder.Build().release();
126 } 166 }
127 167
128 protected: 168 protected:
129 bool did_user_explicitly_interact; 169 bool did_user_explicitly_interact;
130 170
131 private: 171 private:
132 std::unique_ptr<content::TestWebUI> web_ui_; 172 std::unique_ptr<content::TestWebUI> web_ui_;
133 std::unique_ptr<SyncConfirmationUI> sync_confirmation_ui_; 173 std::unique_ptr<SyncConfirmationUI> sync_confirmation_ui_;
134 TestingSyncConfirmationHandler* handler_; // Not owned. 174 TestingSyncConfirmationHandler* handler_; // Not owned.
135 base::UserActionTester user_action_tester_; 175 base::UserActionTester user_action_tester_;
176
177 DISALLOW_COPY_AND_ASSIGN(SyncConfirmationHandlerTest);
136 }; 178 };
137 179
138 TEST_F(SyncConfirmationHandlerTest, TestSetImageIfPrimaryAccountReady) { 180 TEST_F(SyncConfirmationHandlerTest, TestSetImageIfPrimaryAccountReady) {
139 account_fetcher_service()->FakeUserInfoFetchSuccess( 181 account_fetcher_service()->FakeUserInfoFetchSuccess(
140 "gaia", 182 "gaia",
141 "foo@example.com", 183 "foo@example.com",
142 "gaia", 184 "gaia",
143 "", 185 "",
144 "full_name", 186 "full_name",
145 "given_name", 187 "given_name",
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 EXPECT_EQ(0, user_action_tester()->GetActionCount( 311 EXPECT_EQ(0, user_action_tester()->GetActionCount(
270 "Signin_Signin_WithDefaultSyncSettings")); 312 "Signin_Signin_WithDefaultSyncSettings"));
271 EXPECT_EQ(0, user_action_tester()->GetActionCount( 313 EXPECT_EQ(0, user_action_tester()->GetActionCount(
272 "Signin_Signin_WithAdvancedSyncSettings")); 314 "Signin_Signin_WithAdvancedSyncSettings"));
273 } 315 }
274 316
275 TEST_F(SyncConfirmationHandlerTest, TestHandleConfirm) { 317 TEST_F(SyncConfirmationHandlerTest, TestHandleConfirm) {
276 EXPECT_FALSE(sync()->IsFirstSetupComplete()); 318 EXPECT_FALSE(sync()->IsFirstSetupComplete());
277 EXPECT_TRUE(sync()->IsFirstSetupInProgress()); 319 EXPECT_TRUE(sync()->IsFirstSetupInProgress());
278 320
279 handler()->HandleConfirm(nullptr); 321 base::ListValue args;
322 args.AppendBoolean(false /* show advanced */);
323 handler()->HandleConfirm(&args);
280 did_user_explicitly_interact = true; 324 did_user_explicitly_interact = true;
281 325
282 EXPECT_FALSE(sync()->IsFirstSetupInProgress()); 326 EXPECT_FALSE(sync()->IsFirstSetupInProgress());
283 EXPECT_TRUE(sync()->IsFirstSetupComplete()); 327 EXPECT_TRUE(sync()->IsFirstSetupComplete());
284 EXPECT_TRUE( 328 EXPECT_TRUE(
285 SigninManagerFactory::GetForProfile(profile())->IsAuthenticated()); 329 SigninManagerFactory::GetForProfile(profile())->IsAuthenticated());
286 EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Undo_Signin")); 330 EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Undo_Signin"));
287 EXPECT_EQ(1, user_action_tester()->GetActionCount( 331 EXPECT_EQ(1, user_action_tester()->GetActionCount(
288 "Signin_Signin_WithDefaultSyncSettings")); 332 "Signin_Signin_WithDefaultSyncSettings"));
289 EXPECT_EQ(0, user_action_tester()->GetActionCount( 333 EXPECT_EQ(0, user_action_tester()->GetActionCount(
290 "Signin_Signin_WithAdvancedSyncSettings")); 334 "Signin_Signin_WithAdvancedSyncSettings"));
291 } 335 }
336
337 TEST_F(SyncConfirmationHandlerTest, TestHandleConfirmWithAdvancedSyncSettings) {
338 EXPECT_FALSE(sync()->IsFirstSetupComplete());
339 EXPECT_TRUE(sync()->IsFirstSetupInProgress());
340
341 base::ListValue args;
342 args.AppendBoolean(true /* show advanced */);
343 handler()->HandleConfirm(&args);
344 did_user_explicitly_interact = true;
345
346 EXPECT_FALSE(sync()->IsFirstSetupInProgress());
347 EXPECT_FALSE(sync()->IsFirstSetupComplete());
348 EXPECT_TRUE(
349 SigninManagerFactory::GetForProfile(profile())->IsAuthenticated());
350 EXPECT_EQ(0, user_action_tester()->GetActionCount("Signin_Undo_Signin"));
351 EXPECT_EQ(0, user_action_tester()->GetActionCount(
352 "Signin_Signin_WithDefaultSyncSettings"));
353 EXPECT_EQ(1, user_action_tester()->GetActionCount(
354 "Signin_Signin_WithAdvancedSyncSettings"));
355 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/signin/sync_confirmation_handler.cc ('k') | chrome/browser/ui/webui/signin/sync_confirmation_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698