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

Unified Diff: chrome/browser/extensions/extension_management_unittest.cc

Issue 706623004: Add minimum version to extension management (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ext-update-url
Patch Set: fix compile on win Created 6 years, 1 month 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
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..1127dd9aa85765c263e003aadaf0f6a326b41840 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_required\": \"1.1.0\","
" },"
" \"bcdefghijklmnopabcdefghijklmnopa\": {" // kTargetExtension2
" \"installation_mode\": \"force_installed\","
@@ -162,30 +163,44 @@ 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);
+ std::string minimum_version_required;
+ bool ret = extension_management_->CheckMinimumVersion(
+ extension.get(), &minimum_version_required);
+ EXPECT_EQ(ret, minimum_version_required.empty());
+ EXPECT_EQ(ret, extension_management_->CheckMinimumVersion(extension.get(),
+ nullptr));
+ return ret;
+ }
+
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 +464,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 +517,24 @@ TEST_F(ExtensionManagementServiceTest, BlockedPermissionsConflictHandling) {
GetBlockedAPIPermissions(kTargetExtension3, kExampleUpdateUrl));
}
+// Tests the 'minimum_version_required' settings of extension management.
+TEST_F(ExtensionManagementServiceTest, kMinimumVersionRequired) {
+ 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.SetMinimumVersionRequired(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) {

Powered by Google App Engine
This is Rietveld 408576698