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 "base/prefs/pref_service.h" | 5 #include "base/prefs/pref_service.h" |
6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "chrome/browser/content_settings/cookie_settings.h" | 8 #include "chrome/browser/content_settings/cookie_settings.h" |
9 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" | 9 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
10 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 10 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 std::string error_message; | 382 std::string error_message; |
383 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 383 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
384 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 384 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
385 "user@gmail.com", &error_message)); | 385 "user@gmail.com", &error_message)); |
386 EXPECT_EQ("", error_message); | 386 EXPECT_EQ("", error_message); |
387 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 387 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
388 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 388 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
389 "user@gmail.com", &error_message)); | 389 "user@gmail.com", &error_message)); |
390 EXPECT_EQ("", error_message); | 390 EXPECT_EQ("", error_message); |
391 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 391 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
392 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 392 NULL, |
393 "", &error_message)); | 393 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 394 std::string(), |
| 395 &error_message)); |
394 EXPECT_EQ("", error_message); | 396 EXPECT_EQ("", error_message); |
395 } | 397 } |
396 | 398 |
397 TEST_F(OneClickSigninHelperTest, CanOffer) { | 399 TEST_F(OneClickSigninHelperTest, CanOffer) { |
398 CreateSigninManager(false, ""); | 400 CreateSigninManager(false, std::string()); |
399 | 401 |
400 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 402 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
401 WillRepeatedly(Return(true)); | 403 WillRepeatedly(Return(true)); |
402 | 404 |
403 EnableOneClick(true); | 405 EnableOneClick(true); |
404 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 406 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
405 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 407 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
406 "user@gmail.com", NULL)); | 408 "user@gmail.com", NULL)); |
407 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 409 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
408 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 410 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
409 "user@gmail.com", NULL)); | 411 "user@gmail.com", NULL)); |
410 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 412 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
411 web_contents(), | 413 web_contents(), |
412 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 414 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
413 "", NULL)); | 415 std::string(), |
| 416 NULL)); |
414 | 417 |
415 EnableOneClick(false); | 418 EnableOneClick(false); |
416 | 419 |
417 std::string error_message; | 420 std::string error_message; |
418 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 421 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
419 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 422 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
420 "user@gmail.com", &error_message)); | 423 "user@gmail.com", &error_message)); |
421 EXPECT_EQ("", error_message); | 424 EXPECT_EQ("", error_message); |
422 | 425 |
423 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 426 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
424 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 427 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
425 "user@gmail.com", &error_message)); | 428 "user@gmail.com", &error_message)); |
426 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 429 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
427 web_contents(), | 430 web_contents(), |
428 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 431 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
429 "", &error_message)); | 432 std::string(), |
| 433 &error_message)); |
430 EXPECT_EQ("", error_message); | 434 EXPECT_EQ("", error_message); |
431 } | 435 } |
432 | 436 |
433 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { | 437 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { |
434 CreateSigninManager(false, ""); | 438 CreateSigninManager(false, std::string()); |
435 | 439 |
436 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 440 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
437 WillRepeatedly(Return(true)); | 441 WillRepeatedly(Return(true)); |
438 | 442 |
439 // Invoke OneClickTestProfileSyncService factory function and grab result. | 443 // Invoke OneClickTestProfileSyncService factory function and grab result. |
440 OneClickTestProfileSyncService* sync = | 444 OneClickTestProfileSyncService* sync = |
441 static_cast<OneClickTestProfileSyncService*>( | 445 static_cast<OneClickTestProfileSyncService*>( |
442 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 446 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
443 static_cast<Profile*>(browser_context()), | 447 static_cast<Profile*>(browser_context()), |
444 OneClickTestProfileSyncService::Build)); | 448 OneClickTestProfileSyncService::Build)); |
445 | 449 |
446 sync->set_first_setup_in_progress(true); | 450 sync->set_first_setup_in_progress(true); |
447 | 451 |
448 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 452 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
449 web_contents(), | 453 web_contents(), |
450 OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 454 OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
451 "foo@gmail.com", NULL)); | 455 "foo@gmail.com", NULL)); |
452 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 456 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
453 web_contents(), | 457 web_contents(), |
454 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 458 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
455 "foo@gmail.com", NULL)); | 459 "foo@gmail.com", NULL)); |
456 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 460 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
457 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 461 web_contents(), |
458 "", NULL)); | 462 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 463 std::string(), |
| 464 NULL)); |
459 } | 465 } |
460 | 466 |
461 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { | 467 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { |
462 CreateSigninManager(false, "foo@gmail.com"); | 468 CreateSigninManager(false, "foo@gmail.com"); |
463 | 469 |
464 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 470 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
465 WillRepeatedly(Return(true)); | 471 WillRepeatedly(Return(true)); |
466 | 472 |
467 std::string error_message; | 473 std::string error_message; |
468 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 474 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
(...skipping 16 matching lines...) Expand all Loading... |
485 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 491 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
486 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 492 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
487 "foo", &error_message)); | 493 "foo", &error_message)); |
488 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 494 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
489 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 495 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
490 "user@gmail.com", &error_message)); | 496 "user@gmail.com", &error_message)); |
491 EXPECT_EQ(l10n_util::GetStringFUTF8(IDS_SYNC_WRONG_EMAIL, | 497 EXPECT_EQ(l10n_util::GetStringFUTF8(IDS_SYNC_WRONG_EMAIL, |
492 UTF8ToUTF16("foo@gmail.com")), | 498 UTF8ToUTF16("foo@gmail.com")), |
493 error_message); | 499 error_message); |
494 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 500 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
495 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 501 web_contents(), |
496 "", &error_message)); | 502 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 503 std::string(), |
| 504 &error_message)); |
497 } | 505 } |
498 | 506 |
499 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { | 507 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { |
500 CreateSigninManager(false, ""); | 508 CreateSigninManager(false, std::string()); |
501 | 509 |
502 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 510 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
503 WillRepeatedly(Return(false)); | 511 WillRepeatedly(Return(false)); |
504 | 512 |
505 std::string error_message; | 513 std::string error_message; |
506 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 514 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
507 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 515 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
508 "foo@gmail.com", &error_message)); | 516 "foo@gmail.com", &error_message)); |
509 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), | 517 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), |
510 error_message); | 518 error_message); |
511 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 519 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
512 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 520 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
513 "foo@gmail.com", &error_message)); | 521 "foo@gmail.com", &error_message)); |
514 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), | 522 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), |
515 error_message); | 523 error_message); |
516 EXPECT_TRUE( | 524 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
517 OneClickSigninHelper::CanOffer( | 525 web_contents(), |
518 web_contents(), | 526 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
519 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 527 std::string(), |
520 "", | 528 &error_message)); |
521 &error_message)); | |
522 } | 529 } |
523 | 530 |
524 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { | 531 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { |
525 CreateSigninManager(false, ""); | 532 CreateSigninManager(false, std::string()); |
526 | 533 |
527 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 534 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
528 WillRepeatedly(Return(true)); | 535 WillRepeatedly(Return(true)); |
529 | 536 |
530 AddEmailToOneClickRejectedList("foo@gmail.com"); | 537 AddEmailToOneClickRejectedList("foo@gmail.com"); |
531 AddEmailToOneClickRejectedList("user@gmail.com"); | 538 AddEmailToOneClickRejectedList("user@gmail.com"); |
532 | 539 |
533 std::string error_message; | 540 std::string error_message; |
534 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 541 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
535 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 542 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
536 "foo@gmail.com", &error_message)); | 543 "foo@gmail.com", &error_message)); |
537 EXPECT_EQ("", error_message); | 544 EXPECT_EQ("", error_message); |
538 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 545 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
539 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 546 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
540 "user@gmail.com", &error_message)); | 547 "user@gmail.com", &error_message)); |
541 EXPECT_EQ("", error_message); | 548 EXPECT_EQ("", error_message); |
542 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 549 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
543 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 550 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
544 "foo@gmail.com", &error_message)); | 551 "foo@gmail.com", &error_message)); |
545 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 552 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
546 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 553 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
547 "user@gmail.com", &error_message)); | 554 "user@gmail.com", &error_message)); |
548 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 555 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
549 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 556 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
550 "john@gmail.com", &error_message)); | 557 "john@gmail.com", &error_message)); |
551 } | 558 } |
552 | 559 |
553 TEST_F(OneClickSigninHelperTest, CanOfferIncognito) { | 560 TEST_F(OneClickSigninHelperTest, CanOfferIncognito) { |
554 CreateSigninManager(true, ""); | 561 CreateSigninManager(true, std::string()); |
555 | 562 |
556 std::string error_message; | 563 std::string error_message; |
557 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 564 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
558 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 565 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
559 "user@gmail.com", &error_message)); | 566 "user@gmail.com", &error_message)); |
560 EXPECT_EQ("", error_message); | 567 EXPECT_EQ("", error_message); |
561 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 568 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
562 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 569 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
563 "user@gmail.com", &error_message)); | 570 "user@gmail.com", &error_message)); |
564 EXPECT_EQ("", error_message); | 571 EXPECT_EQ("", error_message); |
565 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 572 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
566 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 573 web_contents(), |
567 "", &error_message)); | 574 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 575 std::string(), |
| 576 &error_message)); |
568 EXPECT_EQ("", error_message); | 577 EXPECT_EQ("", error_message); |
569 } | 578 } |
570 | 579 |
571 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { | 580 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { |
572 CreateSigninManager(false, ""); | 581 CreateSigninManager(false, std::string()); |
573 AllowSigninCookies(false); | 582 AllowSigninCookies(false); |
574 | 583 |
575 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 584 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
576 WillRepeatedly(Return(true)); | 585 WillRepeatedly(Return(true)); |
577 | 586 |
578 std::string error_message; | 587 std::string error_message; |
579 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 588 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
580 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 589 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
581 "user@gmail.com", &error_message)); | 590 "user@gmail.com", &error_message)); |
582 EXPECT_EQ("", error_message); | 591 EXPECT_EQ("", error_message); |
583 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 592 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
584 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 593 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
585 "user@gmail.com", &error_message)); | 594 "user@gmail.com", &error_message)); |
586 EXPECT_EQ("", error_message); | 595 EXPECT_EQ("", error_message); |
587 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 596 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
588 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 597 web_contents(), |
589 "", &error_message)); | 598 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 599 std::string(), |
| 600 &error_message)); |
590 EXPECT_EQ("", error_message); | 601 EXPECT_EQ("", error_message); |
591 } | 602 } |
592 | 603 |
593 TEST_F(OneClickSigninHelperTest, CanOfferUntrustedProcess) { | 604 TEST_F(OneClickSigninHelperTest, CanOfferUntrustedProcess) { |
594 content::MockRenderProcessHost trusted(browser_context_.get()); | 605 content::MockRenderProcessHost trusted(browser_context_.get()); |
595 ASSERT_NE(trusted.GetID(), process()->GetID()); | 606 ASSERT_NE(trusted.GetID(), process()->GetID()); |
596 // Make sure the RenderProcessHost used by the test is untrusted. | 607 // Make sure the RenderProcessHost used by the test is untrusted. |
597 SetTrustedSigninProcessID(trusted.GetID()); | 608 SetTrustedSigninProcessID(trusted.GetID()); |
598 CreateSigninManager(false, ""); | 609 CreateSigninManager(false, std::string()); |
599 | 610 |
600 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 611 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
601 WillRepeatedly(Return(true)); | 612 WillRepeatedly(Return(true)); |
602 | 613 |
603 EnableOneClick(true); | 614 EnableOneClick(true); |
604 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 615 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
605 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 616 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
606 "user@gmail.com", NULL)); | 617 "user@gmail.com", NULL)); |
607 } | 618 } |
608 | 619 |
609 TEST_F(OneClickSigninHelperTest, CanOfferDisabledByPolicy) { | 620 TEST_F(OneClickSigninHelperTest, CanOfferDisabledByPolicy) { |
610 CreateSigninManager(false, ""); | 621 CreateSigninManager(false, std::string()); |
611 | 622 |
612 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 623 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
613 WillRepeatedly(Return(true)); | 624 WillRepeatedly(Return(true)); |
614 | 625 |
615 EnableOneClick(true); | 626 EnableOneClick(true); |
616 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 627 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
617 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 628 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
618 "user@gmail.com", NULL)); | 629 "user@gmail.com", NULL)); |
619 | 630 |
620 // Simulate a policy disabling signin by writing kSigninAllowed directly. | 631 // Simulate a policy disabling signin by writing kSigninAllowed directly. |
(...skipping 14 matching lines...) Expand all Loading... |
635 | 646 |
636 // Should still offer even if sync is disabled by policy. | 647 // Should still offer even if sync is disabled by policy. |
637 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 648 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
638 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 649 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
639 "user@gmail.com", NULL)); | 650 "user@gmail.com", NULL)); |
640 } | 651 } |
641 | 652 |
642 // Should not crash if a helper instance is not associated with an incognito | 653 // Should not crash if a helper instance is not associated with an incognito |
643 // web contents. | 654 // web contents. |
644 TEST_F(OneClickSigninHelperTest, ShowInfoBarUIThreadIncognito) { | 655 TEST_F(OneClickSigninHelperTest, ShowInfoBarUIThreadIncognito) { |
645 CreateSigninManager(true, ""); | 656 CreateSigninManager(true, std::string()); |
646 OneClickSigninHelper* helper = | 657 OneClickSigninHelper* helper = |
647 OneClickSigninHelper::FromWebContents(web_contents()); | 658 OneClickSigninHelper::FromWebContents(web_contents()); |
648 EXPECT_EQ(NULL, helper); | 659 EXPECT_EQ(NULL, helper); |
649 | 660 |
650 OneClickSigninHelper::ShowInfoBarUIThread( | 661 OneClickSigninHelper::ShowInfoBarUIThread( |
651 "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED, | 662 "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED, |
652 SyncPromoUI::SOURCE_UNKNOWN, GURL(), process()->GetID(), | 663 SyncPromoUI::SOURCE_UNKNOWN, GURL(), process()->GetID(), |
653 rvh()->GetRoutingID()); | 664 rvh()->GetRoutingID()); |
654 } | 665 } |
655 | 666 |
656 // If Chrome signin is triggered from a webstore install, and user chooses to | 667 // If Chrome signin is triggered from a webstore install, and user chooses to |
657 // config sync, then Chrome should redirect immidiately to sync settings page, | 668 // config sync, then Chrome should redirect immidiately to sync settings page, |
658 // and upon successful setup, redirect back to webstore. | 669 // and upon successful setup, redirect back to webstore. |
659 TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) { | 670 TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) { |
660 CreateSigninManager(false, ""); | 671 CreateSigninManager(false, std::string()); |
661 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 672 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)) |
662 WillRepeatedly(Return(true)); | 673 .WillRepeatedly(Return(true)); |
663 | 674 |
664 CreateProfileSyncServiceMock(); | 675 CreateProfileSyncServiceMock(); |
665 | 676 |
666 content::WebContents* contents = web_contents(); | 677 content::WebContents* contents = web_contents(); |
667 | 678 |
668 OneClickSigninHelper::CreateForWebContents(contents); | 679 OneClickSigninHelper::CreateForWebContents(contents); |
669 OneClickSigninHelper* helper = | 680 OneClickSigninHelper* helper = |
670 OneClickSigninHelper::FromWebContents(contents); | 681 OneClickSigninHelper::FromWebContents(contents); |
671 | 682 |
672 GURL continueUrl("https://chrome.google.com/webstore?source=5"); | 683 GURL continueUrl("https://chrome.google.com/webstore?source=5"); |
673 OneClickSigninHelper::ShowInfoBarUIThread( | 684 OneClickSigninHelper::ShowInfoBarUIThread( |
674 "session_index", "user@gmail.com", | 685 "session_index", "user@gmail.com", |
675 OneClickSigninHelper::AUTO_ACCEPT_EXPLICIT, | 686 OneClickSigninHelper::AUTO_ACCEPT_EXPLICIT, |
676 SyncPromoUI::SOURCE_WEBSTORE_INSTALL, | 687 SyncPromoUI::SOURCE_WEBSTORE_INSTALL, |
677 continueUrl, process()->GetID(), rvh()->GetRoutingID()); | 688 continueUrl, process()->GetID(), rvh()->GetRoutingID()); |
678 | 689 |
679 SubmitGAIAPassword(helper); | 690 SubmitGAIAPassword(helper); |
680 | 691 |
681 NavigateAndCommit(GURL("https://chrome.google.com/webstore?source=3")); | 692 NavigateAndCommit(GURL("https://chrome.google.com/webstore?source=3")); |
682 helper->DidStopLoading(rvh()); | 693 helper->DidStopLoading(rvh()); |
683 | 694 |
684 helper->OnStateChanged(); | 695 helper->OnStateChanged(); |
685 EXPECT_EQ(GURL(continueUrl), contents->GetURL()); | 696 EXPECT_EQ(GURL(continueUrl), contents->GetURL()); |
686 EXPECT_EQ("user@gmail.com", signin_manager_->GetAuthenticatedUsername()); | 697 EXPECT_EQ("user@gmail.com", signin_manager_->GetAuthenticatedUsername()); |
687 } | 698 } |
688 | 699 |
689 TEST_F(OneClickSigninHelperTest, ShowSigninBubbleAfterSigninComplete) { | 700 TEST_F(OneClickSigninHelperTest, ShowSigninBubbleAfterSigninComplete) { |
690 CreateSigninManager(false, ""); | 701 CreateSigninManager(false, std::string()); |
691 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 702 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)) |
692 WillRepeatedly(Return(true)); | 703 .WillRepeatedly(Return(true)); |
693 | 704 |
694 CreateProfileSyncServiceMock(); | 705 CreateProfileSyncServiceMock(); |
695 | 706 |
696 content::WebContents* contents = web_contents(); | 707 content::WebContents* contents = web_contents(); |
697 | 708 |
698 OneClickSigninHelper::CreateForWebContents(contents); | 709 OneClickSigninHelper::CreateForWebContents(contents); |
699 OneClickSigninHelper* helper = | 710 OneClickSigninHelper* helper = |
700 OneClickSigninHelper::FromWebContents(contents); | 711 OneClickSigninHelper::FromWebContents(contents); |
701 | 712 |
702 GURL continueUrl( | 713 GURL continueUrl( |
(...skipping 15 matching lines...) Expand all Loading... |
718 helper->SigninSuccess(); | 729 helper->SigninSuccess(); |
719 EXPECT_EQ(pref_service->GetBoolean(prefs::kSyncPromoShowNTPBubble), true); | 730 EXPECT_EQ(pref_service->GetBoolean(prefs::kSyncPromoShowNTPBubble), true); |
720 } | 731 } |
721 | 732 |
722 // I/O thread tests | 733 // I/O thread tests |
723 | 734 |
724 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThread) { | 735 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThread) { |
725 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 736 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
726 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 737 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
727 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 738 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
728 valid_gaia_url_, "", &request_, io_data.get())); | 739 valid_gaia_url_, std::string(), &request_, io_data.get())); |
729 } | 740 } |
730 | 741 |
731 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadIncognito) { | 742 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadIncognito) { |
732 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(true)); | 743 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(true)); |
733 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 744 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
734 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 745 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
735 valid_gaia_url_, "", &request_, io_data.get())); | 746 valid_gaia_url_, std::string(), &request_, io_data.get())); |
736 } | 747 } |
737 | 748 |
738 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoIOData) { | 749 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoIOData) { |
739 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 750 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
740 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 751 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
741 valid_gaia_url_, "", &request_, NULL)); | 752 valid_gaia_url_, std::string(), &request_, NULL)); |
742 } | 753 } |
743 | 754 |
744 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadBadURL) { | 755 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadBadURL) { |
745 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 756 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
| 757 EXPECT_EQ( |
| 758 OneClickSigninHelper::IGNORE_REQUEST, |
| 759 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
| 760 GURL("https://foo.com/"), std::string(), &request_, io_data.get())); |
746 EXPECT_EQ(OneClickSigninHelper::IGNORE_REQUEST, | 761 EXPECT_EQ(OneClickSigninHelper::IGNORE_REQUEST, |
747 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 762 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
748 GURL("https://foo.com/"), "", &request_, io_data.get())); | 763 GURL("http://accounts.google.com/"), |
749 EXPECT_EQ(OneClickSigninHelper::IGNORE_REQUEST, | 764 std::string(), |
750 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 765 &request_, |
751 GURL("http://accounts.google.com/"), "", | 766 io_data.get())); |
752 &request_, io_data.get())); | |
753 } | 767 } |
754 | 768 |
755 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadReferrer) { | 769 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadReferrer) { |
756 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 770 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
757 std::string continue_url(SyncPromoUI::GetSyncPromoURL( | 771 std::string continue_url(SyncPromoUI::GetSyncPromoURL( |
758 GURL(), SyncPromoUI::SOURCE_START_PAGE, false).spec()); | 772 GURL(), SyncPromoUI::SOURCE_START_PAGE, false).spec()); |
759 | 773 |
760 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 774 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
761 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 775 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
762 valid_gaia_url_, continue_url, &request_, io_data.get())); | 776 valid_gaia_url_, continue_url, &request_, io_data.get())); |
(...skipping 26 matching lines...) Expand all Loading... |
789 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 803 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
790 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 804 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
791 valid_gaia_url_, bad_url_3, &request_, io_data.get())); | 805 valid_gaia_url_, bad_url_3, &request_, io_data.get())); |
792 } | 806 } |
793 | 807 |
794 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadDisabled) { | 808 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadDisabled) { |
795 EnableOneClick(false); | 809 EnableOneClick(false); |
796 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 810 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
797 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 811 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
798 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 812 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
799 valid_gaia_url_, "", &request_, io_data.get())); | 813 valid_gaia_url_, std::string(), &request_, io_data.get())); |
800 } | 814 } |
801 | 815 |
802 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadSignedIn) { | 816 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadSignedIn) { |
803 PrefService* pref_service = profile_->GetPrefs(); | 817 PrefService* pref_service = profile_->GetPrefs(); |
804 pref_service->SetString(prefs::kGoogleServicesUsername, "user@gmail.com"); | 818 pref_service->SetString(prefs::kGoogleServicesUsername, "user@gmail.com"); |
805 | 819 |
806 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 820 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
807 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 821 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
808 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 822 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
809 valid_gaia_url_, "", &request_, io_data.get())); | 823 valid_gaia_url_, std::string(), &request_, io_data.get())); |
810 } | 824 } |
811 | 825 |
812 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadEmailNotAllowed) { | 826 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadEmailNotAllowed) { |
813 SetAllowedUsernamePattern("*@example.com"); | 827 SetAllowedUsernamePattern("*@example.com"); |
814 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 828 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
815 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 829 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
816 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 830 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
817 valid_gaia_url_, "", &request_, io_data.get())); | 831 valid_gaia_url_, std::string(), &request_, io_data.get())); |
818 } | 832 } |
819 | 833 |
820 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadEmailAlreadyUsed) { | 834 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadEmailAlreadyUsed) { |
821 ProfileInfoCache* cache = testing_profile_manager_.profile_info_cache(); | 835 ProfileInfoCache* cache = testing_profile_manager_.profile_info_cache(); |
822 const base::FilePath& user_data_dir = cache->GetUserDataDir(); | 836 const base::FilePath& user_data_dir = cache->GetUserDataDir(); |
823 cache->AddProfileToCache(user_data_dir.Append(FILE_PATH_LITERAL("user")), | 837 cache->AddProfileToCache(user_data_dir.Append(FILE_PATH_LITERAL("user")), |
824 UTF8ToUTF16("user"), | 838 UTF8ToUTF16("user"), |
825 UTF8ToUTF16("user@gmail.com"), 0, false); | 839 UTF8ToUTF16("user@gmail.com"), 0, false); |
826 | 840 |
827 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 841 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
828 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 842 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
829 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 843 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
830 valid_gaia_url_, "", &request_, io_data.get())); | 844 valid_gaia_url_, std::string(), &request_, io_data.get())); |
831 } | 845 } |
832 | 846 |
833 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadWithRejectedEmail) { | 847 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadWithRejectedEmail) { |
834 AddEmailToOneClickRejectedList("user@gmail.com"); | 848 AddEmailToOneClickRejectedList("user@gmail.com"); |
835 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 849 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
836 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 850 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
837 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 851 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
838 valid_gaia_url_, "", &request_, io_data.get())); | 852 valid_gaia_url_, std::string(), &request_, io_data.get())); |
839 } | 853 } |
840 | 854 |
841 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { | 855 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { |
842 AllowSigninCookies(false); | 856 AllowSigninCookies(false); |
843 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 857 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
844 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 858 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
845 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 859 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
846 valid_gaia_url_, "", &request_, io_data.get())); | 860 valid_gaia_url_, std::string(), &request_, io_data.get())); |
847 } | 861 } |
848 | 862 |
849 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadDisabledByPolicy) { | 863 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadDisabledByPolicy) { |
850 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 864 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
851 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 865 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
852 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 866 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
853 valid_gaia_url_, "", &request_, io_data.get())); | 867 valid_gaia_url_, std::string(), &request_, io_data.get())); |
854 | 868 |
855 // Simulate a policy disabling signin by writing kSigninAllowed directly. | 869 // Simulate a policy disabling signin by writing kSigninAllowed directly. |
856 // We should not offer to sign in the browser. | 870 // We should not offer to sign in the browser. |
857 profile_->GetTestingPrefService()->SetManagedPref( | 871 profile_->GetTestingPrefService()->SetManagedPref( |
858 prefs::kSigninAllowed, base::Value::CreateBooleanValue(false)); | 872 prefs::kSigninAllowed, base::Value::CreateBooleanValue(false)); |
859 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 873 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
860 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 874 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
861 valid_gaia_url_, "", &request_, io_data.get())); | 875 valid_gaia_url_, std::string(), &request_, io_data.get())); |
862 | 876 |
863 // Reset the preference. | 877 // Reset the preference. |
864 profile_->GetTestingPrefService()->SetManagedPref( | 878 profile_->GetTestingPrefService()->SetManagedPref( |
865 prefs::kSigninAllowed, base::Value::CreateBooleanValue(true)); | 879 prefs::kSigninAllowed, base::Value::CreateBooleanValue(true)); |
866 | 880 |
867 // Simulate a policy disabling sync by writing kSyncManaged directly. | 881 // Simulate a policy disabling sync by writing kSyncManaged directly. |
868 // We should still offer to sign in the browser. | 882 // We should still offer to sign in the browser. |
869 profile_->GetTestingPrefService()->SetManagedPref( | 883 profile_->GetTestingPrefService()->SetManagedPref( |
870 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); | 884 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
871 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 885 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
872 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 886 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
873 valid_gaia_url_, "", &request_, io_data.get())); | 887 valid_gaia_url_, std::string(), &request_, io_data.get())); |
874 } | 888 } |
OLD | NEW |