| 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 464b94185027582b737292765229d46443c2e899..be723776d040703722dd485c447f2524b5cac41c 100644
|
| --- a/chrome/browser/profile_resetter/profile_resetter_unittest.cc
|
| +++ b/chrome/browser/profile_resetter/profile_resetter_unittest.cc
|
| @@ -228,20 +228,35 @@ scoped_ptr<net::FakeURLFetcher> ConfigParserTest::CreateFakeURLFetcher(
|
| scoped_refptr<Extension> CreateExtension(const std::string& name,
|
| const base::FilePath& path,
|
| Manifest::Location location,
|
| - bool theme) {
|
| + extensions::Manifest::Type type,
|
| + bool installed_by_default) {
|
| DictionaryValue manifest;
|
| manifest.SetString(extension_manifest_keys::kVersion, "1.0.0.0");
|
| manifest.SetString(extension_manifest_keys::kName, name);
|
| - manifest.SetString("app.launch.web_url", "http://www.google.com");
|
| - if (theme)
|
| - manifest.Set(extension_manifest_keys::kTheme, new DictionaryValue);
|
| + switch (type) {
|
| + case extensions::Manifest::TYPE_THEME:
|
| + manifest.Set(extension_manifest_keys::kTheme, new DictionaryValue);
|
| + break;
|
| + case extensions::Manifest::TYPE_HOSTED_APP:
|
| + manifest.SetString(extension_manifest_keys::kLaunchWebURL,
|
| + "http://www.google.com");
|
| + manifest.SetString(extension_manifest_keys::kUpdateURL,
|
| + "http://clients2.google.com/service/update2/crx");
|
| + break;
|
| + case extensions::Manifest::TYPE_EXTENSION:
|
| + // do nothing
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + }
|
| manifest.SetString(extension_manifest_keys::kOmniboxKeyword, name);
|
| std::string error;
|
| scoped_refptr<Extension> extension = Extension::Create(
|
| path,
|
| location,
|
| manifest,
|
| - Extension::NO_FLAGS,
|
| + installed_by_default ? Extension::WAS_INSTALLED_BY_DEFAULT
|
| + : Extension::NO_FLAGS,
|
| &error);
|
| EXPECT_TRUE(extension.get() != NULL) << error;
|
| return extension;
|
| @@ -270,6 +285,7 @@ TEST_F(ProfileResetterTest, ResetDefaultSearchEngine) {
|
| "xxx",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent")),
|
| Manifest::COMPONENT,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| false);
|
| service_->AddExtension(extension.get());
|
|
|
| @@ -434,14 +450,16 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisabling) {
|
| base::ScopedTempDir temp_dir;
|
| ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
|
|
| - scoped_refptr<Extension> theme = CreateExtension("example1", temp_dir.path(),
|
| - Manifest::INVALID_LOCATION,
|
| - true);
|
| + scoped_refptr<Extension> theme =
|
| + CreateExtension("example1",
|
| + temp_dir.path(),
|
| + Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_THEME,
|
| + false);
|
| service_->FinishInstallationForTest(theme.get());
|
| // Let ThemeService finish creating the theme pack.
|
| base::MessageLoop::current()->RunUntilIdle();
|
|
|
| - // ThemeService isn't compiled for Android.
|
| ThemeService* theme_service =
|
| ThemeServiceFactory::GetForProfile(profile());
|
| EXPECT_FALSE(theme_service->UsingDefaultTheme());
|
| @@ -450,6 +468,7 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisabling) {
|
| "example2",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent")),
|
| Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| false);
|
| service_->AddExtension(ext2.get());
|
| // Components and external policy extensions shouldn't be deleted.
|
| @@ -457,19 +476,22 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisabling) {
|
| "example3",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent2")),
|
| Manifest::COMPONENT,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| false);
|
| service_->AddExtension(ext3.get());
|
| scoped_refptr<Extension> ext4 =
|
| CreateExtension("example4",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent3")),
|
| Manifest::EXTERNAL_POLICY_DOWNLOAD,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| false);
|
| service_->AddExtension(ext4.get());
|
| EXPECT_EQ(4u, service_->extensions()->size());
|
|
|
| ResetAndWait(ProfileResetter::EXTENSIONS);
|
| -
|
| EXPECT_EQ(2u, service_->extensions()->size());
|
| + EXPECT_FALSE(service_->extensions()->Contains(theme->id()));
|
| + EXPECT_FALSE(service_->extensions()->Contains(ext2->id()));
|
| EXPECT_TRUE(service_->extensions()->Contains(ext3->id()));
|
| EXPECT_TRUE(service_->extensions()->Contains(ext4->id()));
|
| EXPECT_TRUE(theme_service->UsingDefaultTheme());
|
| @@ -480,6 +502,7 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisablingNonOrganic) {
|
| "example2",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent")),
|
| Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| false);
|
| service_->AddExtension(ext2.get());
|
| // Components and external policy extensions shouldn't be deleted.
|
| @@ -487,6 +510,7 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisablingNonOrganic) {
|
| "example3",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent2")),
|
| Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| false);
|
| service_->AddExtension(ext3.get());
|
| EXPECT_EQ(2u, service_->extensions()->size());
|
| @@ -500,6 +524,52 @@ TEST_F(ProfileResetterTest, ResetExtensionsByDisablingNonOrganic) {
|
| EXPECT_TRUE(service_->extensions()->Contains(ext3->id()));
|
| }
|
|
|
| +TEST_F(ProfileResetterTest, ResetExtensionsAndDefaultApps) {
|
| + service_->Init();
|
| +
|
| + base::ScopedTempDir temp_dir;
|
| + ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| +
|
| + scoped_refptr<Extension> ext1 =
|
| + CreateExtension("example1",
|
| + temp_dir.path(),
|
| + Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_THEME,
|
| + false);
|
| + service_->FinishInstallationForTest(ext1.get());
|
| + // Let ThemeService finish creating the theme pack.
|
| + base::MessageLoop::current()->RunUntilIdle();
|
| +
|
| + ThemeService* theme_service =
|
| + ThemeServiceFactory::GetForProfile(profile());
|
| + EXPECT_FALSE(theme_service->UsingDefaultTheme());
|
| +
|
| + scoped_refptr<Extension> ext2 =
|
| + CreateExtension("example2",
|
| + base::FilePath(FILE_PATH_LITERAL("//nonexistent2")),
|
| + Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_EXTENSION,
|
| + false);
|
| + service_->AddExtension(ext2.get());
|
| +
|
| + scoped_refptr<Extension> ext3 =
|
| + CreateExtension("example2",
|
| + base::FilePath(FILE_PATH_LITERAL("//nonexistent3")),
|
| + Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_HOSTED_APP,
|
| + true);
|
| + service_->AddExtension(ext3.get());
|
| + EXPECT_EQ(3u, service_->extensions()->size());
|
| +
|
| + ResetAndWait(ProfileResetter::EXTENSIONS);
|
| +
|
| + EXPECT_EQ(1u, service_->extensions()->size());
|
| + EXPECT_FALSE(service_->extensions()->Contains(ext1->id()));
|
| + EXPECT_FALSE(service_->extensions()->Contains(ext2->id()));
|
| + EXPECT_TRUE(service_->extensions()->Contains(ext3->id()));
|
| + EXPECT_TRUE(theme_service->UsingDefaultTheme());
|
| +}
|
| +
|
| TEST_F(ProfileResetterTest, ResetStartPage) {
|
| PrefService* prefs = profile()->GetPrefs();
|
| DCHECK(prefs);
|
| @@ -536,6 +606,7 @@ TEST_F(PinnedTabsResetTest, ResetPinnedTabs) {
|
| "hello!",
|
| base::FilePath(FILE_PATH_LITERAL("//nonexistent")),
|
| Manifest::INVALID_LOCATION,
|
| + extensions::Manifest::TYPE_HOSTED_APP,
|
| false);
|
| scoped_ptr<content::WebContents> contents1(CreateWebContents());
|
| extensions::TabHelper::CreateForWebContents(contents1.get());
|
|
|