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

Unified Diff: chrome/browser/extensions/api/content_settings/content_settings_store_unittest.cc

Issue 2423003002: Delete fullscreen/mouselock pref data associated with extensions. (Closed)
Patch Set: Fix confusing wording. Created 4 years, 2 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/extensions/api/content_settings/content_settings_store.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/content_settings/content_settings_store_unittest.cc
diff --git a/chrome/browser/extensions/api/content_settings/content_settings_store_unittest.cc b/chrome/browser/extensions/api/content_settings/content_settings_store_unittest.cc
index 9986d4e2436bf2c01f8ee9455ec70dc304c89bce..2d9412e92fa97d4d7b6cd19e4152a193b6d6616b 100644
--- a/chrome/browser/extensions/api/content_settings/content_settings_store_unittest.cc
+++ b/chrome/browser/extensions/api/content_settings/content_settings_store_unittest.cc
@@ -8,6 +8,10 @@
#include <memory>
+#include "base/memory/ptr_util.h"
+#include "base/values.h"
+#include "chrome/browser/extensions/api/content_settings/content_settings_api_constants.h"
+#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_rule.h"
#include "components/content_settings/core/browser/content_settings_utils.h"
#include "components/content_settings/core/test/content_settings_test_utils.h"
@@ -19,6 +23,8 @@ using ::testing::Mock;
namespace extensions {
+namespace keys = content_settings_api_constants;
+
namespace {
void CheckRule(const content_settings::Rule& rule,
@@ -255,4 +261,89 @@ TEST_F(ContentSettingsStoreTest, GetAllSettings) {
ASSERT_EQ(0u, rules.size());
}
+TEST_F(ContentSettingsStoreTest, SetFromList) {
+ // Force creation of ContentSettingsRegistry, so that the string to content
+ // setting type lookup can succeed.
+ content_settings::ContentSettingsRegistry::GetInstance();
+
+ ::testing::StrictMock<MockContentSettingsStoreObserver> observer;
+ store()->AddObserver(&observer);
+
+ GURL url("http://www.youtube.com");
+
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ GetContentSettingFromStore(store(),
+ url,
+ url,
+ CONTENT_SETTINGS_TYPE_COOKIES,
+ std::string(),
+ false));
+
+ // Register first extension
+ std::string ext_id("my_extension");
+ RegisterExtension(ext_id);
+
+ // Set setting via a list
+ ContentSettingsPattern pattern =
+ ContentSettingsPattern::FromURL(GURL("http://www.youtube.com"));
+ EXPECT_CALL(observer, OnContentSettingChanged(ext_id, false));
+
+ // Build a preference list in JSON format.
+ base::ListValue pref_list;
+ // {"primaryPattern": pattern, "secondaryPattern": pattern, "type": "cookies",
+ // "setting": "allow"}
+ auto dict_value = base::MakeUnique<base::DictionaryValue>();
+ dict_value->SetString(keys::kPrimaryPatternKey, pattern.ToString());
+ dict_value->SetString(keys::kSecondaryPatternKey, pattern.ToString());
+ dict_value->SetString(keys::kContentSettingsTypeKey, "cookies");
+ dict_value->SetString(keys::kContentSettingKey, "allow");
+ pref_list.Append(std::move(dict_value));
+ // Test content settings types that have been removed. Should be ignored.
+ // {"primaryPattern": pattern, "secondaryPattern": pattern,
+ // "type": "fullscreen", "setting": "allow"}
+ dict_value = base::MakeUnique<base::DictionaryValue>();
+ dict_value->SetString(keys::kPrimaryPatternKey, pattern.ToString());
+ dict_value->SetString(keys::kSecondaryPatternKey, pattern.ToString());
+ dict_value->SetString(keys::kContentSettingsTypeKey, "fullscreen");
+ dict_value->SetString(keys::kContentSettingKey, "allow");
+ pref_list.Append(std::move(dict_value));
+ // {"primaryPattern": pattern, "secondaryPattern": pattern,
+ // "type": "mouselock", "setting": "allow"}
+ dict_value = base::MakeUnique<base::DictionaryValue>();
+ dict_value->SetString(keys::kPrimaryPatternKey, pattern.ToString());
+ dict_value->SetString(keys::kSecondaryPatternKey, pattern.ToString());
+ dict_value->SetString(keys::kContentSettingsTypeKey, "mouselock");
+ dict_value->SetString(keys::kContentSettingKey, "allow");
+ pref_list.Append(std::move(dict_value));
+
+ store()->SetExtensionContentSettingFromList(ext_id, &pref_list,
+ kExtensionPrefsScopeRegular);
+ Mock::VerifyAndClear(&observer);
+
+ EXPECT_EQ(CONTENT_SETTING_ALLOW,
+ GetContentSettingFromStore(store(),
+ url,
+ url,
+ CONTENT_SETTINGS_TYPE_COOKIES,
+ std::string(),
+ false));
+ // The fullscreen and mouselock settings should have been ignored.
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ GetContentSettingFromStore(store(),
+ url,
+ url,
+ CONTENT_SETTINGS_TYPE_FULLSCREEN,
+ std::string(),
+ false));
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ GetContentSettingFromStore(store(),
+ url,
+ url,
+ CONTENT_SETTINGS_TYPE_MOUSELOCK,
+ std::string(),
+ false));
+
+ store()->RemoveObserver(&observer);
+}
+
} // namespace extensions
« no previous file with comments | « chrome/browser/extensions/api/content_settings/content_settings_store.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698