| 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 |
| 382 |
| 371 TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { | 383 TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { |
| 372 std::string error_message; | 384 std::string error_message; |
| 373 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 385 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 374 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 386 NULL, OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 375 "user@gmail.com", &error_message)); | 387 "user@gmail.com", &error_message)); |
| 376 EXPECT_EQ("", error_message); | 388 EXPECT_EQ("", error_message); |
| 377 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 389 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 378 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 390 NULL, OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 379 "user@gmail.com", &error_message)); | 391 "user@gmail.com", &error_message)); |
| 380 EXPECT_EQ("", error_message); | 392 EXPECT_EQ("", error_message); |
| 381 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 393 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 382 NULL, | 394 NULL, |
| 383 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 395 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 384 std::string(), | 396 std::string(), |
| 385 &error_message)); | 397 &error_message)); |
| 386 EXPECT_EQ("", error_message); | 398 EXPECT_EQ("", error_message); |
| 387 } | 399 } |
| 388 | 400 |
| 389 TEST_F(OneClickSigninHelperTest, CanOffer) { | 401 TEST_F(OneClickSigninHelperTest, CanOffer) { |
| 390 CreateSigninManager(false, std::string()); | 402 CreateSigninManager(std::string()); |
| 391 | 403 |
| 392 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 404 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 393 WillRepeatedly(Return(true)); | 405 WillRepeatedly(Return(true)); |
| 394 | 406 |
| 395 EnableOneClick(true); | 407 EnableOneClick(true); |
| 396 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 408 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 397 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 409 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 398 "user@gmail.com", NULL)); | 410 "user@gmail.com", NULL)); |
| 399 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 411 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 400 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 412 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 418 "user@gmail.com", &error_message)); | 430 "user@gmail.com", &error_message)); |
| 419 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 431 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 420 web_contents(), | 432 web_contents(), |
| 421 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 433 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 422 std::string(), | 434 std::string(), |
| 423 &error_message)); | 435 &error_message)); |
| 424 EXPECT_EQ("", error_message); | 436 EXPECT_EQ("", error_message); |
| 425 } | 437 } |
| 426 | 438 |
| 427 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { | 439 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { |
| 428 CreateSigninManager(false, std::string()); | 440 CreateSigninManager(std::string()); |
| 429 | 441 |
| 430 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 442 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 431 WillRepeatedly(Return(true)); | 443 WillRepeatedly(Return(true)); |
| 432 | 444 |
| 433 // Invoke OneClickTestProfileSyncService factory function and grab result. | 445 // Invoke OneClickTestProfileSyncService factory function and grab result. |
| 434 OneClickTestProfileSyncService* sync = | 446 OneClickTestProfileSyncService* sync = |
| 435 static_cast<OneClickTestProfileSyncService*>( | 447 static_cast<OneClickTestProfileSyncService*>( |
| 436 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 448 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
| 437 static_cast<Profile*>(browser_context()), | 449 static_cast<Profile*>(browser_context()), |
| 438 OneClickTestProfileSyncService::Build)); | 450 OneClickTestProfileSyncService::Build)); |
| 439 | 451 |
| 440 sync->set_first_setup_in_progress(true); | 452 sync->set_first_setup_in_progress(true); |
| 441 | 453 |
| 442 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 454 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 443 web_contents(), | 455 web_contents(), |
| 444 OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 456 OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 445 "foo@gmail.com", NULL)); | 457 "foo@gmail.com", NULL)); |
| 446 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 458 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 447 web_contents(), | 459 web_contents(), |
| 448 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 460 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 449 "foo@gmail.com", NULL)); | 461 "foo@gmail.com", NULL)); |
| 450 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 462 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 451 web_contents(), | 463 web_contents(), |
| 452 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 464 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 453 std::string(), | 465 std::string(), |
| 454 NULL)); | 466 NULL)); |
| 455 } | 467 } |
| 456 | 468 |
| 457 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { | 469 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { |
| 458 CreateSigninManager(false, "foo@gmail.com"); | 470 CreateSigninManager("foo@gmail.com"); |
| 459 | 471 |
| 460 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 472 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 461 WillRepeatedly(Return(true)); | 473 WillRepeatedly(Return(true)); |
| 462 | 474 |
| 463 std::string error_message; | 475 std::string error_message; |
| 464 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 476 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 465 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 477 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 466 "foo@gmail.com", &error_message)); | 478 "foo@gmail.com", &error_message)); |
| 467 EXPECT_EQ("", error_message); | 479 EXPECT_EQ("", error_message); |
| 468 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 480 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| (...skipping 19 matching lines...) Expand all Loading... |
| 488 UTF8ToUTF16("foo@gmail.com")), | 500 UTF8ToUTF16("foo@gmail.com")), |
| 489 error_message); | 501 error_message); |
| 490 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 502 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 491 web_contents(), | 503 web_contents(), |
| 492 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 504 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 493 std::string(), | 505 std::string(), |
| 494 &error_message)); | 506 &error_message)); |
| 495 } | 507 } |
| 496 | 508 |
| 497 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { | 509 TEST_F(OneClickSigninHelperTest, CanOfferUsernameNotAllowed) { |
| 498 CreateSigninManager(false, std::string()); | 510 CreateSigninManager(std::string()); |
| 499 | 511 |
| 500 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 512 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 501 WillRepeatedly(Return(false)); | 513 WillRepeatedly(Return(false)); |
| 502 | 514 |
| 503 std::string error_message; | 515 std::string error_message; |
| 504 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 516 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 505 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 517 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 506 "foo@gmail.com", &error_message)); | 518 "foo@gmail.com", &error_message)); |
| 507 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), | 519 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), |
| 508 error_message); | 520 error_message); |
| 509 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 521 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 510 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 522 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 511 "foo@gmail.com", &error_message)); | 523 "foo@gmail.com", &error_message)); |
| 512 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), | 524 EXPECT_EQ(l10n_util::GetStringUTF8(IDS_SYNC_LOGIN_NAME_PROHIBITED), |
| 513 error_message); | 525 error_message); |
| 514 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 526 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 515 web_contents(), | 527 web_contents(), |
| 516 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 528 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 517 std::string(), | 529 std::string(), |
| 518 &error_message)); | 530 &error_message)); |
| 519 } | 531 } |
| 520 | 532 |
| 521 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { | 533 TEST_F(OneClickSigninHelperTest, CanOfferWithRejectedEmail) { |
| 522 CreateSigninManager(false, std::string()); | 534 CreateSigninManager(std::string()); |
| 523 | 535 |
| 524 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 536 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 525 WillRepeatedly(Return(true)); | 537 WillRepeatedly(Return(true)); |
| 526 | 538 |
| 527 AddEmailToOneClickRejectedList("foo@gmail.com"); | 539 AddEmailToOneClickRejectedList("foo@gmail.com"); |
| 528 AddEmailToOneClickRejectedList("user@gmail.com"); | 540 AddEmailToOneClickRejectedList("user@gmail.com"); |
| 529 | 541 |
| 530 std::string error_message; | 542 std::string error_message; |
| 531 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 543 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 532 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 544 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 533 "foo@gmail.com", &error_message)); | 545 "foo@gmail.com", &error_message)); |
| 534 EXPECT_EQ("", error_message); | 546 EXPECT_EQ("", error_message); |
| 535 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 547 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 536 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 548 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 537 "user@gmail.com", &error_message)); | 549 "user@gmail.com", &error_message)); |
| 538 EXPECT_EQ("", error_message); | 550 EXPECT_EQ("", error_message); |
| 539 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 551 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 540 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 552 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 541 "foo@gmail.com", &error_message)); | 553 "foo@gmail.com", &error_message)); |
| 542 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 554 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 543 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 555 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 544 "user@gmail.com", &error_message)); | 556 "user@gmail.com", &error_message)); |
| 545 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 557 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 546 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 558 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 547 "john@gmail.com", &error_message)); | 559 "john@gmail.com", &error_message)); |
| 548 } | 560 } |
| 549 | 561 |
| 550 TEST_F(OneClickSigninHelperTest, CanOfferIncognito) { | 562 TEST_F(OneClickSigninHelperIncognitoTest, CanOfferIncognito) { |
| 551 CreateSigninManager(true, std::string()); | 563 CreateSigninManager(std::string()); |
| 552 | 564 |
| 553 std::string error_message; | 565 std::string error_message; |
| 554 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 566 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 555 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 567 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 556 "user@gmail.com", &error_message)); | 568 "user@gmail.com", &error_message)); |
| 557 EXPECT_EQ("", error_message); | 569 EXPECT_EQ("", error_message); |
| 558 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 570 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 559 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 571 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 560 "user@gmail.com", &error_message)); | 572 "user@gmail.com", &error_message)); |
| 561 EXPECT_EQ("", error_message); | 573 EXPECT_EQ("", error_message); |
| 562 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 574 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 563 web_contents(), | 575 web_contents(), |
| 564 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 576 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 565 std::string(), | 577 std::string(), |
| 566 &error_message)); | 578 &error_message)); |
| 567 EXPECT_EQ("", error_message); | 579 EXPECT_EQ("", error_message); |
| 568 } | 580 } |
| 569 | 581 |
| 570 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { | 582 TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { |
| 571 CreateSigninManager(false, std::string()); | 583 CreateSigninManager(std::string()); |
| 572 AllowSigninCookies(false); | 584 AllowSigninCookies(false); |
| 573 | 585 |
| 574 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 586 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 575 WillRepeatedly(Return(true)); | 587 WillRepeatedly(Return(true)); |
| 576 | 588 |
| 577 std::string error_message; | 589 std::string error_message; |
| 578 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 590 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 579 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 591 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 580 "user@gmail.com", &error_message)); | 592 "user@gmail.com", &error_message)); |
| 581 EXPECT_EQ("", error_message); | 593 EXPECT_EQ("", error_message); |
| 582 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 594 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 583 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 595 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 584 "user@gmail.com", &error_message)); | 596 "user@gmail.com", &error_message)); |
| 585 EXPECT_EQ("", error_message); | 597 EXPECT_EQ("", error_message); |
| 586 EXPECT_FALSE(OneClickSigninHelper::CanOffer( | 598 EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| 587 web_contents(), | 599 web_contents(), |
| 588 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, | 600 OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| 589 std::string(), | 601 std::string(), |
| 590 &error_message)); | 602 &error_message)); |
| 591 EXPECT_EQ("", error_message); | 603 EXPECT_EQ("", error_message); |
| 592 } | 604 } |
| 593 | 605 |
| 594 TEST_F(OneClickSigninHelperTest, CanOfferDisabledByPolicy) { | 606 TEST_F(OneClickSigninHelperTest, CanOfferDisabledByPolicy) { |
| 595 CreateSigninManager(false, std::string()); | 607 CreateSigninManager(std::string()); |
| 596 | 608 |
| 597 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 609 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 598 WillRepeatedly(Return(true)); | 610 WillRepeatedly(Return(true)); |
| 599 | 611 |
| 600 EnableOneClick(true); | 612 EnableOneClick(true); |
| 601 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 613 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 602 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 614 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 603 "user@gmail.com", NULL)); | 615 "user@gmail.com", NULL)); |
| 604 | 616 |
| 605 // Simulate a policy disabling signin by writing kSigninAllowed directly. | 617 // Simulate a policy disabling signin by writing kSigninAllowed directly. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 619 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); | 631 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
| 620 | 632 |
| 621 // Should still offer even if sync is disabled by policy. | 633 // Should still offer even if sync is disabled by policy. |
| 622 EXPECT_TRUE(OneClickSigninHelper::CanOffer( | 634 EXPECT_TRUE(OneClickSigninHelper::CanOffer( |
| 623 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, | 635 web_contents(), OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| 624 "user@gmail.com", NULL)); | 636 "user@gmail.com", NULL)); |
| 625 } | 637 } |
| 626 | 638 |
| 627 // Should not crash if a helper instance is not associated with an incognito | 639 // Should not crash if a helper instance is not associated with an incognito |
| 628 // web contents. | 640 // web contents. |
| 629 TEST_F(OneClickSigninHelperTest, ShowInfoBarUIThreadIncognito) { | 641 TEST_F(OneClickSigninHelperIncognitoTest, ShowInfoBarUIThreadIncognito) { |
| 630 CreateSigninManager(true, std::string()); | 642 CreateSigninManager(std::string()); |
| 631 OneClickSigninHelper* helper = | 643 OneClickSigninHelper* helper = |
| 632 OneClickSigninHelper::FromWebContents(web_contents()); | 644 OneClickSigninHelper::FromWebContents(web_contents()); |
| 633 EXPECT_EQ(NULL, helper); | 645 EXPECT_EQ(NULL, helper); |
| 634 | 646 |
| 635 OneClickSigninHelper::ShowInfoBarUIThread( | 647 OneClickSigninHelper::ShowInfoBarUIThread( |
| 636 "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED, | 648 "session_index", "email", OneClickSigninHelper::AUTO_ACCEPT_ACCEPTED, |
| 637 signin::SOURCE_UNKNOWN, GURL(), process()->GetID(), | 649 signin::SOURCE_UNKNOWN, GURL(), process()->GetID(), |
| 638 rvh()->GetRoutingID()); | 650 rvh()->GetRoutingID()); |
| 639 } | 651 } |
| 640 | 652 |
| 641 // If Chrome signin is triggered from a webstore install, and user chooses to | 653 // 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, | 654 // config sync, then Chrome should redirect immediately to sync settings page, |
| 643 // and upon successful setup, redirect back to webstore. | 655 // and upon successful setup, redirect back to webstore. |
| 644 TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) { | 656 TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) { |
| 645 CreateSigninManager(false, std::string()); | 657 CreateSigninManager(std::string()); |
| 646 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)) | 658 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)) |
| 647 .WillRepeatedly(Return(true)); | 659 .WillRepeatedly(Return(true)); |
| 648 | 660 |
| 649 CreateProfileSyncServiceMock(); | 661 CreateProfileSyncServiceMock(); |
| 650 | 662 |
| 651 content::WebContents* contents = web_contents(); | 663 content::WebContents* contents = web_contents(); |
| 652 | 664 |
| 653 OneClickSigninHelper::CreateForWebContents(contents); | 665 OneClickSigninHelper::CreateForWebContents(contents); |
| 654 OneClickSigninHelper* helper = | 666 OneClickSigninHelper* helper = |
| 655 OneClickSigninHelper::FromWebContents(contents); | 667 OneClickSigninHelper::FromWebContents(contents); |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 842 prefs::kSigninAllowed, base::Value::CreateBooleanValue(true)); | 854 prefs::kSigninAllowed, base::Value::CreateBooleanValue(true)); |
| 843 | 855 |
| 844 // Simulate a policy disabling sync by writing kSyncManaged directly. | 856 // Simulate a policy disabling sync by writing kSyncManaged directly. |
| 845 // We should still offer to sign in the browser. | 857 // We should still offer to sign in the browser. |
| 846 profile()->GetTestingPrefService()->SetManagedPref( | 858 profile()->GetTestingPrefService()->SetManagedPref( |
| 847 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); | 859 prefs::kSyncManaged, base::Value::CreateBooleanValue(true)); |
| 848 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, | 860 EXPECT_EQ(OneClickSigninHelper::CAN_OFFER, |
| 849 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 861 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
| 850 valid_gaia_url_, std::string(), &request_, io_data.get())); | 862 valid_gaia_url_, std::string(), &request_, io_data.get())); |
| 851 } | 863 } |
| OLD | NEW |