| Index: chrome/common/extensions/extension_unittest.cc
|
| diff --git a/chrome/common/extensions/extension_unittest.cc b/chrome/common/extensions/extension_unittest.cc
|
| index 74788d3126cfa3683690b9f5da61a8a6b67f08ac..e6a891bc0561ba44a06c729b3a3bc62b1d7c6225 100644
|
| --- a/chrome/common/extensions/extension_unittest.cc
|
| +++ b/chrome/common/extensions/extension_unittest.cc
|
| @@ -20,6 +20,7 @@
|
| #include "chrome/common/extensions/extension_manifest_constants.h"
|
| #include "chrome/common/extensions/extension_resource.h"
|
| #include "chrome/common/extensions/features/feature.h"
|
| +#include "chrome/common/extensions/manifest.h"
|
| #include "chrome/common/extensions/manifest_handler.h"
|
| #include "chrome/common/extensions/permissions/api_permission.h"
|
| #include "chrome/common/extensions/permissions/permission_set.h"
|
| @@ -47,7 +48,7 @@ namespace {
|
| scoped_refptr<Extension> LoadManifestUnchecked(
|
| const std::string& dir,
|
| const std::string& test_file,
|
| - Extension::Location location,
|
| + Manifest::Location location,
|
| int extra_flags,
|
| std::string* error) {
|
| FilePath path;
|
| @@ -69,7 +70,7 @@ scoped_refptr<Extension> LoadManifestUnchecked(
|
|
|
| static scoped_refptr<Extension> LoadManifest(const std::string& dir,
|
| const std::string& test_file,
|
| - Extension::Location location,
|
| + Manifest::Location location,
|
| int extra_flags) {
|
| std::string error;
|
| scoped_refptr<Extension> extension = LoadManifestUnchecked(dir, test_file,
|
| @@ -82,7 +83,7 @@ static scoped_refptr<Extension> LoadManifest(const std::string& dir,
|
| static scoped_refptr<Extension> LoadManifest(const std::string& dir,
|
| const std::string& test_file,
|
| int extra_flags) {
|
| - return LoadManifest(dir, test_file, Extension::INVALID, extra_flags);
|
| + return LoadManifest(dir, test_file, Manifest::INVALID_LOCATION, extra_flags);
|
| }
|
|
|
| static scoped_refptr<Extension> LoadManifest(const std::string& dir,
|
| @@ -114,7 +115,7 @@ static void LoadActionAndExpectError(const std::string& manifest,
|
| const std::string& expected_error) {
|
| std::string error;
|
| scoped_refptr<Extension> extension = LoadManifestUnchecked("page_action",
|
| - manifest, Extension::INTERNAL, Extension::NO_FLAGS, &error);
|
| + manifest, Manifest::INTERNAL, Extension::NO_FLAGS, &error);
|
| EXPECT_FALSE(extension);
|
| EXPECT_EQ(expected_error, error);
|
| }
|
| @@ -132,51 +133,51 @@ class ExtensionTest : public testing::Test {
|
| // We persist location values in the preferences, so this is a sanity test that
|
| // someone doesn't accidentally change them.
|
| TEST_F(ExtensionTest, LocationValuesTest) {
|
| - ASSERT_EQ(0, Extension::INVALID);
|
| - ASSERT_EQ(1, Extension::INTERNAL);
|
| - ASSERT_EQ(2, Extension::EXTERNAL_PREF);
|
| - ASSERT_EQ(3, Extension::EXTERNAL_REGISTRY);
|
| - ASSERT_EQ(4, Extension::LOAD);
|
| - ASSERT_EQ(5, Extension::COMPONENT);
|
| - ASSERT_EQ(6, Extension::EXTERNAL_PREF_DOWNLOAD);
|
| - ASSERT_EQ(7, Extension::EXTERNAL_POLICY_DOWNLOAD);
|
| + ASSERT_EQ(0, Manifest::INVALID_LOCATION);
|
| + ASSERT_EQ(1, Manifest::INTERNAL);
|
| + ASSERT_EQ(2, Manifest::EXTERNAL_PREF);
|
| + ASSERT_EQ(3, Manifest::EXTERNAL_REGISTRY);
|
| + ASSERT_EQ(4, Manifest::LOAD);
|
| + ASSERT_EQ(5, Manifest::COMPONENT);
|
| + ASSERT_EQ(6, Manifest::EXTERNAL_PREF_DOWNLOAD);
|
| + ASSERT_EQ(7, Manifest::EXTERNAL_POLICY_DOWNLOAD);
|
| }
|
|
|
| TEST_F(ExtensionTest, LocationPriorityTest) {
|
| - for (int i = 0; i < Extension::NUM_LOCATIONS; i++) {
|
| - Extension::Location loc = static_cast<Extension::Location>(i);
|
| + for (int i = 0; i < Manifest::NUM_LOCATIONS; i++) {
|
| + Manifest::Location loc = static_cast<Manifest::Location>(i);
|
|
|
| // INVALID is not a valid location.
|
| - if (loc == Extension::INVALID)
|
| + if (loc == Manifest::INVALID_LOCATION)
|
| continue;
|
|
|
| // Comparing a location that has no rank will hit a CHECK. Do a
|
| // compare with every valid location, to be sure each one is covered.
|
|
|
| // Check that no install source can override a componenet extension.
|
| - ASSERT_EQ(Extension::COMPONENT,
|
| - Extension::GetHigherPriorityLocation(Extension::COMPONENT, loc));
|
| - ASSERT_EQ(Extension::COMPONENT,
|
| - Extension::GetHigherPriorityLocation(loc, Extension::COMPONENT));
|
| + ASSERT_EQ(Manifest::COMPONENT,
|
| + Manifest::GetHigherPriorityLocation(Manifest::COMPONENT, loc));
|
| + ASSERT_EQ(Manifest::COMPONENT,
|
| + Manifest::GetHigherPriorityLocation(loc, Manifest::COMPONENT));
|
|
|
| // Check that any source can override a user install. This might change
|
| // in the future, in which case this test should be updated.
|
| ASSERT_EQ(loc,
|
| - Extension::GetHigherPriorityLocation(Extension::INTERNAL, loc));
|
| + Manifest::GetHigherPriorityLocation(Manifest::INTERNAL, loc));
|
| ASSERT_EQ(loc,
|
| - Extension::GetHigherPriorityLocation(loc, Extension::INTERNAL));
|
| + Manifest::GetHigherPriorityLocation(loc, Manifest::INTERNAL));
|
| }
|
|
|
| // Check a few interesting cases that we know can happen:
|
| - ASSERT_EQ(Extension::EXTERNAL_POLICY_DOWNLOAD,
|
| - Extension::GetHigherPriorityLocation(
|
| - Extension::EXTERNAL_POLICY_DOWNLOAD,
|
| - Extension::EXTERNAL_PREF));
|
| -
|
| - ASSERT_EQ(Extension::EXTERNAL_PREF,
|
| - Extension::GetHigherPriorityLocation(
|
| - Extension::INTERNAL,
|
| - Extension::EXTERNAL_PREF));
|
| + ASSERT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD,
|
| + Manifest::GetHigherPriorityLocation(
|
| + Manifest::EXTERNAL_POLICY_DOWNLOAD,
|
| + Manifest::EXTERNAL_PREF));
|
| +
|
| + ASSERT_EQ(Manifest::EXTERNAL_PREF,
|
| + Manifest::GetHigherPriorityLocation(
|
| + Manifest::INTERNAL,
|
| + Manifest::EXTERNAL_PREF));
|
| }
|
|
|
| TEST_F(ExtensionTest, GetResourceURLAndPath) {
|
| @@ -202,7 +203,7 @@ TEST_F(ExtensionTest, GetAbsolutePathNoError) {
|
| "absolute.json");
|
| EXPECT_TRUE(extension.get());
|
| std::string err;
|
| - Extension::InstallWarningVector warnings;
|
| + std::vector<InstallWarning> warnings;
|
| EXPECT_TRUE(extension_file_util::ValidateExtension(extension.get(),
|
| &err, &warnings));
|
| EXPECT_EQ(0U, warnings.size());
|
| @@ -473,7 +474,7 @@ TEST_F(ExtensionTest, SocketPermissions) {
|
|
|
| extension = LoadManifestUnchecked("socket_permissions",
|
| "socket1.json",
|
| - Extension::INTERNAL, Extension::NO_FLAGS,
|
| + Manifest::INTERNAL, Extension::NO_FLAGS,
|
| &error);
|
| EXPECT_TRUE(extension == NULL);
|
| ASSERT_EQ(ErrorUtils::FormatErrorMessage(
|
| @@ -518,7 +519,7 @@ TEST_F(ExtensionTest, ImageCaching) {
|
| values.SetString(keys::kName, "test");
|
| values.SetString(keys::kVersion, "0.1");
|
| scoped_refptr<Extension> extension(Extension::Create(
|
| - path, Extension::INVALID, values, Extension::NO_FLAGS, &errors));
|
| + path, Manifest::INVALID_LOCATION, values, Extension::NO_FLAGS, &errors));
|
| ASSERT_TRUE(extension.get());
|
|
|
| // Create an ExtensionResource pointing at an icon.
|
| @@ -904,7 +905,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
|
| std::string error;
|
| extension = LoadManifestUnchecked("script_and_capture",
|
| "extension_wildcard_chrome.json",
|
| - Extension::INTERNAL, Extension::NO_FLAGS,
|
| + Manifest::INTERNAL, Extension::NO_FLAGS,
|
| &error);
|
| EXPECT_TRUE(extension == NULL);
|
| EXPECT_EQ(ErrorUtils::FormatErrorMessage(
|
| @@ -926,7 +927,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
|
|
|
| // Component extensions with <all_urls> should get everything.
|
| extension = LoadManifest("script_and_capture", "extension_component_all.json",
|
| - Extension::COMPONENT, Extension::NO_FLAGS);
|
| + Manifest::COMPONENT, Extension::NO_FLAGS);
|
| EXPECT_TRUE(Allowed(extension, http_url));
|
| EXPECT_TRUE(Allowed(extension, https_url));
|
| EXPECT_TRUE(Allowed(extension, settings_url));
|
| @@ -936,7 +937,7 @@ TEST_F(ExtensionScriptAndCaptureVisibleTest, Permissions) {
|
|
|
| // Component extensions should only get access to what they ask for.
|
| extension = LoadManifest("script_and_capture",
|
| - "extension_component_google.json", Extension::COMPONENT,
|
| + "extension_component_google.json", Manifest::COMPONENT,
|
| Extension::NO_FLAGS);
|
| EXPECT_TRUE(Allowed(extension, http_url));
|
| EXPECT_TRUE(Blocked(extension, https_url));
|
| @@ -1058,7 +1059,7 @@ static scoped_refptr<Extension> MakeSyncTestExtension(
|
| SyncTestExtensionType type,
|
| const GURL& update_url,
|
| const GURL& launch_url,
|
| - Extension::Location location,
|
| + Manifest::Location location,
|
| int num_plugins,
|
| const FilePath& extension_path,
|
| int creation_flags) {
|
| @@ -1107,7 +1108,7 @@ static const char kValidUpdateUrl2[] =
|
| TEST_F(ExtensionTest, GetSyncTypeNormalExtensionNoUpdateUrl) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_NE(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| }
|
| @@ -1116,7 +1117,7 @@ TEST_F(ExtensionTest, GetSyncTypeNormalExtensionNoUpdateUrl) {
|
| TEST_F(ExtensionTest, DISABLED_GetSyncTypeUserScriptValidUpdateUrl) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(USER_SCRIPT, GURL(kValidUpdateUrl1), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_NE(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| }
|
| @@ -1124,7 +1125,7 @@ TEST_F(ExtensionTest, DISABLED_GetSyncTypeUserScriptValidUpdateUrl) {
|
| TEST_F(ExtensionTest, GetSyncTypeUserScriptNoUpdateUrl) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(USER_SCRIPT, GURL(), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| }
|
| @@ -1132,7 +1133,7 @@ TEST_F(ExtensionTest, GetSyncTypeUserScriptNoUpdateUrl) {
|
| TEST_F(ExtensionTest, GetSyncTypeThemeNoUpdateUrl) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(THEME, GURL(), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| }
|
| @@ -1140,7 +1141,7 @@ TEST_F(ExtensionTest, GetSyncTypeThemeNoUpdateUrl) {
|
| TEST_F(ExtensionTest, GetSyncTypeExtensionWithLaunchUrl) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL("http://www.google.com"),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_NE(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| }
|
| @@ -1148,7 +1149,7 @@ TEST_F(ExtensionTest, GetSyncTypeExtensionWithLaunchUrl) {
|
| TEST_F(ExtensionTest, GetSyncTypeExtensionExternal) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::EXTERNAL_PREF, 0, FilePath(),
|
| + Manifest::EXTERNAL_PREF, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
|
|
| EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| @@ -1158,14 +1159,14 @@ TEST_F(ExtensionTest, GetSyncTypeUserScriptThirdPartyUpdateUrl) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(
|
| USER_SCRIPT, GURL("http://third-party.update_url.com"), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(), Extension::NO_FLAGS));
|
| + Manifest::INTERNAL, 0, FilePath(), Extension::NO_FLAGS));
|
| EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| }
|
|
|
| TEST_F(ExtensionTest, OnlyDisplayAppsInLauncher) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
|
|
| EXPECT_FALSE(extension->ShouldDisplayInAppLauncher());
|
| @@ -1173,7 +1174,7 @@ TEST_F(ExtensionTest, OnlyDisplayAppsInLauncher) {
|
|
|
| scoped_refptr<Extension> app(
|
| MakeSyncTestExtension(APP, GURL(), GURL("http://www.google.com"),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_TRUE(app->ShouldDisplayInAppLauncher());
|
| EXPECT_TRUE(app->ShouldDisplayInNewTabPage());
|
| @@ -1191,7 +1192,7 @@ TEST_F(ExtensionTest, DisplayInXManifestProperties) {
|
|
|
| // Default to true.
|
| app = Extension::Create(
|
| - FilePath(), Extension::COMPONENT, manifest, 0, &error);
|
| + FilePath(), Manifest::COMPONENT, manifest, 0, &error);
|
| EXPECT_EQ(error, std::string());
|
| EXPECT_TRUE(app->ShouldDisplayInAppLauncher());
|
| EXPECT_TRUE(app->ShouldDisplayInNewTabPage());
|
| @@ -1199,7 +1200,7 @@ TEST_F(ExtensionTest, DisplayInXManifestProperties) {
|
| // Value display_in_NTP defaults to display_in_launcher.
|
| manifest.SetBoolean(keys::kDisplayInLauncher, false);
|
| app = Extension::Create(
|
| - FilePath(), Extension::COMPONENT, manifest, 0, &error);
|
| + FilePath(), Manifest::COMPONENT, manifest, 0, &error);
|
| EXPECT_EQ(error, std::string());
|
| EXPECT_FALSE(app->ShouldDisplayInAppLauncher());
|
| EXPECT_FALSE(app->ShouldDisplayInNewTabPage());
|
| @@ -1207,7 +1208,7 @@ TEST_F(ExtensionTest, DisplayInXManifestProperties) {
|
| // Value display_in_NTP = true overriding display_in_launcher = false.
|
| manifest.SetBoolean(keys::kDisplayInNewTabPage, true);
|
| app = Extension::Create(
|
| - FilePath(), Extension::COMPONENT, manifest, 0, &error);
|
| + FilePath(), Manifest::COMPONENT, manifest, 0, &error);
|
| EXPECT_EQ(error, std::string());
|
| EXPECT_FALSE(app->ShouldDisplayInAppLauncher());
|
| EXPECT_TRUE(app->ShouldDisplayInNewTabPage());
|
| @@ -1216,7 +1217,7 @@ TEST_F(ExtensionTest, DisplayInXManifestProperties) {
|
| manifest.Remove(keys::kDisplayInLauncher, NULL);
|
| manifest.SetBoolean(keys::kDisplayInNewTabPage, false);
|
| app = Extension::Create(
|
| - FilePath(), Extension::COMPONENT, manifest, 0, &error);
|
| + FilePath(), Manifest::COMPONENT, manifest, 0, &error);
|
| EXPECT_EQ(error, std::string());
|
| EXPECT_TRUE(app->ShouldDisplayInAppLauncher());
|
| EXPECT_FALSE(app->ShouldDisplayInNewTabPage());
|
| @@ -1224,20 +1225,20 @@ TEST_F(ExtensionTest, DisplayInXManifestProperties) {
|
| // Error checking.
|
| manifest.SetString(keys::kDisplayInNewTabPage, "invalid");
|
| app = Extension::Create(
|
| - FilePath(), Extension::COMPONENT, manifest, 0, &error);
|
| + FilePath(), Manifest::COMPONENT, manifest, 0, &error);
|
| EXPECT_EQ(error, std::string(errors::kInvalidDisplayInNewTabPage));
|
| }
|
|
|
| TEST_F(ExtensionTest, OnlySyncInternal) {
|
| scoped_refptr<Extension> extension_internal(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_TRUE(extension_internal->IsSyncable());
|
|
|
| scoped_refptr<Extension> extension_noninternal(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::COMPONENT, 0, FilePath(),
|
| + Manifest::COMPONENT, 0, FilePath(),
|
| Extension::NO_FLAGS));
|
| EXPECT_FALSE(extension_noninternal->IsSyncable());
|
| }
|
| @@ -1245,7 +1246,7 @@ TEST_F(ExtensionTest, OnlySyncInternal) {
|
| TEST_F(ExtensionTest, DontSyncDefault) {
|
| scoped_refptr<Extension> extension_default(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::INTERNAL, 0, FilePath(),
|
| + Manifest::INTERNAL, 0, FilePath(),
|
| Extension::WAS_INSTALLED_BY_DEFAULT));
|
| EXPECT_FALSE(extension_default->IsSyncable());
|
| }
|
| @@ -1260,7 +1261,7 @@ TEST_F(ExtensionTest, OptionalOnlyPermission) {
|
| std::string error;
|
| extension = LoadManifestUnchecked("optional_only_permission",
|
| "manifest1.json",
|
| - Extension::INTERNAL, Extension::NO_FLAGS,
|
| + Manifest::INTERNAL, Extension::NO_FLAGS,
|
| &error);
|
| EXPECT_TRUE(extension == NULL);
|
| ASSERT_EQ(ErrorUtils::FormatErrorMessage(
|
| @@ -1269,7 +1270,7 @@ TEST_F(ExtensionTest, OptionalOnlyPermission) {
|
| error.clear();
|
| extension = LoadManifestUnchecked("optional_only_permission",
|
| "manifest2.json",
|
| - Extension::INTERNAL, Extension::NO_FLAGS,
|
| + Manifest::INTERNAL, Extension::NO_FLAGS,
|
| &error);
|
| EXPECT_TRUE(extension != NULL);
|
| EXPECT_TRUE(error.empty());
|
| @@ -1281,7 +1282,7 @@ TEST_F(ExtensionTest, OptionalOnlyPermission) {
|
| TEST_F(ExtensionTest, GetSyncTypeExtensionWithPlugin) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::INTERNAL, 1, FilePath(),
|
| + Manifest::INTERNAL, 1, FilePath(),
|
| Extension::NO_FLAGS));
|
| if (extension)
|
| EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
| @@ -1290,7 +1291,7 @@ TEST_F(ExtensionTest, GetSyncTypeExtensionWithPlugin) {
|
| TEST_F(ExtensionTest, GetSyncTypeExtensionWithTwoPlugins) {
|
| scoped_refptr<Extension> extension(
|
| MakeSyncTestExtension(EXTENSION, GURL(), GURL(),
|
| - Extension::INTERNAL, 2, FilePath(),
|
| + Manifest::INTERNAL, 2, FilePath(),
|
| Extension::NO_FLAGS));
|
| if (extension)
|
| EXPECT_EQ(extension->GetSyncType(), Extension::SYNC_TYPE_NONE);
|
|
|