Index: chrome/browser/sync/glue/extension_util_unittest.cc |
diff --git a/chrome/browser/sync/glue/extension_util_unittest.cc b/chrome/browser/sync/glue/extension_util_unittest.cc |
index e439f08b0e4747010a47bda9b65f9a616a743ffc..65b15c5e5459b005d331a9cae39102714aeaff1f 100644 |
--- a/chrome/browser/sync/glue/extension_util_unittest.cc |
+++ b/chrome/browser/sync/glue/extension_util_unittest.cc |
@@ -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 kValidVersion[] = "0.0.0.0"; |
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 @@ class ExtensionUtilTest : public testing::Test { |
}; |
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 @@ void MakePossiblySyncableExtension(bool is_theme, |
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 @@ void MakePossiblySyncableExtension(bool is_theme, |
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 @@ TEST_F(ExtensionUtilTest, IsSyncableExtension) { |
{ |
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(kValidUpdateUrl1), GURL(), |
+ true, 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(), 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(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,8 +110,30 @@ TEST_F(ExtensionUtilTest, IsSyncableExtension) { |
{ |
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)); |
} |
} |
@@ -145,7 +189,7 @@ TEST_F(ExtensionUtilTest, IsExtensionSpecificsValid) { |
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 @@ void MakeSyncableExtension(const std::string& version_string, |
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, GetExtensionSpecificsHelper) { |
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)); |