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

Side by Side Diff: chrome/browser/ui/sync/one_click_signin_helper_unittest.cc

Issue 11411267: Make sure to display an errors that occur during the chrome sign in process (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix ntp bubble Created 8 years 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 | Annotate | Revision Log
OLDNEW
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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "chrome/browser/content_settings/cookie_settings.h" 7 #include "chrome/browser/content_settings/cookie_settings.h"
8 #include "chrome/browser/prefs/pref_service.h" 8 #include "chrome/browser/prefs/pref_service.h"
9 #include "chrome/browser/prefs/scoped_user_pref_update.h" 9 #include "chrome/browser/prefs/scoped_user_pref_update.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
(...skipping 30 matching lines...) Expand all
41 41
42 // Explicit URLs are sign in URLs created by chrome for specific sign in access 42 // Explicit URLs are sign in URLs created by chrome for specific sign in access
43 // points. Implicit URLs are those to sign for some Google service, like gmail 43 // points. Implicit URLs are those to sign for some Google service, like gmail
44 // or drive. In former case, with a valid URL, we don't want to offer the 44 // or drive. In former case, with a valid URL, we don't want to offer the
45 // interstitial. In all other cases we do. 45 // interstitial. In all other cases we do.
46 46
47 const char kImplicitURLString[] = 47 const char kImplicitURLString[] =
48 "https://accounts.google.com/ServiceLogin" 48 "https://accounts.google.com/ServiceLogin"
49 "?service=foo&continue=http://foo.google.com"; 49 "?service=foo&continue=http://foo.google.com";
50 50
51 bool UseWebBasedSigninFlow() {
52 const bool use_web_based_singin_flow =
53 CommandLine::ForCurrentProcess()->HasSwitch(
54 switches::kUseWebBasedSigninFlow);
55 return use_web_based_singin_flow;
56 }
57
58 class SigninManagerMock : public FakeSigninManager { 51 class SigninManagerMock : public FakeSigninManager {
59 public: 52 public:
60 explicit SigninManagerMock(Profile* profile) 53 explicit SigninManagerMock(Profile* profile)
61 : FakeSigninManager(profile) {} 54 : FakeSigninManager(profile) {}
62 MOCK_CONST_METHOD1(IsAllowedUsername, bool(const std::string& username)); 55 MOCK_CONST_METHOD1(IsAllowedUsername, bool(const std::string& username));
63 }; 56 };
64 57
65 class TestProfileIOData : public ProfileIOData { 58 class TestProfileIOData : public ProfileIOData {
66 public: 59 public:
67 TestProfileIOData(bool is_incognito, PrefService* pref_service, 60 TestProfileIOData(bool is_incognito, PrefService* pref_service,
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 PrefService* pref_service = testing_profile->GetPrefs(); 318 PrefService* pref_service = testing_profile->GetPrefs();
326 PrefService* local_state = g_browser_process->local_state(); 319 PrefService* local_state = g_browser_process->local_state();
327 CookieSettings* cookie_settings = 320 CookieSettings* cookie_settings =
328 CookieSettings::Factory::GetForProfile(testing_profile); 321 CookieSettings::Factory::GetForProfile(testing_profile);
329 TestProfileIOData* io_data = new TestProfileIOData( 322 TestProfileIOData* io_data = new TestProfileIOData(
330 is_incognito, pref_service, local_state, cookie_settings); 323 is_incognito, pref_service, local_state, cookie_settings);
331 return io_data; 324 return io_data;
332 } 325 }
333 326
334 TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { 327 TEST_F(OneClickSigninHelperTest, CanOfferNoContents) {
335 EXPECT_FALSE(OneClickSigninHelper::CanOffer(NULL, "user@gmail.com", true)); 328 int error_message_id = 0;
336 EXPECT_FALSE(OneClickSigninHelper::CanOffer(NULL, "", false)); 329 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
330 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
331 "user@gmail.com", &error_message_id));
332 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
333 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL,
334 "user@gmail.com", &error_message_id));
335 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
336 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
337 "", &error_message_id));
337 } 338 }
338 339
339 TEST_F(OneClickSigninHelperTest, CanOffer) { 340 TEST_F(OneClickSigninHelperTest, CanOffer) {
340 CreateSigninManager(false, ""); 341 CreateSigninManager(false, "");
341 342
342 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). 343 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)).
343 WillRepeatedly(Return(true)); 344 WillRepeatedly(Return(true));
344 345
346 int error_message_id = 0;
347
345 EnableOneClick(true); 348 EnableOneClick(true);
346 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), "user@gmail.com", 349 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
347 true)); 350 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
348 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); 351 "user@gmail.com", &error_message_id));
352 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
353 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
354 "user@gmail.com", &error_message_id));
355 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
356 web_contents(),
357 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
358 "", &error_message_id));
349 359
350 EnableOneClick(false); 360 EnableOneClick(false);
351 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "user@gmail.com", 361 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
352 true)); 362 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
353 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); 363 "user@gmail.com", &error_message_id));
364 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
365 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
366 "user@gmail.com", &error_message_id));
367 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
368 web_contents(),
369 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
370 "", &error_message_id));
354 } 371 }
355 372
356 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { 373 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) {
357 CreateSigninManager(false, ""); 374 CreateSigninManager(false, "");
358 375
359 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). 376 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)).
360 WillRepeatedly(Return(true)); 377 WillRepeatedly(Return(true));
361 378
362 // Invoke OneClickTestProfileSyncService factory function and grab result. 379 // Invoke OneClickTestProfileSyncService factory function and grab result.
363 OneClickTestProfileSyncService* sync = 380 OneClickTestProfileSyncService* sync =
364 static_cast<OneClickTestProfileSyncService*>( 381 static_cast<OneClickTestProfileSyncService*>(
365 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( 382 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse(
366 static_cast<Profile*>(browser_context()), 383 static_cast<Profile*>(browser_context()),
367 OneClickTestProfileSyncService::Build)); 384 OneClickTestProfileSyncService::Build));
368 385
369 sync->set_first_setup_in_progress(true); 386 sync->set_first_setup_in_progress(true);
370 387
371 EXPECT_EQ(UseWebBasedSigninFlow(), 388 int error_message_id = 0;
372 OneClickSigninHelper::CanOffer(web_contents(), 389 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
373 "foo@gmail.com", 390 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
374 true)); 391 "foo@gmail.com", &error_message_id));
375 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), 392 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
376 "foo@gmail.com", 393 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
377 false)); 394 "foo@gmail.com", &error_message_id));
395 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
396 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
397 "", &error_message_id));
378 } 398 }
379 399
380 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { 400 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) {
381 CreateSigninManager(false, "foo@gmail.com"); 401 CreateSigninManager(false, "foo@gmail.com");
382 402
383 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). 403 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)).
384 WillRepeatedly(Return(true)); 404 WillRepeatedly(Return(true));
385 405
386 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), 406 int error_message_id = 0;
387 "foo@gmail.com", 407 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
388 true)); 408 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
389 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), 409 "foo@gmail.com", &error_message_id));
390 "user@gmail.com", 410 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
391 true)); 411 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
392 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), 412 "user@gmail.com", &error_message_id));
393 "", 413 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
394 false)); 414 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
415 "foo@gmail.com", &error_message_id));
416 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
417 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
418 "user@gmail.com", &error_message_id));
419 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
420 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
421 "", &error_message_id));
395 } 422 }
396 423
397 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { 424 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) {
398 CreateSigninManager(false, "foo@gmail.com"); 425 CreateSigninManager(false, "foo@gmail.com");
399 426
400 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). 427 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)).
401 WillRepeatedly(Return(false)); 428 WillRepeatedly(Return(false));
402 429
403 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), 430 int error_message_id = 0;
404 "foo@gmail.com", 431 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
405 true)); 432 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
406 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), 433 "foo@gmail.com", &error_message_id));
407 "", 434 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
408 false)); 435 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
436 "foo@gmail.com", &error_message_id));
437 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
438 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
439 "", &error_message_id));
409 } 440 }
410 441
411 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { 442 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) {
412 CreateSigninManager(false, ""); 443 CreateSigninManager(false, "");
413 444
414 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). 445 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)).
415 WillRepeatedly(Return(true)); 446 WillRepeatedly(Return(true));
416 447
417 AddEmailToOneClickRejectedList("foo@gmail.com"); 448 AddEmailToOneClickRejectedList("foo@gmail.com");
418 AddEmailToOneClickRejectedList("user@gmail.com"); 449 AddEmailToOneClickRejectedList("user@gmail.com");
419 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "foo@gmail.com", 450
420 true)); 451 int error_message_id = 0;
421 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "user@gmail.com", 452 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
422 true)); 453 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
423 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), "john@gmail.com", 454 "foo@gmail.com", &error_message_id));
424 true)); 455 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
456 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
457 "user@gmail.com", &error_message_id));
458 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
459 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
460 "foo@gmail.com", &error_message_id));
461 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
462 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
463 "user@gmail.com", &error_message_id));
464 EXPECT_TRUE(OneClickSigninHelper::CanOffer(
465 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
466 "john@gmail.com", &error_message_id));
425 } 467 }
426 468
427 TEST_F(OneClickSigninHelperTest, CanOfferIncognito) { 469 TEST_F(OneClickSigninHelperTest, CanOfferIncognito) {
428 CreateSigninManager(true, ""); 470 CreateSigninManager(true, "");
429 471
430 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "user@gmail.com", 472 int error_message_id = 0;
431 true)); 473 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
432 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); 474 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
475 "user@gmail.com", &error_message_id));
476 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
477 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
478 "user@gmail.com", &error_message_id));
479 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
480 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
481 "", &error_message_id));
433 } 482 }
434 483
435 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { 484 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) {
436 CreateSigninManager(false, ""); 485 CreateSigninManager(false, "");
437 AllowSigninCookies(false); 486 AllowSigninCookies(false);
438 487
439 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). 488 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)).
440 WillRepeatedly(Return(true)); 489 WillRepeatedly(Return(true));
441 490
442 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "user@gmail.com", 491 int error_message_id = 0;
443 true)); 492 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
444 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); 493 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
494 "user@gmail.com", &error_message_id));
495 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
496 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL,
497 "user@gmail.com", &error_message_id));
498 EXPECT_FALSE(OneClickSigninHelper::CanOffer(
499 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY,
Andrew T Wilson (Slow) 2012/12/03 14:54:49 Should we be checking the value in error_message_i
500 "", &error_message_id));
445 } 501 }
446 502
447 // I/O thread tests 503 // I/O thread tests
448 504
449 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThread) { 505 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThread) {
450 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); 506 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false));
451 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, 507 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER,
452 OneClickSigninHelper::CanOfferOnIOThreadImpl( 508 OneClickSigninHelper::CanOfferOnIOThreadImpl(
453 valid_gaia_url_, "", &request_, io_data.get())); 509 valid_gaia_url_, "", &request_, io_data.get()));
454 } 510 }
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 valid_gaia_url_, "", &request_, io_data.get())); 619 valid_gaia_url_, "", &request_, io_data.get()));
564 } 620 }
565 621
566 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { 622 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) {
567 AllowSigninCookies(false); 623 AllowSigninCookies(false);
568 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); 624 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false));
569 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, 625 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER,
570 OneClickSigninHelper::CanOfferOnIOThreadImpl( 626 OneClickSigninHelper::CanOfferOnIOThreadImpl(
571 valid_gaia_url_, "", &request_, io_data.get())); 627 valid_gaia_url_, "", &request_, io_data.get()));
572 } 628 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698