| Index: chrome/browser/profile_resetter/profile_resetter_unittest.cc
|
| diff --git a/chrome/browser/profile_resetter/profile_resetter_unittest.cc b/chrome/browser/profile_resetter/profile_resetter_unittest.cc
|
| index 64ad49168efa9fcf76149a80c864cda375b3102a..2cb521b9516b12650d1f07d4ce7f70e3b9c95443 100644
|
| --- a/chrome/browser/profile_resetter/profile_resetter_unittest.cc
|
| +++ b/chrome/browser/profile_resetter/profile_resetter_unittest.cc
|
| @@ -5,90 +5,151 @@
|
| #include "chrome/browser/profile_resetter/profile_resetter.h"
|
|
|
| #include "base/bind.h"
|
| -#include "base/callback.h"
|
| -#include "base/message_loop.h"
|
| -#include "content/public/test/test_browser_thread.h"
|
| +#include "base/prefs/pref_service.h"
|
| +#include "chrome/browser/prefs/session_startup_pref.h"
|
| +#include "chrome/browser/search_engines/template_url_service_test_util.h"
|
| +#include "chrome/common/pref_names.h"
|
| +#include "chrome/test/base/testing_profile.h"
|
| +#include "content/public/test/test_utils.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
|
|
| namespace {
|
|
|
| class MockObject {
|
| public:
|
| + void RunLoop() {
|
| + EXPECT_CALL(*this, Callback());
|
| + runner_ = new content::MessageLoopRunner;
|
| + runner_->Run();
|
| + }
|
| +
|
| + void StopLoop() {
|
| + DCHECK(runner_);
|
| + Callback();
|
| + runner_->Quit();
|
| + }
|
| +
|
| + private:
|
| MOCK_METHOD0(Callback, void(void));
|
| +
|
| + scoped_refptr<content::MessageLoopRunner> runner_;
|
| };
|
|
|
| class ProfileResetterTest : public testing::Test {
|
| - public:
|
| - ProfileResetterTest()
|
| - : ui_thread_(content::BrowserThread::UI, &message_loop_),
|
| - resetter_(NULL) {}
|
| -
|
| - ~ProfileResetterTest() {}
|
| -
|
| - private:
|
| - base::MessageLoopForUI message_loop_;
|
| - content::TestBrowserThread ui_thread_;
|
| -
|
| protected:
|
| + ProfileResetterTest();
|
| + ~ProfileResetterTest();
|
| + // testing::Test:
|
| + virtual void SetUp() OVERRIDE;
|
| + virtual void TearDown() OVERRIDE;
|
| +
|
| testing::StrictMock<MockObject> mock_object_;
|
| - ProfileResetter resetter_;
|
| + TemplateURLServiceTestUtil test_util_;
|
| + scoped_ptr<ProfileResetter> resetter_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ProfileResetterTest);
|
| };
|
|
|
| +ProfileResetterTest::ProfileResetterTest() {}
|
| +
|
| +ProfileResetterTest::~ProfileResetterTest() {}
|
| +
|
| +void ProfileResetterTest::SetUp() {
|
| + test_util_.SetUp();
|
| + resetter_.reset(new ProfileResetter(test_util_.profile()));
|
| +}
|
| +
|
| +void ProfileResetterTest::TearDown() {
|
| + test_util_.TearDown();
|
| +}
|
| +
|
| TEST_F(ProfileResetterTest, ResetDefaultSearchEngine) {
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + test_util_.VerifyLoad();
|
| + resetter_->Reset(
|
| ProfileResetter::DEFAULT_SEARCH_ENGINE,
|
| ProfileResetter::DISABLE_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| }
|
|
|
| TEST_F(ProfileResetterTest, ResetHomepage) {
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + PrefService* prefs = test_util_.profile()->GetPrefs();
|
| + DCHECK(prefs);
|
| + prefs->SetBoolean(prefs::kHomePageIsNewTabPage, false);
|
| + prefs->SetString(prefs::kHomePage, "http://google.com");
|
| + prefs->SetBoolean(prefs::kShowHomeButton, true);
|
| +
|
| + resetter_->Reset(
|
| ProfileResetter::HOMEPAGE,
|
| ProfileResetter::DISABLE_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| +
|
| + EXPECT_TRUE(prefs->GetBoolean(prefs::kHomePageIsNewTabPage));
|
| + EXPECT_EQ(std::string(), prefs->GetString(prefs::kHomePage));
|
| + EXPECT_FALSE(prefs->GetBoolean(prefs::kShowHomeButton));
|
| }
|
|
|
| TEST_F(ProfileResetterTest, ResetContentSettings) {
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + resetter_->Reset(
|
| ProfileResetter::CONTENT_SETTINGS,
|
| ProfileResetter::DISABLE_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| }
|
|
|
| TEST_F(ProfileResetterTest, ResetCookiesAndSiteData) {
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + resetter_->Reset(
|
| ProfileResetter::COOKIES_AND_SITE_DATA,
|
| ProfileResetter::DISABLE_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| }
|
|
|
| TEST_F(ProfileResetterTest, ResetExtensionsByDisabling) {
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + resetter_->Reset(
|
| ProfileResetter::EXTENSIONS,
|
| ProfileResetter::DISABLE_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| }
|
|
|
| TEST_F(ProfileResetterTest, ResetExtensionsByUninstalling) {
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + resetter_->Reset(
|
| ProfileResetter::EXTENSIONS,
|
| ProfileResetter::UNINSTALL_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| +}
|
| +
|
| +TEST_F(ProfileResetterTest, ResetStartPage) {
|
| + PrefService* prefs = test_util_.profile()->GetPrefs();
|
| + DCHECK(prefs);
|
| +
|
| + SessionStartupPref startup_pref(SessionStartupPref::URLS);
|
| + startup_pref.urls.push_back(GURL("http://foo"));
|
| + startup_pref.urls.push_back(GURL("http://bar"));
|
| + SessionStartupPref::SetStartupPref(prefs, startup_pref);
|
| +
|
| + resetter_->Reset(
|
| + ProfileResetter::STARTUP_PAGE,
|
| + ProfileResetter::DISABLE_EXTENSIONS,
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| +
|
| + startup_pref = SessionStartupPref::GetStartupPref(prefs);
|
| + EXPECT_EQ(SessionStartupPref::GetDefaultStartupType(), startup_pref.type);
|
| + EXPECT_EQ(std::vector<GURL>(), startup_pref.urls);
|
| }
|
|
|
| TEST_F(ProfileResetterTest, ResetExtensionsAll) {
|
| // mock_object_ is a StrictMock, so we verify that it is called only once.
|
| - EXPECT_CALL(mock_object_, Callback());
|
| - resetter_.Reset(
|
| + test_util_.VerifyLoad();
|
| + resetter_->Reset(
|
| ProfileResetter::ALL,
|
| ProfileResetter::UNINSTALL_EXTENSIONS,
|
| - base::Bind(&MockObject::Callback, base::Unretained(&mock_object_)));
|
| + base::Bind(&MockObject::StopLoop, base::Unretained(&mock_object_)));
|
| + mock_object_.RunLoop();
|
| }
|
|
|
| } // namespace
|
|
|