Chromium Code Reviews| 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/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
| 7 #include "chrome/browser/content_settings/cookie_settings.h" | 7 #include "chrome/browser/content_settings/cookie_settings.h" |
| 8 #include "chrome/browser/prefs/pref_service.h" | 8 #include "chrome/browser/prefs/pref_service.h" |
| 9 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 9 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 41 | 41 |
| 42 // Explicit URLs are sign in URLs created by chrome for specific sign in access | 42 // Explicit URLs are sign in URLs created by chrome for specific sign in access |
| 43 // points. Implicit URLs are those to sign for some Google service, like gmail | 43 // points. Implicit URLs are those to sign for some Google service, like gmail |
| 44 // or drive. In former case, with a valid URL, we don't want to offer the | 44 // or drive. In former case, with a valid URL, we don't want to offer the |
| 45 // interstitial. In all other cases we do. | 45 // interstitial. In all other cases we do. |
| 46 | 46 |
| 47 const char kImplicitURLString[] = | 47 const char kImplicitURLString[] = |
| 48 "https://accounts.google.com/ServiceLogin" | 48 "https://accounts.google.com/ServiceLogin" |
| 49 "?service=foo&continue=http://foo.google.com"; | 49 "?service=foo&continue=http://foo.google.com"; |
| 50 | 50 |
| 51 bool UseWebBasedSigninFlow() { | |
| 52 const bool use_web_based_singin_flow = | |
| 53 CommandLine::ForCurrentProcess()->HasSwitch( | |
| 54 switches::kUseWebBasedSigninFlow); | |
|
Andrew T Wilson (Slow)
2012/12/03 13:19:02
Why do we have a separate variable? Also, should b
Roger Tawa OOO till Jul 10th
2012/12/03 19:08:28
No need. Too bad we're now loosing the singin'
| |
| 55 return use_web_based_singin_flow; | |
| 56 } | |
| 57 | |
| 51 class SigninManagerMock : public FakeSigninManager { | 58 class SigninManagerMock : public FakeSigninManager { |
| 52 public: | 59 public: |
| 53 explicit SigninManagerMock(Profile* profile) | 60 explicit SigninManagerMock(Profile* profile) |
| 54 : FakeSigninManager(profile) {} | 61 : FakeSigninManager(profile) {} |
| 55 MOCK_CONST_METHOD1(IsAllowedUsername, bool(const std::string& username)); | 62 MOCK_CONST_METHOD1(IsAllowedUsername, bool(const std::string& username)); |
| 56 }; | 63 }; |
| 57 | 64 |
| 58 class TestProfileIOData : public ProfileIOData { | 65 class TestProfileIOData : public ProfileIOData { |
| 59 public: | 66 public: |
| 60 TestProfileIOData(bool is_incognito, PrefService* pref_service, | 67 TestProfileIOData(bool is_incognito, PrefService* pref_service, |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 true)); | 352 true)); |
| 346 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); | 353 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); |
| 347 } | 354 } |
| 348 | 355 |
| 349 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { | 356 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { |
| 350 CreateSigninManager(false, ""); | 357 CreateSigninManager(false, ""); |
| 351 | 358 |
| 352 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 359 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 353 WillRepeatedly(Return(true)); | 360 WillRepeatedly(Return(true)); |
| 354 | 361 |
| 355 // Invoke OneClickTestProfileSyncService factory function and grab result. | 362 // Invoke OneClickTestProfileSyncService factory function and grab result. |
| 356 OneClickTestProfileSyncService* sync = | 363 OneClickTestProfileSyncService* sync = |
| 357 static_cast<OneClickTestProfileSyncService*>( | 364 static_cast<OneClickTestProfileSyncService*>( |
| 358 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 365 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
| 359 static_cast<Profile*>(browser_context()), | 366 static_cast<Profile*>(browser_context()), |
| 360 OneClickTestProfileSyncService::Build)); | 367 OneClickTestProfileSyncService::Build)); |
| 361 | 368 |
| 362 sync->set_first_setup_in_progress(true); | 369 sync->set_first_setup_in_progress(true); |
| 363 | 370 |
| 364 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), | 371 EXPECT_EQ(UseWebBasedSigninFlow(), |
| 365 "foo@gmail.com", | 372 OneClickSigninHelper::CanOffer(web_contents(), |
| 366 true)); | 373 "foo@gmail.com", |
| 367 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), | 374 true)); |
| 368 "foo@gmail.com", | 375 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), |
| 369 false)); | 376 "foo@gmail.com", |
| 377 false)); | |
| 370 } | 378 } |
| 371 | 379 |
| 372 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { | 380 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { |
| 373 CreateSigninManager(false, "foo@gmail.com"); | 381 CreateSigninManager(false, "foo@gmail.com"); |
| 374 | 382 |
| 375 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 383 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| 376 WillRepeatedly(Return(true)); | 384 WillRepeatedly(Return(true)); |
| 377 | 385 |
| 378 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), | 386 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), |
| 379 "foo@gmail.com", | 387 "foo@gmail.com", |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 555 valid_gaia_url_, "", &request_, io_data.get())); | 563 valid_gaia_url_, "", &request_, io_data.get())); |
| 556 } | 564 } |
| 557 | 565 |
| 558 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { | 566 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { |
| 559 AllowSigninCookies(false); | 567 AllowSigninCookies(false); |
| 560 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 568 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
| 561 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 569 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
| 562 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 570 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
| 563 valid_gaia_url_, "", &request_, io_data.get())); | 571 valid_gaia_url_, "", &request_, io_data.get())); |
| 564 } | 572 } |
| OLD | NEW |