Chromium Code Reviews| Index: chrome/browser/ui/sync/one_click_signin_helper_unittest.cc |
| diff --git a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc |
| index 0201fa07238e60ccbf0dba6fe703f7eec623132a..2ff37d760582f548a865c6e0c2dd481960f91fea 100644 |
| --- a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc |
| +++ b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc |
| @@ -2,6 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "base/command_line.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/prefs/scoped_user_pref_update.h" |
| #include "base/strings/utf_string_conversions.h" |
| @@ -27,6 +28,7 @@ |
| #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
| #include "chrome/browser/ui/webui/signin/login_ui_service.h" |
| #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
| +#include "chrome/common/chrome_switches.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| #include "chrome/test/base/testing_browser_process.h" |
| @@ -193,6 +195,7 @@ class OneClickTestProfileSyncService : public TestProfileSyncService { |
| class OneClickSigninHelperTest : public ChromeRenderViewHostTestHarness { |
| public: |
| OneClickSigninHelperTest(); |
| + virtual ~OneClickSigninHelperTest(); |
| virtual void SetUp() OVERRIDE; |
| virtual void TearDown() OVERRIDE; |
| @@ -217,6 +220,11 @@ class OneClickSigninHelperTest : public ChromeRenderViewHostTestHarness { |
| FakeProfileOAuth2TokenService* fake_oauth2_token_service_; |
| protected: |
| + enum SetupArgument { ENABLE_WEB_BASED_SIGNIN, DISABLE_WEB_BASED_SIGNIN }; |
| + |
| + // A helper method to SetUp(void). |
| + void SetUp(SetupArgument arg); |
| + |
| GoogleServiceAuthError no_error_; |
| private: |
| @@ -238,7 +246,17 @@ OneClickSigninHelperTest::OneClickSigninHelperTest() |
| trusted_signin_process_id_(-1) { |
| } |
| +OneClickSigninHelperTest::~OneClickSigninHelperTest() {} |
| + |
| void OneClickSigninHelperTest::SetUp() { |
| + SetUp(ENABLE_WEB_BASED_SIGNIN); |
| +} |
| + |
| +void OneClickSigninHelperTest::SetUp(SetupArgument arg) { |
| + if (arg == ENABLE_WEB_BASED_SIGNIN) { |
| + CommandLine::ForCurrentProcess()->AppendSwitch( |
| + switches::kEnableWebBasedSignin); |
| + } |
| signin::ForceWebBasedSigninFlowForTesting(true); |
| content::RenderViewHostTestHarness::SetUp(); |
| SetTrustedSigninProcessID(process()->GetID()); |
| @@ -334,6 +352,7 @@ content::BrowserContext* OneClickSigninHelperTest::CreateBrowserContext() { |
| class OneClickSigninHelperIOTest : public OneClickSigninHelperTest { |
| public: |
| OneClickSigninHelperIOTest(); |
| + virtual ~OneClickSigninHelperIOTest(); |
| virtual void SetUp() OVERRIDE; |
| @@ -354,6 +373,8 @@ OneClickSigninHelperIOTest::OneClickSigninHelperIOTest() |
| valid_gaia_url_("https://accounts.google.com/") { |
| } |
| +OneClickSigninHelperIOTest::~OneClickSigninHelperIOTest() {} |
| + |
| void OneClickSigninHelperIOTest::SetUp() { |
| OneClickSigninHelperTest::SetUp(); |
| ASSERT_TRUE(testing_profile_manager_.SetUp()); |
| @@ -385,6 +406,17 @@ OneClickSigninHelperIncognitoTest::CreateBrowserContext() { |
| return builder.Build().release(); |
| } |
| +class OneClickSigninHelperDisableWebBasedSigninTest |
| + : public OneClickSigninHelperTest { |
| + public: |
| + // No additional data members => no need to declare a virtual destructor. |
| + virtual void SetUp() OVERRIDE; |
| +}; |
| + |
| +void OneClickSigninHelperDisableWebBasedSigninTest::SetUp() { |
| + OneClickSigninHelperTest::SetUp(DISABLE_WEB_BASED_SIGNIN); |
| +} |
|
Roger Tawa OOO till Jul 10th
2014/02/12 15:36:50
Please use testing::TestWithParam and TEST_P macro
vabr (Chromium)
2014/02/12 18:42:15
Modifications to the unit-test dropped.
|
| + |
| TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { |
| std::string error_message; |
| EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| @@ -845,3 +877,39 @@ TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThreadDisabledByPolicy) { |
| OneClickSigninHelper::CanOfferOnIOThreadImpl( |
| valid_gaia_url_, &request_, io_data.get())); |
| } |
| + |
| +TEST_F(OneClickSigninHelperDisableWebBasedSigninTest, CanOffer) { |
| + CreateSigninManager(std::string()); |
| + |
| + EXPECT_CALL(*signin_manager_, IsAllowedUsername(_)). |
| + WillRepeatedly(Return(true)); |
|
Roger Tawa OOO till Jul 10th
2014/02/12 15:36:50
Indent 2 less.
vabr (Chromium)
2014/02/12 18:42:15
Modifications to the unit-test dropped.
|
| + |
| + // Whithout the "enable-web-based-signin" flag, CanOffer should always return |
| + // false, independently of the OneClick setting. |
| + for (int i = 0; i < 2; ++i) { |
| + bool enable_one_click = !i; |
| + EnableOneClick(enable_one_click); |
| + SCOPED_TRACE(testing::Message() |
| + << "enable_one_click = " << enable_one_click); |
| + std::string error_message; |
| + |
| + EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| + web_contents(), |
| + OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| + "user@gmail.com", |
| + &error_message)); |
| + EXPECT_EQ("", error_message); |
| + EXPECT_FALSE( |
| + OneClickSigninHelper::CanOffer(web_contents(), |
| + OneClickSigninHelper::CAN_OFFER_FOR_ALL, |
| + "user@gmail.com", |
| + &error_message)); |
| + EXPECT_EQ("", error_message); |
| + EXPECT_FALSE(OneClickSigninHelper::CanOffer( |
| + web_contents(), |
| + OneClickSigninHelper::CAN_OFFER_FOR_INTERSTITAL_ONLY, |
| + std::string(), |
| + &error_message)); |
| + EXPECT_EQ("", error_message); |
| + } |
| +} |