Chromium Code Reviews| Index: chrome/browser/extensions/extension_management_unittest.cc |
| diff --git a/chrome/browser/extensions/extension_management_unittest.cc b/chrome/browser/extensions/extension_management_unittest.cc |
| index b5a9690dee6cf05efd9b3ad2ae3427723c7378a0..e447f01eb0253b2b62ddb22a9338988dd368d1fc 100644 |
| --- a/chrome/browser/extensions/extension_management_unittest.cc |
| +++ b/chrome/browser/extensions/extension_management_unittest.cc |
| @@ -43,6 +43,7 @@ const char kExampleDictPreference[] = |
| " \"abcdefghijklmnopabcdefghijklmnop\": {" // kTargetExtension |
| " \"installation_mode\": \"allowed\"," |
| " \"blocked_permissions\": [\"fileSystem\", \"bookmarks\"]," |
| + " \"minimum_version\": \"1.1.0\"," |
| " }," |
| " \"bcdefghijklmnopabcdefghijklmnopa\": {" // kTargetExtension2 |
| " \"installation_mode\": \"force_installed\"," |
| @@ -162,30 +163,38 @@ class ExtensionManagementServiceTest : public testing::Test { |
| const std::string& id, |
| const std::string& update_url) { |
| scoped_refptr<const Extension> extension = |
| - CreateExtensionWithIdAndUpdateUrl(Manifest::UNPACKED, id, update_url); |
| + CreateExtension(Manifest::UNPACKED, "0.1", id, update_url); |
| return extension_management_->GetInstallationMode(extension.get()); |
| } |
| APIPermissionSet GetBlockedAPIPermissions(const std::string& id, |
| const std::string& update_url) { |
| scoped_refptr<const Extension> extension = |
| - CreateExtensionWithIdAndUpdateUrl(Manifest::UNPACKED, id, update_url); |
| + CreateExtension(Manifest::UNPACKED, "0.1", id, update_url); |
| return extension_management_->GetBlockedAPIPermissions(extension.get()); |
| } |
| + bool CheckMinimumVersion(const std::string& id, const std::string& version) { |
| + scoped_refptr<const Extension> extension = |
| + CreateExtension(Manifest::UNPACKED, version, id, kNonExistingUpdateUrl); |
| + return extension_management_->CheckMinimumVersion(extension.get(), nullptr); |
|
pastarmovj
2014/11/11 12:50:54
I would check here that the second parameter is se
binjin
2014/11/11 19:10:37
Done.
|
| + } |
| + |
| protected: |
| scoped_ptr<TestingPrefServiceSimple> pref_service_; |
| scoped_ptr<ExtensionManagement> extension_management_; |
| private: |
| - // Create an extension with specified |location|, |id| and |update_url|. |
| - scoped_refptr<const Extension> CreateExtensionWithIdAndUpdateUrl( |
| + // Create an extension with specified |location|, |version|, |id| and |
| + // |update_url|. |
| + scoped_refptr<const Extension> CreateExtension( |
| Manifest::Location location, |
| + const std::string& version, |
| const std::string& id, |
| const std::string& update_url) { |
| base::DictionaryValue manifest_dict; |
| manifest_dict.SetString(manifest_keys::kName, "test"); |
| - manifest_dict.SetString(manifest_keys::kVersion, "0.1"); |
| + manifest_dict.SetString(manifest_keys::kVersion, version); |
| manifest_dict.SetString(manifest_keys::kUpdateURL, update_url); |
| std::string error; |
| scoped_refptr<const Extension> extension = |
| @@ -449,6 +458,11 @@ TEST_F(ExtensionManagementServiceTest, PreferenceParsing) { |
| api_permission_set.insert(APIPermission::kBookmark); |
| EXPECT_EQ(api_permission_set, |
| GetBlockedAPIPermissionsByUpdateUrl(kExampleUpdateUrl)); |
| + |
| + // Verifies minimum version settings. |
| + EXPECT_FALSE(CheckMinimumVersion(kTargetExtension, "1.0.99")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "1.1")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "1.1.0.1")); |
| } |
| // Tests the handling of installation mode in case it's specified in both |
| @@ -497,6 +511,24 @@ TEST_F(ExtensionManagementServiceTest, BlockedPermissionsConflictHandling) { |
| GetBlockedAPIPermissions(kTargetExtension3, kExampleUpdateUrl)); |
| } |
| +// Tests the minimum version settings of extension management. |
| +TEST_F(ExtensionManagementServiceTest, MinimumVersion) { |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "0.0")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "3.0.0")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "9999.0")); |
| + |
| + { |
| + PrefUpdater pref(pref_service_.get()); |
| + pref.SetMinimumVersion(kTargetExtension, "3.0"); |
| + } |
| + |
| + EXPECT_FALSE(CheckMinimumVersion(kTargetExtension, "0.0")); |
| + EXPECT_FALSE(CheckMinimumVersion(kTargetExtension, "2.99")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "3.0.0")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "3.0.1")); |
| + EXPECT_TRUE(CheckMinimumVersion(kTargetExtension, "4.0")); |
| +} |
| + |
| // Tests functionality of new preference as to deprecate legacy |
| // ExtensionInstallSources policy. |
| TEST_F(ExtensionManagementServiceTest, NewInstallSources) { |