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

Side by Side Diff: chrome/browser/signin/account_reconcilor_unittest.cc

Issue 601643002: Use a distinct source parameter on gaia endpoints for the reconcilor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@uber
Patch Set: Remove functions Created 6 years, 2 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 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/test/histogram_tester.h" 9 #include "base/test/histogram_tester.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 10 matching lines...) Expand all
21 #include "chrome/test/base/testing_browser_process.h" 21 #include "chrome/test/base/testing_browser_process.h"
22 #include "chrome/test/base/testing_profile.h" 22 #include "chrome/test/base/testing_profile.h"
23 #include "chrome/test/base/testing_profile_manager.h" 23 #include "chrome/test/base/testing_profile_manager.h"
24 #include "components/signin/core/browser/account_reconcilor.h" 24 #include "components/signin/core/browser/account_reconcilor.h"
25 #include "components/signin/core/browser/profile_oauth2_token_service.h" 25 #include "components/signin/core/browser/profile_oauth2_token_service.h"
26 #include "components/signin/core/browser/signin_manager.h" 26 #include "components/signin/core/browser/signin_manager.h"
27 #include "components/signin/core/browser/signin_metrics.h" 27 #include "components/signin/core/browser/signin_metrics.h"
28 #include "components/signin/core/common/profile_management_switches.h" 28 #include "components/signin/core/common/profile_management_switches.h"
29 #include "components/signin/core/common/signin_switches.h" 29 #include "components/signin/core/common/signin_switches.h"
30 #include "content/public/test/test_browser_thread_bundle.h" 30 #include "content/public/test/test_browser_thread_bundle.h"
31 #include "google_apis/gaia/gaia_constants.h"
31 #include "google_apis/gaia/gaia_urls.h" 32 #include "google_apis/gaia/gaia_urls.h"
32 #include "net/url_request/test_url_fetcher_factory.h" 33 #include "net/url_request/test_url_fetcher_factory.h"
33 #include "testing/gmock/include/gmock/gmock.h" 34 #include "testing/gmock/include/gmock/gmock.h"
34 #include "testing/gtest/include/gtest/gtest.h" 35 #include "testing/gtest/include/gtest/gtest.h"
35 36
36 namespace { 37 namespace {
37 38
38 const char kTestEmail[] = "user@gmail.com"; 39 const char kTestEmail[] = "user@gmail.com";
39 40
40 class MockAccountReconcilor : public testing::StrictMock<AccountReconcilor> { 41 class MockAccountReconcilor : public testing::StrictMock<AccountReconcilor> {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 url_fetcher_factory_.SetFakeResponse(GURL(url), data, code, status); 93 url_fetcher_factory_.SetFakeResponse(GURL(url), data, code, status);
93 } 94 }
94 95
95 MockAccountReconcilor* GetMockReconcilor(); 96 MockAccountReconcilor* GetMockReconcilor();
96 97
97 void SimulateMergeSessionCompleted( 98 void SimulateMergeSessionCompleted(
98 MergeSessionHelper::Observer* observer, 99 MergeSessionHelper::Observer* observer,
99 const std::string& account_id, 100 const std::string& account_id,
100 const GoogleServiceAuthError& error); 101 const GoogleServiceAuthError& error);
101 102
103 GURL list_accounts_url() { return list_accounts_url_; }
104
102 private: 105 private:
103 content::TestBrowserThreadBundle bundle_; 106 content::TestBrowserThreadBundle bundle_;
104 TestingProfile* profile_; 107 TestingProfile* profile_;
105 FakeSigninManagerForTesting* signin_manager_; 108 FakeSigninManagerForTesting* signin_manager_;
106 FakeProfileOAuth2TokenService* token_service_; 109 FakeProfileOAuth2TokenService* token_service_;
107 MockAccountReconcilor* mock_reconcilor_; 110 MockAccountReconcilor* mock_reconcilor_;
108 net::FakeURLFetcherFactory url_fetcher_factory_; 111 net::FakeURLFetcherFactory url_fetcher_factory_;
109 scoped_ptr<TestingProfileManager> testing_profile_manager_; 112 scoped_ptr<TestingProfileManager> testing_profile_manager_;
110 base::HistogramTester histogram_tester_; 113 base::HistogramTester histogram_tester_;
114 GURL list_accounts_url_;
111 115
112 DISALLOW_COPY_AND_ASSIGN(AccountReconcilorTest); 116 DISALLOW_COPY_AND_ASSIGN(AccountReconcilorTest);
113 }; 117 };
114 118
115 AccountReconcilorTest::AccountReconcilorTest() 119 AccountReconcilorTest::AccountReconcilorTest()
116 : signin_manager_(NULL), 120 : signin_manager_(NULL),
117 token_service_(NULL), 121 token_service_(NULL),
118 mock_reconcilor_(NULL), 122 mock_reconcilor_(NULL),
119 url_fetcher_factory_(NULL) {} 123 url_fetcher_factory_(NULL) {}
120 124
121 void AccountReconcilorTest::SetUp() { 125 void AccountReconcilorTest::SetUp() {
122 // If it's a non-parameterized test, or we have a parameter of true, set flag. 126 // If it's a non-parameterized test, or we have a parameter of true, set flag.
123 if (!::testing::UnitTest::GetInstance()->current_test_info()->value_param() || 127 if (!::testing::UnitTest::GetInstance()->current_test_info()->value_param() ||
124 GetParam()) { 128 GetParam()) {
125 CommandLine::ForCurrentProcess()->AppendSwitch( 129 CommandLine::ForCurrentProcess()->AppendSwitch(
126 switches::kEnableNewProfileManagement); 130 switches::kEnableNewProfileManagement);
127 } 131 }
128 132
133 list_accounts_url_ = GaiaUrls::GetInstance()->ListAccountsURLWithSource(
134 GaiaConstants::kReconcilorSource);
135
129 testing_profile_manager_.reset( 136 testing_profile_manager_.reset(
130 new TestingProfileManager(TestingBrowserProcess::GetGlobal())); 137 new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
131 ASSERT_TRUE(testing_profile_manager_.get()->SetUp()); 138 ASSERT_TRUE(testing_profile_manager_.get()->SetUp());
132 139
133 TestingProfile::TestingFactories factories; 140 TestingProfile::TestingFactories factories;
134 factories.push_back(std::make_pair(ChromeSigninClientFactory::GetInstance(), 141 factories.push_back(std::make_pair(ChromeSigninClientFactory::GetInstance(),
135 signin::BuildTestSigninClient)); 142 signin::BuildTestSigninClient));
136 factories.push_back(std::make_pair( 143 factories.push_back(std::make_pair(
137 ProfileOAuth2TokenServiceFactory::GetInstance(), 144 ProfileOAuth2TokenServiceFactory::GetInstance(),
138 BuildFakeProfileOAuth2TokenService)); 145 BuildFakeProfileOAuth2TokenService));
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 } 238 }
232 239
233 TEST_F(AccountReconcilorTest, GetAccountsFromCookieSuccess) { 240 TEST_F(AccountReconcilorTest, GetAccountsFromCookieSuccess) {
234 signin_manager()->SetAuthenticatedUsername(kTestEmail); 241 signin_manager()->SetAuthenticatedUsername(kTestEmail);
235 token_service()->UpdateCredentials(kTestEmail, "refresh_token"); 242 token_service()->UpdateCredentials(kTestEmail, "refresh_token");
236 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction(kTestEmail)); 243 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction(kTestEmail));
237 AccountReconcilor* reconcilor = 244 AccountReconcilor* reconcilor =
238 AccountReconcilorFactory::GetForProfile(profile()); 245 AccountReconcilorFactory::GetForProfile(profile());
239 ASSERT_TRUE(reconcilor); 246 ASSERT_TRUE(reconcilor);
240 247
241 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 248 SetFakeResponse(list_accounts_url().spec(),
242 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 0]]]", 249 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 0]]]",
243 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 250 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
244 251
245 reconcilor->StartReconcile(); 252 reconcilor->StartReconcile();
246 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet()); 253 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet());
247 254
248 base::RunLoop().RunUntilIdle(); 255 base::RunLoop().RunUntilIdle();
249 ASSERT_TRUE(reconcilor->AreGaiaAccountsSet()); 256 ASSERT_TRUE(reconcilor->AreGaiaAccountsSet());
250 const std::vector<std::pair<std::string, bool> >& accounts = 257 const std::vector<std::pair<std::string, bool> >& accounts =
251 reconcilor->GetGaiaAccountsForTesting(); 258 reconcilor->GetGaiaAccountsForTesting();
252 ASSERT_EQ(1u, accounts.size()); 259 ASSERT_EQ(1u, accounts.size());
253 ASSERT_EQ("user@gmail.com", accounts[0].first); 260 ASSERT_EQ("user@gmail.com", accounts[0].first);
254 } 261 }
255 262
256 TEST_F(AccountReconcilorTest, GetAccountsFromCookieFailure) { 263 TEST_F(AccountReconcilorTest, GetAccountsFromCookieFailure) {
257 signin_manager()->SetAuthenticatedUsername(kTestEmail); 264 signin_manager()->SetAuthenticatedUsername(kTestEmail);
258 token_service()->UpdateCredentials(kTestEmail, "refresh_token"); 265 token_service()->UpdateCredentials(kTestEmail, "refresh_token");
259 AccountReconcilor* reconcilor = 266 AccountReconcilor* reconcilor =
260 AccountReconcilorFactory::GetForProfile(profile()); 267 AccountReconcilorFactory::GetForProfile(profile());
261 ASSERT_TRUE(reconcilor); 268 ASSERT_TRUE(reconcilor);
262 269
263 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), "", 270 SetFakeResponse(list_accounts_url().spec(), "",
264 net::HTTP_NOT_FOUND, net::URLRequestStatus::SUCCESS); 271 net::HTTP_NOT_FOUND, net::URLRequestStatus::SUCCESS);
265 272
266 reconcilor->StartReconcile(); 273 reconcilor->StartReconcile();
267 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet()); 274 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet());
268 275
269 base::RunLoop().RunUntilIdle(); 276 base::RunLoop().RunUntilIdle();
270 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet()); 277 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet());
271 } 278 }
272 279
273 TEST_P(AccountReconcilorTest, StartReconcileNoop) { 280 TEST_P(AccountReconcilorTest, StartReconcileNoop) {
274 signin_manager()->SetAuthenticatedUsername(kTestEmail); 281 signin_manager()->SetAuthenticatedUsername(kTestEmail);
275 token_service()->UpdateCredentials(kTestEmail, "refresh_token"); 282 token_service()->UpdateCredentials(kTestEmail, "refresh_token");
276 283
277 AccountReconcilor* reconcilor = 284 AccountReconcilor* reconcilor =
278 AccountReconcilorFactory::GetForProfile(profile()); 285 AccountReconcilorFactory::GetForProfile(profile());
279 ASSERT_TRUE(reconcilor); 286 ASSERT_TRUE(reconcilor);
280 287
281 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 288 SetFakeResponse(list_accounts_url().spec(),
282 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 289 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
283 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 290 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
284 291
285 reconcilor->StartReconcile(); 292 reconcilor->StartReconcile();
286 ASSERT_TRUE(reconcilor->is_reconcile_started_); 293 ASSERT_TRUE(reconcilor->is_reconcile_started_);
287 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet()); 294 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet());
288 295
289 base::RunLoop().RunUntilIdle(); 296 base::RunLoop().RunUntilIdle();
290 ASSERT_FALSE(reconcilor->is_reconcile_started_); 297 ASSERT_FALSE(reconcilor->is_reconcile_started_);
291 298
(...skipping 14 matching lines...) Expand all
306 // token service, will be considered the same as "dots@gmail.com" as returned 313 // token service, will be considered the same as "dots@gmail.com" as returned
307 // by gaia::ParseListAccountsData(). 314 // by gaia::ParseListAccountsData().
308 TEST_P(AccountReconcilorTest, StartReconcileNoopWithDots) { 315 TEST_P(AccountReconcilorTest, StartReconcileNoopWithDots) {
309 signin_manager()->SetAuthenticatedUsername("Dot.S@gmail.com"); 316 signin_manager()->SetAuthenticatedUsername("Dot.S@gmail.com");
310 token_service()->UpdateCredentials("Dot.S@gmail.com", "refresh_token"); 317 token_service()->UpdateCredentials("Dot.S@gmail.com", "refresh_token");
311 318
312 AccountReconcilor* reconcilor = 319 AccountReconcilor* reconcilor =
313 AccountReconcilorFactory::GetForProfile(profile()); 320 AccountReconcilorFactory::GetForProfile(profile());
314 ASSERT_TRUE(reconcilor); 321 ASSERT_TRUE(reconcilor);
315 322
316 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 323 SetFakeResponse(list_accounts_url().spec(),
317 "[\"f\", [[\"b\", 0, \"n\", \"dot.s@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 324 "[\"f\", [[\"b\", 0, \"n\", \"dot.s@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
318 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 325 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
319 326
320 reconcilor->StartReconcile(); 327 reconcilor->StartReconcile();
321 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet()); 328 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet());
322 329
323 base::RunLoop().RunUntilIdle(); 330 base::RunLoop().RunUntilIdle();
324 ASSERT_FALSE(reconcilor->is_reconcile_started_); 331 ASSERT_FALSE(reconcilor->is_reconcile_started_);
325 332
326 histogram_tester()->ExpectUniqueSample( 333 histogram_tester()->ExpectUniqueSample(
327 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun", 334 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun",
328 signin_metrics::ACCOUNTS_SAME, 335 signin_metrics::ACCOUNTS_SAME,
329 1); 336 1);
330 } 337 }
331 338
332 TEST_P(AccountReconcilorTest, StartReconcileNoopMultiple) { 339 TEST_P(AccountReconcilorTest, StartReconcileNoopMultiple) {
333 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 340 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
334 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 341 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
335 token_service()->UpdateCredentials("other@gmail.com", "refresh_token"); 342 token_service()->UpdateCredentials("other@gmail.com", "refresh_token");
336 343
337 AccountReconcilor* reconcilor = 344 AccountReconcilor* reconcilor =
338 AccountReconcilorFactory::GetForProfile(profile()); 345 AccountReconcilorFactory::GetForProfile(profile());
339 ASSERT_TRUE(reconcilor); 346 ASSERT_TRUE(reconcilor);
340 347
341 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 348 SetFakeResponse(list_accounts_url().spec(),
342 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1], " 349 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1], "
343 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 350 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
344 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 351 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
345 352
346 reconcilor->StartReconcile(); 353 reconcilor->StartReconcile();
347 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet()); 354 ASSERT_FALSE(reconcilor->AreGaiaAccountsSet());
348 base::RunLoop().RunUntilIdle(); 355 base::RunLoop().RunUntilIdle();
349 ASSERT_FALSE(reconcilor->is_reconcile_started_); 356 ASSERT_FALSE(reconcilor->is_reconcile_started_);
350 357
351 histogram_tester()->ExpectTotalCount( 358 histogram_tester()->ExpectTotalCount(
352 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun", 1); 359 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun", 1);
353 histogram_tester()->ExpectUniqueSample( 360 histogram_tester()->ExpectUniqueSample(
354 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun", 361 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun",
355 signin_metrics::ACCOUNTS_SAME, 362 signin_metrics::ACCOUNTS_SAME,
356 1); 363 1);
357 } 364 }
358 365
359 TEST_P(AccountReconcilorTest, StartReconcileAddToCookie) { 366 TEST_P(AccountReconcilorTest, StartReconcileAddToCookie) {
360 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 367 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
361 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 368 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
362 token_service()->UpdateCredentials("other@gmail.com", "refresh_token"); 369 token_service()->UpdateCredentials("other@gmail.com", "refresh_token");
363 370
364 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("other@gmail.com")); 371 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("other@gmail.com"));
365 372
366 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 373 SetFakeResponse(list_accounts_url().spec(),
367 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 374 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
368 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 375 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
369 376
370 AccountReconcilor* reconcilor = GetMockReconcilor(); 377 AccountReconcilor* reconcilor = GetMockReconcilor();
371 reconcilor->StartReconcile(); 378 reconcilor->StartReconcile();
372 379
373 base::RunLoop().RunUntilIdle(); 380 base::RunLoop().RunUntilIdle();
374 ASSERT_TRUE(reconcilor->is_reconcile_started_); 381 ASSERT_TRUE(reconcilor->is_reconcile_started_);
375 SimulateMergeSessionCompleted(reconcilor, "other@gmail.com", 382 SimulateMergeSessionCompleted(reconcilor, "other@gmail.com",
376 GoogleServiceAuthError::AuthErrorNone()); 383 GoogleServiceAuthError::AuthErrorNone());
377 ASSERT_FALSE(reconcilor->is_reconcile_started_); 384 ASSERT_FALSE(reconcilor->is_reconcile_started_);
378 385
379 histogram_tester()->ExpectUniqueSample( 386 histogram_tester()->ExpectUniqueSample(
380 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun", 387 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun",
381 signin_metrics::ACCOUNTS_SAME, 388 signin_metrics::ACCOUNTS_SAME,
382 1); 389 1);
383 histogram_tester()->ExpectUniqueSample( 390 histogram_tester()->ExpectUniqueSample(
384 "Signin.Reconciler.AddedToCookieJar.FirstRun", 1, 1); 391 "Signin.Reconciler.AddedToCookieJar.FirstRun", 1, 1);
385 histogram_tester()->ExpectUniqueSample( 392 histogram_tester()->ExpectUniqueSample(
386 "Signin.Reconciler.RemovedFromCookieJar.FirstRun", 0, 1); 393 "Signin.Reconciler.RemovedFromCookieJar.FirstRun", 0, 1);
387 } 394 }
388 395
389 TEST_P(AccountReconcilorTest, StartReconcileRemoveFromCookie) { 396 TEST_P(AccountReconcilorTest, StartReconcileRemoveFromCookie) {
390 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 397 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
391 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 398 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
392 399
393 EXPECT_CALL(*GetMockReconcilor(), PerformLogoutAllAccountsAction()); 400 EXPECT_CALL(*GetMockReconcilor(), PerformLogoutAllAccountsAction());
394 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com")); 401 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com"));
395 402
396 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 403 SetFakeResponse(list_accounts_url().spec(),
397 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1], " 404 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1], "
398 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 405 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
399 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 406 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
400 407
401 AccountReconcilor* reconcilor = GetMockReconcilor(); 408 AccountReconcilor* reconcilor = GetMockReconcilor();
402 reconcilor->StartReconcile(); 409 reconcilor->StartReconcile();
403 ASSERT_TRUE(reconcilor->is_reconcile_started_); 410 ASSERT_TRUE(reconcilor->is_reconcile_started_);
404 411
405 base::RunLoop().RunUntilIdle(); 412 base::RunLoop().RunUntilIdle();
406 SimulateMergeSessionCompleted(reconcilor, "user@gmail.com", 413 SimulateMergeSessionCompleted(reconcilor, "user@gmail.com",
(...skipping 12 matching lines...) Expand all
419 426
420 TEST_P(AccountReconcilorTest, StartReconcileAddToCookieTwice) { 427 TEST_P(AccountReconcilorTest, StartReconcileAddToCookieTwice) {
421 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 428 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
422 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 429 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
423 token_service()->UpdateCredentials("other@gmail.com", "refresh_token"); 430 token_service()->UpdateCredentials("other@gmail.com", "refresh_token");
424 431
425 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("other@gmail.com")); 432 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("other@gmail.com"));
426 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("third@gmail.com")); 433 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("third@gmail.com"));
427 434
428 SetFakeResponse( 435 SetFakeResponse(
429 GaiaUrls::GetInstance()->list_accounts_url().spec(), 436 list_accounts_url().spec(),
430 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 437 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
431 net::HTTP_OK, 438 net::HTTP_OK,
432 net::URLRequestStatus::SUCCESS); 439 net::URLRequestStatus::SUCCESS);
433 440
434 AccountReconcilor* reconcilor = GetMockReconcilor(); 441 AccountReconcilor* reconcilor = GetMockReconcilor();
435 reconcilor->StartReconcile(); 442 reconcilor->StartReconcile();
436 443
437 base::RunLoop().RunUntilIdle(); 444 base::RunLoop().RunUntilIdle();
438 ASSERT_TRUE(reconcilor->is_reconcile_started_); 445 ASSERT_TRUE(reconcilor->is_reconcile_started_);
439 SimulateMergeSessionCompleted( 446 SimulateMergeSessionCompleted(
440 reconcilor, "other@gmail.com", GoogleServiceAuthError::AuthErrorNone()); 447 reconcilor, "other@gmail.com", GoogleServiceAuthError::AuthErrorNone());
441 ASSERT_FALSE(reconcilor->is_reconcile_started_); 448 ASSERT_FALSE(reconcilor->is_reconcile_started_);
442 449
443 histogram_tester()->ExpectUniqueSample( 450 histogram_tester()->ExpectUniqueSample(
444 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun", 451 "Signin.Reconciler.DifferentPrimaryAccounts.FirstRun",
445 signin_metrics::ACCOUNTS_SAME, 452 signin_metrics::ACCOUNTS_SAME,
446 1); 453 1);
447 histogram_tester()->ExpectUniqueSample( 454 histogram_tester()->ExpectUniqueSample(
448 "Signin.Reconciler.AddedToCookieJar.FirstRun", 1, 1); 455 "Signin.Reconciler.AddedToCookieJar.FirstRun", 1, 1);
449 histogram_tester()->ExpectUniqueSample( 456 histogram_tester()->ExpectUniqueSample(
450 "Signin.Reconciler.RemovedFromCookieJar.FirstRun", 0, 1); 457 "Signin.Reconciler.RemovedFromCookieJar.FirstRun", 0, 1);
451 458
452 // Do another pass after I've added a third account to the token service 459 // Do another pass after I've added a third account to the token service
453 460
454 SetFakeResponse( 461 SetFakeResponse(
455 GaiaUrls::GetInstance()->list_accounts_url().spec(), 462 list_accounts_url().spec(),
456 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1], " 463 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1], "
457 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 464 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
458 net::HTTP_OK, 465 net::HTTP_OK,
459 net::URLRequestStatus::SUCCESS); 466 net::URLRequestStatus::SUCCESS);
460 // This will cause the reconcilor to fire. 467 // This will cause the reconcilor to fire.
461 token_service()->UpdateCredentials("third@gmail.com", "refresh_token"); 468 token_service()->UpdateCredentials("third@gmail.com", "refresh_token");
462 469
463 base::RunLoop().RunUntilIdle(); 470 base::RunLoop().RunUntilIdle();
464 471
465 ASSERT_TRUE(reconcilor->is_reconcile_started_); 472 ASSERT_TRUE(reconcilor->is_reconcile_started_);
(...skipping 21 matching lines...) Expand all
487 494
488 TEST_P(AccountReconcilorTest, StartReconcileBadPrimary) { 495 TEST_P(AccountReconcilorTest, StartReconcileBadPrimary) {
489 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 496 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
490 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 497 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
491 token_service()->UpdateCredentials("other@gmail.com", "refresh_token"); 498 token_service()->UpdateCredentials("other@gmail.com", "refresh_token");
492 499
493 EXPECT_CALL(*GetMockReconcilor(), PerformLogoutAllAccountsAction()); 500 EXPECT_CALL(*GetMockReconcilor(), PerformLogoutAllAccountsAction());
494 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com")); 501 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com"));
495 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("other@gmail.com")); 502 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("other@gmail.com"));
496 503
497 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 504 SetFakeResponse(list_accounts_url().spec(),
498 "[\"f\", [[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1], " 505 "[\"f\", [[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1], "
499 "[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 506 "[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
500 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 507 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
501 508
502 AccountReconcilor* reconcilor = GetMockReconcilor(); 509 AccountReconcilor* reconcilor = GetMockReconcilor();
503 reconcilor->StartReconcile(); 510 reconcilor->StartReconcile();
504 511
505 base::RunLoop().RunUntilIdle(); 512 base::RunLoop().RunUntilIdle();
506 ASSERT_TRUE(reconcilor->is_reconcile_started_); 513 ASSERT_TRUE(reconcilor->is_reconcile_started_);
507 SimulateMergeSessionCompleted(reconcilor, "other@gmail.com", 514 SimulateMergeSessionCompleted(reconcilor, "other@gmail.com",
(...skipping 14 matching lines...) Expand all
522 } 529 }
523 530
524 TEST_P(AccountReconcilorTest, StartReconcileOnlyOnce) { 531 TEST_P(AccountReconcilorTest, StartReconcileOnlyOnce) {
525 signin_manager()->SetAuthenticatedUsername(kTestEmail); 532 signin_manager()->SetAuthenticatedUsername(kTestEmail);
526 token_service()->UpdateCredentials(kTestEmail, "refresh_token"); 533 token_service()->UpdateCredentials(kTestEmail, "refresh_token");
527 534
528 AccountReconcilor* reconcilor = 535 AccountReconcilor* reconcilor =
529 AccountReconcilorFactory::GetForProfile(profile()); 536 AccountReconcilorFactory::GetForProfile(profile());
530 ASSERT_TRUE(reconcilor); 537 ASSERT_TRUE(reconcilor);
531 538
532 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 539 SetFakeResponse(list_accounts_url().spec(),
533 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 540 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
534 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 541 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
535 542
536 ASSERT_FALSE(reconcilor->is_reconcile_started_); 543 ASSERT_FALSE(reconcilor->is_reconcile_started_);
537 reconcilor->StartReconcile(); 544 reconcilor->StartReconcile();
538 ASSERT_TRUE(reconcilor->is_reconcile_started_); 545 ASSERT_TRUE(reconcilor->is_reconcile_started_);
539 546
540 base::RunLoop().RunUntilIdle(); 547 base::RunLoop().RunUntilIdle();
541 ASSERT_FALSE(reconcilor->is_reconcile_started_); 548 ASSERT_FALSE(reconcilor->is_reconcile_started_);
542 } 549 }
543 550
544 TEST_P(AccountReconcilorTest, StartReconcileWithSessionInfoExpiredDefault) { 551 TEST_P(AccountReconcilorTest, StartReconcileWithSessionInfoExpiredDefault) {
545 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 552 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
546 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 553 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
547 token_service()->UpdateCredentials("other@gmail.com", "refresh_token"); 554 token_service()->UpdateCredentials("other@gmail.com", "refresh_token");
548 555
549 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com")); 556 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com"));
550 557
551 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 558 SetFakeResponse(list_accounts_url().spec(),
552 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 0]," 559 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 0],"
553 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]", 560 "[\"b\", 0, \"n\", \"other@gmail.com\", \"p\", 0, 0, 0, 0, 1]]]",
554 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 561 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
555 562
556 AccountReconcilor* reconcilor = 563 AccountReconcilor* reconcilor =
557 AccountReconcilorFactory::GetForProfile(profile()); 564 AccountReconcilorFactory::GetForProfile(profile());
558 ASSERT_TRUE(reconcilor); 565 ASSERT_TRUE(reconcilor);
559 566
560 ASSERT_FALSE(reconcilor->is_reconcile_started_); 567 ASSERT_FALSE(reconcilor->is_reconcile_started_);
561 reconcilor->StartReconcile(); 568 reconcilor->StartReconcile();
562 ASSERT_TRUE(reconcilor->is_reconcile_started_); 569 ASSERT_TRUE(reconcilor->is_reconcile_started_);
563 570
564 base::RunLoop().RunUntilIdle(); 571 base::RunLoop().RunUntilIdle();
565 SimulateMergeSessionCompleted(reconcilor, "user@gmail.com", 572 SimulateMergeSessionCompleted(reconcilor, "user@gmail.com",
566 GoogleServiceAuthError::AuthErrorNone()); 573 GoogleServiceAuthError::AuthErrorNone());
567 ASSERT_FALSE(reconcilor->is_reconcile_started_); 574 ASSERT_FALSE(reconcilor->is_reconcile_started_);
568 } 575 }
569 576
570 TEST_F(AccountReconcilorTest, MergeSessionCompletedWithBogusAccount) { 577 TEST_F(AccountReconcilorTest, MergeSessionCompletedWithBogusAccount) {
571 signin_manager()->SetAuthenticatedUsername("user@gmail.com"); 578 signin_manager()->SetAuthenticatedUsername("user@gmail.com");
572 token_service()->UpdateCredentials("user@gmail.com", "refresh_token"); 579 token_service()->UpdateCredentials("user@gmail.com", "refresh_token");
573 580
574 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com")); 581 EXPECT_CALL(*GetMockReconcilor(), PerformMergeAction("user@gmail.com"));
575 582
576 SetFakeResponse(GaiaUrls::GetInstance()->list_accounts_url().spec(), 583 SetFakeResponse(list_accounts_url().spec(),
577 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 0]]]", 584 "[\"f\", [[\"b\", 0, \"n\", \"user@gmail.com\", \"p\", 0, 0, 0, 0, 0]]]",
578 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 585 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
579 586
580 AccountReconcilor* reconcilor = 587 AccountReconcilor* reconcilor =
581 AccountReconcilorFactory::GetForProfile(profile()); 588 AccountReconcilorFactory::GetForProfile(profile());
582 ASSERT_TRUE(reconcilor); 589 ASSERT_TRUE(reconcilor);
583 590
584 ASSERT_FALSE(reconcilor->is_reconcile_started_); 591 ASSERT_FALSE(reconcilor->is_reconcile_started_);
585 reconcilor->StartReconcile(); 592 reconcilor->StartReconcile();
586 ASSERT_TRUE(reconcilor->is_reconcile_started_); 593 ASSERT_TRUE(reconcilor->is_reconcile_started_);
587 594
588 base::RunLoop().RunUntilIdle(); 595 base::RunLoop().RunUntilIdle();
589 596
590 // If an unknown account id is sent, it should not upset the state. 597 // If an unknown account id is sent, it should not upset the state.
591 SimulateMergeSessionCompleted(reconcilor, "bogus@gmail.com", 598 SimulateMergeSessionCompleted(reconcilor, "bogus@gmail.com",
592 GoogleServiceAuthError::AuthErrorNone()); 599 GoogleServiceAuthError::AuthErrorNone());
593 ASSERT_TRUE(reconcilor->is_reconcile_started_); 600 ASSERT_TRUE(reconcilor->is_reconcile_started_);
594 601
595 SimulateMergeSessionCompleted(reconcilor, "user@gmail.com", 602 SimulateMergeSessionCompleted(reconcilor, "user@gmail.com",
596 GoogleServiceAuthError::AuthErrorNone()); 603 GoogleServiceAuthError::AuthErrorNone());
597 ASSERT_FALSE(reconcilor->is_reconcile_started_); 604 ASSERT_FALSE(reconcilor->is_reconcile_started_);
598 } 605 }
599 606
600 INSTANTIATE_TEST_CASE_P(AccountReconcilorMaybeEnabled, 607 INSTANTIATE_TEST_CASE_P(AccountReconcilorMaybeEnabled,
601 AccountReconcilorTest, 608 AccountReconcilorTest,
602 testing::Bool()); 609 testing::Bool());
603 610
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/identity/gaia_web_auth_flow.cc ('k') | chrome/browser/ui/auto_login_infobar_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698