| 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 |