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 return CommandLine::ForCurrentProcess()->HasSwitch( |
| 53 switches::kUseWebBasedSigninFlow); |
| 54 } |
| 55 |
51 class SigninManagerMock : public FakeSigninManager { | 56 class SigninManagerMock : public FakeSigninManager { |
52 public: | 57 public: |
53 explicit SigninManagerMock(Profile* profile) | 58 explicit SigninManagerMock(Profile* profile) |
54 : FakeSigninManager(profile) {} | 59 : FakeSigninManager(profile) {} |
55 MOCK_CONST_METHOD1(IsAllowedUsername, bool(const std::string& username)); | 60 MOCK_CONST_METHOD1(IsAllowedUsername, bool(const std::string& username)); |
56 }; | 61 }; |
57 | 62 |
58 class TestProfileIOData : public ProfileIOData { | 63 class TestProfileIOData : public ProfileIOData { |
59 public: | 64 public: |
60 TestProfileIOData(bool is_incognito, PrefService* pref_service, | 65 TestProfileIOData(bool is_incognito, PrefService* pref_service, |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 true)); | 350 true)); |
346 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); | 351 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), "", false)); |
347 } | 352 } |
348 | 353 |
349 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { | 354 TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) { |
350 CreateSigninManager(false, ""); | 355 CreateSigninManager(false, ""); |
351 | 356 |
352 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 357 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
353 WillRepeatedly(Return(true)); | 358 WillRepeatedly(Return(true)); |
354 | 359 |
355 // Invoke OneClickTestProfileSyncService factory function and grab result. | 360 // Invoke OneClickTestProfileSyncService factory function and grab result. |
356 OneClickTestProfileSyncService* sync = | 361 OneClickTestProfileSyncService* sync = |
357 static_cast<OneClickTestProfileSyncService*>( | 362 static_cast<OneClickTestProfileSyncService*>( |
358 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 363 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
359 static_cast<Profile*>(browser_context()), | 364 static_cast<Profile*>(browser_context()), |
360 OneClickTestProfileSyncService::Build)); | 365 OneClickTestProfileSyncService::Build)); |
361 | 366 |
362 sync->set_first_setup_in_progress(true); | 367 sync->set_first_setup_in_progress(true); |
363 | 368 |
364 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), | 369 EXPECT_EQ(UseWebBasedSigninFlow(), |
365 "foo@gmail.com", | 370 OneClickSigninHelper::CanOffer(web_contents(), |
366 true)); | 371 "foo@gmail.com", |
367 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), | 372 true)); |
368 "foo@gmail.com", | 373 EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents(), |
369 false)); | 374 "foo@gmail.com", |
| 375 false)); |
370 } | 376 } |
371 | 377 |
372 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { | 378 TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { |
373 CreateSigninManager(false, "foo@gmail.com"); | 379 CreateSigninManager(false, "foo@gmail.com"); |
374 | 380 |
375 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). | 381 EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
376 WillRepeatedly(Return(true)); | 382 WillRepeatedly(Return(true)); |
377 | 383 |
378 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), | 384 EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents(), |
379 "foo@gmail.com", | 385 "foo@gmail.com", |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 valid_gaia_url_, "", &request_, io_data.get())); | 561 valid_gaia_url_, "", &request_, io_data.get())); |
556 } | 562 } |
557 | 563 |
558 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { | 564 TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadNoSigninCookies) { |
559 AllowSigninCookies(false); | 565 AllowSigninCookies(false); |
560 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); | 566 scoped_ptr<TestProfileIOData> io_data(CreateTestProfileIOData(false)); |
561 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, | 567 EXPECT_EQ(OneClickSigninHelper::DONT_OFFER, |
562 OneClickSigninHelper::CanOfferOnIOThreadImpl( | 568 OneClickSigninHelper::CanOfferOnIOThreadImpl( |
563 valid_gaia_url_, "", &request_, io_data.get())); | 569 valid_gaia_url_, "", &request_, io_data.get())); |
564 } | 570 } |
OLD | NEW |