Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1096)

Unified Diff: chrome/browser/sync/glue/extension_util_unittest.cc

Issue 3040014: Merge 53102 - Disallow syncing of extensions with third-party update URLs or ... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/472/src/
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/glue/extension_util.cc ('k') | chrome/common/extensions/extension_constants.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/glue/extension_util_unittest.cc
===================================================================
--- chrome/browser/sync/glue/extension_util_unittest.cc (revision 53364)
+++ chrome/browser/sync/glue/extension_util_unittest.cc (working copy)
@@ -5,6 +5,7 @@
#include "chrome/browser/sync/glue/extension_util.h"
#include "base/file_path.h"
+#include "base/values.h"
#include "base/version.h"
#include "chrome/browser/sync/protocol/extension_specifics.pb.h"
#include "chrome/common/extensions/extension.h"
@@ -26,9 +27,10 @@
const char kVersion1[] = "1.0.0.1";
const char kVersion2[] = "1.0.1.0";
const char kVersion3[] = "1.1.0.0";
-const char kValidUpdateUrl[] = "http://www.google.com/";
-const char kValidUpdateUrl1[] = "http://www.1.com/";
-const char kValidUpdateUrl2[] = "http://www.2.com/";
+const char kValidUpdateUrl1[] =
+ "http://clients2.google.com/service/update2/crx";
+const char kValidUpdateUrl2[] =
+ "https://clients2.google.com/service/update2/crx";
const char kName[] = "MyExtension";
const char kName2[] = "MyExtension2";
@@ -36,9 +38,11 @@
};
void MakePossiblySyncableExtension(bool is_theme,
+ const GURL& update_url,
const GURL& launch_url,
bool converted_from_user_script,
Extension::Location location,
+ int num_plugins,
Extension* extension) {
DictionaryValue source;
source.SetString(extension_manifest_keys::kName,
@@ -47,6 +51,10 @@
if (is_theme) {
source.Set(extension_manifest_keys::kTheme, new DictionaryValue());
}
+ if (!update_url.is_empty()) {
+ source.SetString(extension_manifest_keys::kUpdateURL,
+ update_url.spec());
+ }
if (!launch_url.is_empty()) {
source.SetString(extension_manifest_keys::kLaunchWebURL,
launch_url.spec());
@@ -54,6 +62,13 @@
if (!is_theme) {
source.SetBoolean(extension_manifest_keys::kConvertedFromUserScript,
converted_from_user_script);
+ ListValue* plugins = new ListValue();
+ for (int i = 0; i < num_plugins; ++i) {
+ DictionaryValue* plugin = new DictionaryValue();
+ plugin->SetString(extension_manifest_keys::kPluginsPath, "");
+ plugins->Set(i, plugin);
+ }
+ source.Set(extension_manifest_keys::kPlugins, plugins);
}
std::string error;
EXPECT_TRUE(extension->InitFromValue(source, false, &error));
@@ -65,22 +80,29 @@
{
FilePath file_path(kExtensionFilePath);
Extension extension(file_path);
- MakePossiblySyncableExtension(false, GURL(), false,
- Extension::INTERNAL, &extension);
+ MakePossiblySyncableExtension(false, GURL(), GURL(), false,
+ Extension::INTERNAL, 0, &extension);
EXPECT_TRUE(IsExtensionSyncable(extension));
}
{
FilePath file_path(kExtensionFilePath);
Extension extension(file_path);
- MakePossiblySyncableExtension(false, GURL(), true,
- Extension::INTERNAL, &extension);
+ MakePossiblySyncableExtension(false, GURL(kValidUpdateUrl1), GURL(),
+ true, Extension::INTERNAL, 0, &extension);
EXPECT_TRUE(IsExtensionSyncable(extension));
}
{
FilePath file_path(kExtensionFilePath);
Extension extension(file_path);
- MakePossiblySyncableExtension(true, GURL(), false,
- Extension::INTERNAL, &extension);
+ MakePossiblySyncableExtension(false, GURL(), GURL(), true,
+ Extension::INTERNAL, 0, &extension);
+ EXPECT_TRUE(IsExtensionSyncable(extension));
+ }
+ {
+ FilePath file_path(kExtensionFilePath);
+ Extension extension(file_path);
+ MakePossiblySyncableExtension(true, GURL(), GURL(), false,
+ Extension::INTERNAL, 0, &extension);
EXPECT_FALSE(IsExtensionSyncable(extension));
}
// TODO(akalin): Test with a non-empty launch_url once apps are
@@ -88,10 +110,32 @@
{
FilePath file_path(kExtensionFilePath);
Extension extension(file_path);
- MakePossiblySyncableExtension(false, GURL(), false,
- Extension::EXTERNAL_PREF, &extension);
+ MakePossiblySyncableExtension(false, GURL(), GURL(), false,
+ Extension::EXTERNAL_PREF, 0, &extension);
EXPECT_FALSE(IsExtensionSyncable(extension));
}
+ {
+ FilePath file_path(kExtensionFilePath);
+ Extension extension(file_path);
+ MakePossiblySyncableExtension(
+ false, GURL("http://third-party.update_url.com"), GURL(), true,
+ Extension::INTERNAL, 0, &extension);
+ EXPECT_FALSE(IsExtensionSyncable(extension));
+ }
+ {
+ FilePath file_path(kExtensionFilePath);
+ Extension extension(file_path);
+ MakePossiblySyncableExtension(false, GURL(), GURL(), true,
+ Extension::INTERNAL, 1, &extension);
+ EXPECT_FALSE(IsExtensionSyncable(extension));
+ }
+ {
+ FilePath file_path(kExtensionFilePath);
+ Extension extension(file_path);
+ MakePossiblySyncableExtension(false, GURL(), GURL(), true,
+ Extension::INTERNAL, 2, &extension);
+ EXPECT_FALSE(IsExtensionSyncable(extension));
+ }
}
TEST_F(ExtensionUtilTest, IsExtensionSpecificsUnset) {
@@ -145,7 +189,7 @@
specifics.set_version(kValidVersion);
EXPECT_TRUE(IsExtensionSpecificsValid(specifics));
EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
- specifics.set_update_url(kValidUpdateUrl);
+ specifics.set_update_url(kValidUpdateUrl1);
EXPECT_TRUE(IsExtensionSpecificsValid(specifics));
EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
@@ -335,13 +379,13 @@
TEST_F(ExtensionUtilTest, GetExtensionSpecificsHelper) {
FilePath file_path(kExtensionFilePath);
Extension extension(file_path);
- MakeSyncableExtension(kValidVersion, kValidUpdateUrl, kName,
+ MakeSyncableExtension(kValidVersion, kValidUpdateUrl1, kName,
&extension);
sync_pb::ExtensionSpecifics specifics;
GetExtensionSpecificsHelper(extension, true, false, &specifics);
EXPECT_EQ(extension.id(), specifics.id());
EXPECT_EQ(extension.VersionString(), kValidVersion);
- EXPECT_EQ(extension.update_url().spec(), kValidUpdateUrl);
+ EXPECT_EQ(extension.update_url().spec(), kValidUpdateUrl1);
EXPECT_TRUE(specifics.enabled());
EXPECT_FALSE(specifics.incognito_enabled());
EXPECT_EQ(kName, specifics.name());
@@ -350,11 +394,11 @@
TEST_F(ExtensionUtilTest, IsExtensionOutdated) {
FilePath file_path(kExtensionFilePath);
Extension extension(file_path);
- MakeSyncableExtension(kVersion2, kValidUpdateUrl, kName,
+ MakeSyncableExtension(kVersion2, kValidUpdateUrl1, kName,
&extension);
sync_pb::ExtensionSpecifics specifics;
specifics.set_id(kValidId);
- specifics.set_update_url(kValidUpdateUrl);
+ specifics.set_update_url(kValidUpdateUrl1);
specifics.set_version(kVersion1);
EXPECT_FALSE(IsExtensionOutdated(extension, specifics));
« no previous file with comments | « chrome/browser/sync/glue/extension_util.cc ('k') | chrome/common/extensions/extension_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698