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 15571d8fa28b8d66c1b3f89f942d851195b31f48..99e560987cf2db9df984e1cf71aaa92933128dc5 100644 |
--- a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc |
+++ b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc |
@@ -5,109 +5,86 @@ |
#include "chrome/browser/content_settings/cookie_settings.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/browser/signin/signin_manager_factory.h" |
#include "chrome/browser/signin/signin_manager_fake.h" |
#include "chrome/browser/ui/sync/one_click_signin_helper.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/test/base/testing_profile.h" |
-#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "content/public/browser/browser_context.h" |
-#include "content/public/browser/navigation_controller.h" |
-#include "content/public/browser/site_instance.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/test/test_browser_thread.h" |
-#include "content/public/test/web_contents_tester.h" |
-#include "testing/gmock/include/gmock/gmock-actions.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
+#include "content/public/test/test_renderer_host.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace { |
-class OneClickSigninHelperTest : public ChromeRenderViewHostTestHarness { |
+class OneClickSigninHelperTest : public content::RenderViewHostTestHarness { |
public: |
- OneClickSigninHelperTest() : signin_manager_(NULL) { |
- } |
+ OneClickSigninHelperTest(); |
- virtual void TearDown() OVERRIDE; |
+ virtual void SetUp() OVERRIDE; |
protected: |
- // Marks the current thread as the UI thread, so that calls that assume |
- // they are called on that thread work. |
- void MarkCurrentThreadAsUIThread(); |
- |
// Creates a mock WebContents for tests. If |use_incognito| is true then |
- // a WebContents for an incognito profile is created. |
- content::WebContents* CreateMockWebContents(bool use_incognito); |
+ // a WebContents for an incognito profile is created. If |username| is |
+ // is not empty, the profile of the mock WebContents will be connected to |
+ // the given account. |
+ content::WebContents* CreateMockWebContents(bool use_incognito, |
+ const std::string& username); |
void EnableOneClick(bool enable); |
void AllowSigninCookies(bool enable); |
- // Marks the profile as connected to the given account. If |username| is the |
- // empty string, the profile is not connected. |
- void ConnectProfileToAccount(const std::string& username); |
- |
private: |
// Members to fake that we are on the UI thread. |
- scoped_ptr<content::TestBrowserThread> ui_thread_; |
- |
- // Mock objects used during tests. The objects need to be torn down in the |
- // correct order, see TearDown(). |
- scoped_ptr<content::WebContents> web_contents_; |
- scoped_ptr<TestingProfile> profile_; |
- SigninManager* signin_manager_; |
+ content::TestBrowserThread ui_thread_; |
DISALLOW_COPY_AND_ASSIGN(OneClickSigninHelperTest); |
}; |
-void OneClickSigninHelperTest::TearDown() { |
- // Destroy things in proper order. |
- web_contents_.reset(); |
- profile_.reset(); |
- ui_thread_.reset(); |
- MessageLoop::current()->RunAllPending(); |
- ChromeRenderViewHostTestHarness::TearDown(); |
+OneClickSigninHelperTest::OneClickSigninHelperTest() |
+ : ui_thread_(content::BrowserThread::UI, &message_loop_) { |
} |
-void OneClickSigninHelperTest::MarkCurrentThreadAsUIThread() { |
- ui_thread_.reset(new content::TestBrowserThread( |
- content::BrowserThread::UI, &message_loop_)); |
+void OneClickSigninHelperTest::SetUp() { |
+ // Don't call base class so that default browser context and test WebContents |
+ // are not created now. They will be created in CreateMockWebContents() |
+ // as needed. |
} |
content::WebContents* OneClickSigninHelperTest::CreateMockWebContents( |
- bool use_incognito) { |
- EXPECT_TRUE(web_contents_.get() == NULL); |
+ bool use_incognito, |
+ const std::string& username) { |
+ TestingProfile* testing_profile = new TestingProfile(); |
+ browser_context_.reset(testing_profile); |
- profile_.reset(new TestingProfile()); |
- signin_manager_ = static_cast<SigninManager*>( |
+ testing_profile->set_incognito(use_incognito); |
+ SigninManager* signin_manager = static_cast<SigninManager*>( |
SigninManagerFactory::GetInstance()->SetTestingFactoryAndUse( |
- profile_.get(), FakeSigninManager::Build)); |
+ testing_profile, FakeSigninManager::Build)); |
+ if (!username.empty()) { |
+ signin_manager->StartSignIn(username, std::string(), std::string(), |
+ std::string()); |
+ } |
- profile_->set_incognito(use_incognito); |
- web_contents_.reset(content::WebContentsTester::CreateTestWebContents( |
- profile_.get(), NULL)); |
- return web_contents_.get(); |
+ return CreateTestWebContents(); |
} |
void OneClickSigninHelperTest::EnableOneClick(bool enable) { |
- PrefService* pref_service = profile_->GetPrefs(); |
+ PrefService* pref_service = Profile::FromBrowserContext( |
+ browser_context_.get())->GetPrefs(); |
pref_service->SetBoolean(prefs::kReverseAutologinEnabled, enable); |
} |
void OneClickSigninHelperTest::AllowSigninCookies(bool enable) { |
CookieSettings* cookie_settings = |
- CookieSettings::Factory::GetForProfile(profile_.get()); |
+ CookieSettings::Factory::GetForProfile( |
+ Profile::FromBrowserContext(browser_context_.get())); |
cookie_settings->SetDefaultCookieSetting( |
enable ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK); |
} |
-void OneClickSigninHelperTest::ConnectProfileToAccount( |
- const std::string& username) { |
- signin_manager_->StartSignIn(username, std::string(), std::string(), |
- std::string()); |
-} |
- |
} // namespace |
TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { |
@@ -116,8 +93,7 @@ TEST_F(OneClickSigninHelperTest, CanOfferNoContents) { |
} |
TEST_F(OneClickSigninHelperTest, CanOffer) { |
- MarkCurrentThreadAsUIThread(); |
- content::WebContents* web_contents = CreateMockWebContents(false); |
+ content::WebContents* web_contents = CreateMockWebContents(false, ""); |
EnableOneClick(true); |
EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents, true)); |
@@ -129,25 +105,22 @@ TEST_F(OneClickSigninHelperTest, CanOffer) { |
} |
TEST_F(OneClickSigninHelperTest, CanOfferProfileConnected) { |
- MarkCurrentThreadAsUIThread(); |
- content::WebContents* web_contents = CreateMockWebContents(false); |
- ConnectProfileToAccount("foo@gmail.com"); |
+ content::WebContents* web_contents = CreateMockWebContents(false, |
+ "foo@gmail.com"); |
EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents, true)); |
EXPECT_TRUE(OneClickSigninHelper::CanOffer(web_contents, false)); |
} |
TEST_F(OneClickSigninHelperTest, CanOfferIncognito) { |
- MarkCurrentThreadAsUIThread(); |
- content::WebContents* web_contents = CreateMockWebContents(true); |
+ content::WebContents* web_contents = CreateMockWebContents(true, ""); |
EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents, true)); |
EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents, false)); |
} |
TEST_F(OneClickSigninHelperTest, CanOfferNoSigninCookies) { |
- MarkCurrentThreadAsUIThread(); |
- content::WebContents* web_contents = CreateMockWebContents(true); |
+ content::WebContents* web_contents = CreateMockWebContents(false, ""); |
AllowSigninCookies(false); |
EXPECT_FALSE(OneClickSigninHelper::CanOffer(web_contents, true)); |