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

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

Issue 13994010: Fix ExtensionSpecialStoragePolicy.IsInstalledApp (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed comments Created 7 years, 8 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
Index: chrome/browser/extensions/extension_special_storage_policy_unittest.cc
diff --git a/chrome/browser/extensions/extension_special_storage_policy_unittest.cc b/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
index e61f8d045b8e9a72e49ba5ef15fbc4019a7f63e4..c94984536cf3ccb05e9d3e19d62e45bd9836a29c 100644
--- a/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
+++ b/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
@@ -129,6 +129,24 @@ class ExtensionSpecialStoragePolicyTest : public extensions::ExtensionTest {
return handler_app;
}
+ scoped_refptr<Extension> CreateRegularApp() {
+#if defined(OS_WIN)
+ base::FilePath path(FILE_PATH_LITERAL("c:\\app"));
+#elif defined(OS_POSIX)
+ base::FilePath path(FILE_PATH_LITERAL("/app"));
+#endif
+ DictionaryValue manifest;
+ manifest.SetString(keys::kName, "App");
+ manifest.SetString(keys::kVersion, "1");
+ manifest.SetString(keys::kPlatformAppBackgroundPage, "background.html");
+ std::string error;
+ scoped_refptr<Extension> app = Extension::Create(
+ path, Manifest::INVALID_LOCATION, manifest,
+ Extension::NO_FLAGS, &error);
+ EXPECT_TRUE(app.get()) << error;
+ return app;
+ }
+
// Verifies that the set of extensions protecting |url| is *exactly* equal to
// |expected_extensions|. Pass in an empty set to verify that an origin is not
// protected.
@@ -150,18 +168,20 @@ class ExtensionSpecialStoragePolicyTest : public extensions::ExtensionTest {
TEST_F(ExtensionSpecialStoragePolicyTest, EmptyPolicy) {
const GURL kHttpUrl("http://foo");
const GURL kExtensionUrl("chrome-extension://bar");
+ scoped_refptr<Extension> app(CreateRegularApp());
EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl));
EXPECT_FALSE(policy_->IsStorageUnlimited(kHttpUrl)); // test cached result
EXPECT_FALSE(policy_->IsStorageUnlimited(kExtensionUrl));
+ EXPECT_FALSE(policy_->IsStorageUnlimited(app->url()));
ExtensionSet empty_set;
ExpectProtectedBy(empty_set, kHttpUrl);
// This one is just based on the scheme.
EXPECT_TRUE(policy_->IsStorageProtected(kExtensionUrl));
+ EXPECT_TRUE(policy_->IsStorageProtected(app->url()));
}
-
TEST_F(ExtensionSpecialStoragePolicyTest, AppWithProtectedStorage) {
scoped_refptr<Extension> extension(CreateProtectedApp());
policy_->GrantRightsForExtension(extension);
@@ -213,6 +233,23 @@ TEST_F(ExtensionSpecialStoragePolicyTest, AppWithUnlimitedStorage) {
EXPECT_FALSE(policy_->IsStorageUnlimited(GURL("https://bar.wildcards/")));
}
+TEST_F(ExtensionSpecialStoragePolicyTest, IsInstalled) {
+ const GURL kHttpUrl("http://foo");
+ const GURL kExtensionUrl("chrome-extension://bar");
+ scoped_refptr<Extension> regular_app(CreateRegularApp());
+ scoped_refptr<Extension> protected_app(CreateProtectedApp());
+ scoped_refptr<Extension> unlimited_app(CreateUnlimitedApp());
+ policy_->GrantRightsForExtension(regular_app);
+ policy_->GrantRightsForExtension(protected_app);
+ policy_->GrantRightsForExtension(unlimited_app);
+
+ EXPECT_FALSE(policy_->IsInstalledApp(kHttpUrl));
+ EXPECT_FALSE(policy_->IsInstalledApp(kExtensionUrl));
+ EXPECT_TRUE(policy_->IsInstalledApp(regular_app->url()));
+ EXPECT_TRUE(policy_->IsInstalledApp(protected_app->url()));
+ EXPECT_TRUE(policy_->IsInstalledApp(unlimited_app->url()));
+}
+
TEST_F(ExtensionSpecialStoragePolicyTest, OverlappingApps) {
scoped_refptr<Extension> protected_app(CreateProtectedApp());
scoped_refptr<Extension> unlimited_app(CreateUnlimitedApp());

Powered by Google App Engine
This is Rietveld 408576698