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/strings/utf_string_conversions.h" | 6 #include "base/strings/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 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 | 198 |
199 } // namespace | 199 } // namespace |
200 | 200 |
201 class OneClickSigninHelperTest : public ChromeRenderViewHostTestHarness { | 201 class OneClickSigninHelperTest : public ChromeRenderViewHostTestHarness { |
202 public: | 202 public: |
203 OneClickSigninHelperTest(); | 203 OneClickSigninHelperTest(); |
204 | 204 |
205 virtual void SetUp() OVERRIDE; | 205 virtual void SetUp() OVERRIDE; |
206 virtual void TearDown() OVERRIDE; | 206 virtual void TearDown() OVERRIDE; |
207 | 207 |
208 // Creates the sign-in manager for tests. If |use_incognito| is true then | 208 // Creates the sign-in manager for tests. If |username| is |
209 // a WebContents for an incognito profile is created. If |username| is | |
210 // is not empty, the profile of the mock WebContents will be connected to | 209 // is not empty, the profile of the mock WebContents will be connected to |
211 // the given account. | 210 // the given account. |
212 void CreateSigninManager(bool use_incognito, const std::string& username); | 211 void CreateSigninManager(const std::string& username); |
213 | 212 |
214 // Set the ID of the signin process that the test will assume to be the | 213 // Set the ID of the signin process that the test will assume to be the |
215 // only process allowed to sign the user in to Chrome. | 214 // only process allowed to sign the user in to Chrome. |
216 void SetTrustedSigninProcessID(int id); | 215 void SetTrustedSigninProcessID(int id); |
217 | 216 |
218 void AddEmailToOneClickRejectedList(const std::string& email); | 217 void AddEmailToOneClickRejectedList(const std::string& email); |
219 void EnableOneClick(bool enable); | 218 void EnableOneClick(bool enable); |
220 void AllowSigninCookies(bool enable); | 219 void AllowSigninCookies(bool enable); |
221 void SetAllowedUsernamePattern(const std::string& pattern); | 220 void SetAllowedUsernamePattern(const std::string& pattern); |
222 ProfileSyncServiceMock* CreateProfileSyncServiceMock(); | 221 ProfileSyncServiceMock* CreateProfileSyncServiceMock(); |
(...skipping 28 matching lines...) Expand all Loading... |
251 void OneClickSigninHelperTest::TearDown() { | 250 void OneClickSigninHelperTest::TearDown() { |
252 signin::ForceWebBasedSigninFlowForTesting(false); | 251 signin::ForceWebBasedSigninFlowForTesting(false); |
253 content::RenderViewHostTestHarness::TearDown(); | 252 content::RenderViewHostTestHarness::TearDown(); |
254 } | 253 } |
255 | 254 |
256 void OneClickSigninHelperTest::SetTrustedSigninProcessID(int id) { | 255 void OneClickSigninHelperTest::SetTrustedSigninProcessID(int id) { |
257 trusted_signin_process_id_ = id; | 256 trusted_signin_process_id_ = id; |
258 } | 257 } |
259 | 258 |
260 void OneClickSigninHelperTest::CreateSigninManager( | 259 void OneClickSigninHelperTest::CreateSigninManager( |
261 bool use_incognito, | |
262 const std::string& username) { | 260 const std::string& username) { |
263 profile()->set_incognito(use_incognito); | |
264 signin_manager_ = static_cast<SigninManagerMock*>( | 261 signin_manager_ = static_cast<SigninManagerMock*>( |
265 SigninManagerFactory::GetInstance()->SetTestingFactoryAndUse( | 262 SigninManagerFactory::GetInstance()->SetTestingFactoryAndUse( |
266 profile(), BuildSigninManagerMock)); | 263 profile(), BuildSigninManagerMock)); |
267 if (signin_manager_) | 264 if (signin_manager_) |
268 signin_manager_->SetSigninProcess(trusted_signin_process_id_); | 265 signin_manager_->SetSigninProcess(trusted_signin_process_id_); |
269 | 266 |
270 if (!username.empty()) { | 267 if (!username.empty()) { |
271 ASSERT_TRUE(signin_manager_); | 268 ASSERT_TRUE(signin_manager_); |
272 signin_manager_->SetAuthenticatedUsername(username); | 269 signin_manager_->SetAuthenticatedUsername(username); |
273 } | 270 } |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 PrefService* pref_service = profile()->GetPrefs(); | 358 PrefService* pref_service = profile()->GetPrefs(); |
362 PrefService* local_state = g_browser_process->local_state(); | 359 PrefService* local_state = g_browser_process->local_state(); |
363 CookieSettings* cookie_settings = | 360 CookieSettings* cookie_settings = |
364 CookieSettings::Factory::GetForProfile(profile()).get(); | 361 CookieSettings::Factory::GetForProfile(profile()).get(); |
365 TestProfileIOData* io_data = new TestProfileIOData( | 362 TestProfileIOData* io_data = new TestProfileIOData( |
366 is_incognito, pref_service, local_state, cookie_settings); | 363 is_incognito, pref_service, local_state, cookie_settings); |
367 io_data->set_reverse_autologin_pending_email("user@gmail.com"); | 364 io_data->set_reverse_autologin_pending_email("user@gmail.com"); |
368 return io_data; | 365 return io_data; |
369 } | 366 } |
370 | 367 |
| 368 class OneClickSigninHelperIncognitoTest : public OneClickSigninHelperTest { |
| 369 protected: |
| 370 // content::RenderViewHostTestHarness. |
| 371 virtual content::BrowserContext* CreateBrowserContext() OVERRIDE; |
| 372 }; |
| 373 |
| 374 content::BrowserContext* |
| 375 OneClickSigninHelperIncognitoTest::CreateBrowserContext() { |
| 376 // Builds an incognito profile to run this test. |
| 377 TestingProfile::Builder builder; |
| 378 builder.SetIncognito(); |
| 379 return builder.Build().release(); |
| 380 } |
| 381 |
371 TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { | 382 TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { |
372 std::string error_message; | 383 std::string error_message; |
373 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 384 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
374 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 385 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
375 "user@gmail.com", &error_message)); | 386 "user@gmail.com", &error_message)); |
376 EXPECT_EQ("", error_message); | 387 EXPECT_EQ("", error_message); |
377 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 388 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
378 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 389 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
379 "user@gmail.com", &error_message)); | 390 "user@gmail.com", &error_message)); |
380 EXPECT_EQ("", error_message); | 391 EXPECT_EQ("", error_message); |
381 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 392 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
382 NULL, | 393 NULL, |
383 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 394 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
384 std::string(), | 395 std::string(), |
385 &error_message)); | 396 &error_message)); |
386 EXPECT_EQ("", error_message); | 397 EXPECT_EQ("", error_message); |
387 } | 398 } |
388 | 399 |
389 TEST_F(OneClickSigninHelperTest, CanOffer) { | 400 TEST_F(OneClickSigninHelperTest, CanOffer) { |
390 CreateSigninManager(false, std::string()); | 401 CreateSigninManager(std::string()); |
391 | 402 |
392 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 403 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
393 WillRepeatedly(Return(true)); | 404 WillRepeatedly(Return(true)); |
394 | 405 |
395 EnableOneClick(true); | 406 EnableOneClick(true); |
396 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 407 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
397 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 408 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
398 "user@gmail.com", NULL)); | 409 "user@gmail.com", NULL)); |
399 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 410 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
400 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 411 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
(...skipping 17 matching lines...) Expand all Loading... |
418 "user@gmail.com", &error_message)); | 429 "user@gmail.com", &error_message)); |
419 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 430 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
420 web_contents(), | 431 web_contents(), |
421 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 432 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
422 std::string(), | 433 std::string(), |
423 &error_message)); | 434 &error_message)); |
424 EXPECT_EQ("", error_message); | 435 EXPECT_EQ("", error_message); |
425 } | 436 } |
426 | 437 |
427 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { | 438 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { |
428 CreateSigninManager(false, std::string()); | 439 CreateSigninManager(std::string()); |
429 | 440 |
430 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 441 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
431 WillRepeatedly(Return(true)); | 442 WillRepeatedly(Return(true)); |
432 | 443 |
433 // Invoke OneClickTestProfileSyncService factory function and grab result. | 444 // Invoke OneClickTestProfileSyncService factory function and grab result. |
434 OneClickTestProfileSyncService* sync = | 445 OneClickTestProfileSyncService* sync = |
435 static_cast<OneClickTestProfileSyncService*>( | 446 static_cast<OneClickTestProfileSyncService*>( |
436 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 447 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
437 static_cast<Profile*>(browser_context()), | 448 static_cast<Profile*>(browser_context()), |
438 OneClickTestProfileSyncService::Build)); | 449 OneClickTestProfileSyncService::Build)); |
439 | 450 |
440 sync->set_first_setup_in_progress(true); | 451 sync->set_first_setup_in_progress(true); |
441 | 452 |
442 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 453 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
443 web_contents(), | 454 web_contents(), |
444 OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 455 OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
445 "foo@gmail.com", NULL)); | 456 "foo@gmail.com", NULL)); |
446 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 457 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
447 web_contents(), | 458 web_contents(), |
448 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 459 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
449 "foo@gmail.com", NULL)); | 460 "foo@gmail.com", NULL)); |
450 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 461 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
451 web_contents(), | 462 web_contents(), |
452 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 463 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
453 std::string(), | 464 std::string(), |
454 NULL)); | 465 NULL)); |
455 } | 466 } |
456 | 467 |
457 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { | 468 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { |
458 CreateSigninManager(false, "foo@gmail.com"); | 469 CreateSigninManager("foo@gmail.com"); |
459 | 470 |
460 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 471 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
461 WillRepeatedly(Return(true)); | 472 WillRepeatedly(Return(true)); |
462 | 473 |
463 std::string error_message; | 474 std::string error_message; |
464 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 475 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
465 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 476 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
466 "foo@gmail.com", &error_message)); | 477 "foo@gmail.com", &error_message)); |
467 EXPECT_EQ("", error_message); | 478 EXPECT_EQ("", error_message); |
468 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 479 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
(...skipping 19 matching lines...) Expand all Loading... |
488 UTF8ToUTF16("foo@gmail.com")), | 499 UTF8ToUTF16("foo@gmail.com")), |
489 error_message); | 500 error_message); |
490 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 501 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
491 web_contents(), | 502 web_contents(), |
492 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 503 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
493 std::string(), | 504 std::string(), |
494 &error_message)); | 505 &error_message)); |
495 } | 506 } |
496 | 507 |
497 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { | 508 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { |
498 CreateSigninManager(false, std::string()); | 509 CreateSigninManager(std::string()); |
499 | 510 |
500 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 511 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
501 WillRepeatedly(Return(false)); | 512 WillRepeatedly(Return(false)); |
502 | 513 |
503 std::string error_message; | 514 std::string error_message; |
504 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 515 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
505 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 516 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
506 "foo@gmail.com", &error_message)); | 517 "foo@gmail.com", &error_message)); |
507 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), | 518 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), |
508 error_message); | 519 error_message); |
509 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 520 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
510 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 521 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
511 "foo@gmail.com", &error_message)); | 522 "foo@gmail.com", &error_message)); |
512 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), | 523 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), |
513 error_message); | 524 error_message); |
514 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 525 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
515 web_contents(), | 526 web_contents(), |
516 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 527 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
517 std::string(), | 528 std::string(), |
518 &error_message)); | 529 &error_message)); |
519 } | 530 } |
520 | 531 |
521 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { | 532 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { |
522 CreateSigninManager(false, std::string()); | 533 CreateSigninManager(std::string()); |
523 | 534 |
524 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 535 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
525 WillRepeatedly(Return(true)); | 536 WillRepeatedly(Return(true)); |
526 | 537 |
527 AddEmailToOneClickRejectedList("foo@gmail.com"); | 538 AddEmailToOneClickRejectedList("foo@gmail.com"); |
528 AddEmailToOneClickRejectedList("user@gmail.com"); | 539 AddEmailToOneClickRejectedList("user@gmail.com"); |
529 | 540 |
530 std::string error_message; | 541 std::string error_message; |
531 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 542 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
532 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 543 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
533 "foo@gmail.com", &error_message)); | 544 "foo@gmail.com", &error_message)); |
534 EXPECT_EQ("", error_message); | 545 EXPECT_EQ("", error_message); |
535 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 546 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
536 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 547 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
537 "user@gmail.com", &error_message)); | 548 "user@gmail.com", &error_message)); |
538 EXPECT_EQ("", error_message); | 549 EXPECT_EQ("", error_message); |
539 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 550 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
540 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 551 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
541 "foo@gmail.com", &error_message)); | 552 "foo@gmail.com", &error_message)); |
542 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 553 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
543 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 554 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
544 "user@gmail.com", &error_message)); | 555 "user@gmail.com", &error_message)); |
545 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 556 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
546 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 557 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
547 "john@gmail.com", &error_message)); | 558 "john@gmail.com", &error_message)); |
548 } | 559 } |
549 | 560 |
550 TEST_F(OneClickSigninHelperTest, CanOfferIncognito) { | 561 TEST_F(OneClickSigninHelperIncognitoTest, CanOfferIncognito) { |
551 CreateSigninManager(true, std::string()); | 562 CreateSigninManager(std::string()); |
552 | 563 |
553 std::string error_message; | 564 std::string error_message; |
554 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 565 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
555 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 566 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
556 "user@gmail.com", &error_message)); | 567 "user@gmail.com", &error_message)); |
557 EXPECT_EQ("", error_message); | 568 EXPECT_EQ("", error_message); |
558 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 569 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
559 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 570 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
560 "user@gmail.com", &error_message)); | 571 "user@gmail.com", &error_message)); |
561 EXPECT_EQ("", error_message); | 572 EXPECT_EQ("", error_message); |
562 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 573 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
563 web_contents(), | 574 web_contents(), |
564 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 575 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
565 std::string(), | 576 std::string(), |
566 &error_message)); | 577 &error_message)); |
567 EXPECT_EQ("", error_message); | 578 EXPECT_EQ("", error_message); |
568 } | 579 } |
569 | 580 |
570 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { | 581 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { |
571 CreateSigninManager(false, std::string()); | 582 CreateSigninManager(std::string()); |
572 AllowSigninCookies(false); | 583 AllowSigninCookies(false); |
573 | 584 |
574 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 585 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
575 WillRepeatedly(Return(true)); | 586 WillRepeatedly(Return(true)); |
576 | 587 |
577 std::string error_message; | 588 std::string error_message; |
578 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 589 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
579 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 590 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
580 "user@gmail.com", &error_message)); | 591 "user@gmail.com", &error_message)); |
581 EXPECT_EQ("", error_message); | 592 EXPECT_EQ("", error_message); |
582 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 593 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
583 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 594 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
584 "user@gmail.com", &error_message)); | 595 "user@gmail.com", &error_message)); |
585 EXPECT_EQ("", error_message); | 596 EXPECT_EQ("", error_message); |
586 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 597 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
587 web_contents(), | 598 web_contents(), |
588 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 599 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
589 std::string(), | 600 std::string(), |
590 &error_message)); | 601 &error_message)); |
591 EXPECT_EQ("", error_message); | 602 EXPECT_EQ("", error_message); |
592 } | 603 } |
593 | 604 |
594 TEST_F(OneClickSigninHelperTest, CanOfferDisabledByPolicy) { | 605 TEST_F(OneClickSigninHelperTest, CanOfferDisabledByPolicy) { |
595 CreateSigninManager(false, std::string()); | 606 CreateSigninManager(std::string()); |
596 | 607 |
597 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 608 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
598 WillRepeatedly(Return(true)); | 609 WillRepeatedly(Return(true)); |
599 | 610 |
600 EnableOneClick(true); | 611 EnableOneClick(true); |
601 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 612 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
602 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 613 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
603 "user@gmail.com", NULL)); | 614 "user@gmail.com", NULL)); |
604 | 615 |
605 // Simulate a policy disabling signin by writing kSigninAllowed directly. | 616 // Simulate a policy disabling signin by writing kSigninAllowed directly. |
(...skipping 13 matching lines...) Expand all Loading... |
619 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); | 630 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
620 | 631 |
621 // Should still offer even if sync is disabled by policy. | 632 // Should still offer even if sync is disabled by policy. |
622 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 633 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
623 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 634 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
624 "user@gmail.com", NULL)); | 635 "user@gmail.com", NULL)); |
625 } | 636 } |
626 | 637 |
627 // Should not crash if a helper instance is not associated with an incognito | 638 // Should not crash if a helper instance is not associated with an incognito |
628 // web contents. | 639 // web contents. |
629 TEST_F(OneClickSigninHelperTest, ShowInfoBarUIThreadIncognito) { | 640 TEST_F(OneClickSigninHelperIncognitoTest, ShowInfoBarUIThreadIncognito) { |
630 CreateSigninManager(true, std::string()); | 641 CreateSigninManager(std::string()); |
631 OneClickSigninHelper* helper = | 642 OneClickSigninHelper* helper = |
632 OneClickSigninHelper::FromWebContents(web_contents()); | 643 OneClickSigninHelper::FromWebContents(web_contents()); |
633 EXPECT_EQ(NULL, helper); | 644 EXPECT_EQ(NULL, helper); |
634 | 645 |
635 OneClickSigninHelper::ShowInfoBarUIThread( | 646 OneClickSigninHelper::ShowInfoBarUIThread( |
636 "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED, | 647 "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED, |
637 signin::SOURCE_UNKNOWN, GURL(), process()->GetID(), | 648 signin::SOURCE_UNKNOWN, GURL(), process()->GetID(), |
638 rvh()->GetRoutingID()); | 649 rvh()->GetRoutingID()); |
639 } | 650 } |
640 | 651 |
641 // If Chrome signin is triggered from a webstore install, and user chooses to | 652 // If Chrome signin is triggered from a webstore install, and user chooses to |
642 // config sync, then Chrome should redirect immediately to sync settings page, | 653 // config sync, then Chrome should redirect immediately to sync settings page, |
643 // and upon successful setup, redirect back to webstore. | 654 // and upon successful setup, redirect back to webstore. |
644 TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) { | 655 TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) { |
645 CreateSigninManager(false, std::string()); | 656 CreateSigninManager(std::string()); |
646 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)) | 657 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)) |
647 .WillRepeatedly(Return(true)); | 658 .WillRepeatedly(Return(true)); |
648 | 659 |
649 CreateProfileSyncServiceMock(); | 660 CreateProfileSyncServiceMock(); |
650 | 661 |
651 content::WebContents* contents = web_contents(); | 662 content::WebContents* contents = web_contents(); |
652 | 663 |
653 OneClickSigninHelper::CreateForWebContentsWithPasswordManager(contents, NULL); | 664 OneClickSigninHelper::CreateForWebContentsWithPasswordManager(contents, NULL); |
654 OneClickSigninHelper* helper = | 665 OneClickSigninHelper* helper = |
655 OneClickSigninHelper::FromWebContents(contents); | 666 OneClickSigninHelper::FromWebContents(contents); |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 prefs::kSigninAllowed, base::Value::CreateBooleanValue(true)); | 853 prefs::kSigninAllowed, base::Value::CreateBooleanValue(true)); |
843 | 854 |
844 // Simulate a policy disabling sync by writing kSyncManaged directly. | 855 // Simulate a policy disabling sync by writing kSyncManaged directly. |
845 // We should still offer to sign in the browser. | 856 // We should still offer to sign in the browser. |
846 profile()->GetTestingPrefService()->SetManagedPref( | 857 profile()->GetTestingPrefService()->SetManagedPref( |
847 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); | 858 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
848 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 859 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
849 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 860 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
850 valid_gaia_url_, std::string(), &request_, io_data.get())); | 861 valid_gaia_url_, std::string(), &request_, io_data.get())); |
851 } | 862 } |
OLD | NEW |