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

Unified Diff: chrome/browser/content_settings/pref_content_settings_provider_unittest.cc

Issue 6410022: Add content_settings::PrefProvider to HostContentSettingsMap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Worked on comments Created 9 years, 11 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/content_settings/pref_content_settings_provider_unittest.cc
diff --git a/chrome/browser/content_settings/pref_content_settings_provider_unittest.cc b/chrome/browser/content_settings/pref_content_settings_provider_unittest.cc
index b27a05bc0d914a030e4afe6c83fa0c49899f85b3..44305df351bdb3df9cb69845d6f8e4946812c991 100644
--- a/chrome/browser/content_settings/pref_content_settings_provider_unittest.cc
+++ b/chrome/browser/content_settings/pref_content_settings_provider_unittest.cc
@@ -4,8 +4,11 @@
#include "chrome/browser/content_settings/pref_content_settings_provider.h"
+#include "base/auto_reset.h"
+#include "base/command_line.h"
#include "chrome/browser/content_settings/host_content_settings_map_unittest.h"
#include "chrome/browser/prefs/pref_service.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/testing_pref_service.h"
@@ -119,4 +122,142 @@ TEST_F(PrefDefaultProviderTest, OffTheRecord) {
otr_provider.ProvideDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES));
}
+// ////////////////////////////////////////////////////////////////////////////
+// PrefProviderTest
+//
+
+bool SettingsEqual(const ContentSettings& settings1,
+ const ContentSettings& settings2) {
+ for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) {
+ if (settings1.settings[i] != settings2.settings[i])
+ return false;
+ }
+ return true;
+}
+
+class PrefProviderTest : public testing::Test {
+ public:
+ PrefProviderTest() : ui_thread_(
+ BrowserThread::UI, &message_loop_) {
+ }
+
+ protected:
+ MessageLoop message_loop_;
+ BrowserThread ui_thread_;
+};
+
+TEST_F(PrefProviderTest, Observer) {
+ TestingProfile profile;
+ Profile* p = &profile;
+ PrefProvider pref_content_settings_provider(p);
+ StubSettingsObserver observer;
+ ContentSettingsPattern pattern("[*.]example.com");
+ pref_content_settings_provider.SetContentSetting(
+ pattern,
+ pattern,
+ CONTENT_SETTINGS_TYPE_IMAGES,
+ "",
+ CONTENT_SETTING_ALLOW);
+ EXPECT_EQ(profile.GetHostContentSettingsMap(), observer.last_notifier);
+ EXPECT_EQ(pattern, observer.last_pattern);
+ EXPECT_FALSE(observer.last_update_all);
+ EXPECT_FALSE(observer.last_update_all_types);
+ EXPECT_EQ(1, observer.counter);
+
+ /*
Bernhard Bauer 2011/02/07 09:46:46 Ugh. Code that's commented out usually should be r
+ pref_content_settings_provider.ClearAllContentSettingsRules(
+ CONTENT_SETTINGS_TYPE_IMAGES);
+ EXPECT_EQ(profile.GetHostContentSettingsMap(), observer.last_notifier);
+ EXPECT_TRUE(observer.last_update_all);
+ EXPECT_FALSE(observer.last_update_all_types);
+ EXPECT_EQ(2, observer.counter);
+*/
+ pref_content_settings_provider.ResetToDefaults();
+ EXPECT_EQ(2, observer.counter);
+
+ pref_content_settings_provider.SetContentSetting(
+ pattern,
+ pattern,
+ CONTENT_SETTINGS_TYPE_IMAGES,
+ "",
+ CONTENT_SETTING_BLOCK);
+ EXPECT_EQ(profile.GetHostContentSettingsMap(), observer.last_notifier);
+ EXPECT_TRUE(observer.last_update_all);
+ EXPECT_FALSE(observer.last_update_all_types);
+ EXPECT_EQ(3, observer.counter);
+}
+
+TEST_F(PrefProviderTest, Patterns) {
+ TestingProfile testing_profile;
+ PrefProvider pref_content_settings_provider(
+ testing_profile.GetOriginalProfile());
+
+ GURL host1("http://example.com/");
+ GURL host2("http://www.example.com/");
+ GURL host3("http://example.org/");
+ ContentSettingsPattern pattern1("[*.]example.com");
+ ContentSettingsPattern pattern2("example.org");
+
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ pref_content_settings_provider.GetContentSetting(
+ host1, host1, CONTENT_SETTINGS_TYPE_IMAGES, ""));
+ pref_content_settings_provider.SetContentSetting(
+ pattern1,
+ pattern1,
+ CONTENT_SETTINGS_TYPE_IMAGES,
+ "",
+ CONTENT_SETTING_BLOCK);
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ pref_content_settings_provider.GetContentSetting(
+ host1, host1, CONTENT_SETTINGS_TYPE_IMAGES, ""));
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ pref_content_settings_provider.GetContentSetting(
+ host2, host2, CONTENT_SETTINGS_TYPE_IMAGES, ""));
+
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ pref_content_settings_provider.GetContentSetting(
+ host3, host3, CONTENT_SETTINGS_TYPE_IMAGES, ""));
+ pref_content_settings_provider.SetContentSetting(
+ pattern2,
+ pattern2,
+ CONTENT_SETTINGS_TYPE_IMAGES,
+ "",
+ CONTENT_SETTING_BLOCK);
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ pref_content_settings_provider.GetContentSetting(
+ host3, host3, CONTENT_SETTINGS_TYPE_IMAGES, ""));
+}
+
+TEST_F(PrefProviderTest, ResourceIdentifier) {
+ // This feature is currently behind a flag.
+ CommandLine* cmd = CommandLine::ForCurrentProcess();
+ AutoReset<CommandLine> auto_reset(cmd, *cmd);
+ cmd->AppendSwitch(switches::kEnableResourceContentSettings);
+
+ TestingProfile testing_profile;
+ PrefProvider pref_content_settings_provider(
+ testing_profile.GetOriginalProfile());
+
+ GURL host("http://example.com/");
+ ContentSettingsPattern pattern("[*.]example.com");
+ std::string resource1("someplugin");
+ std::string resource2("otherplugin");
+
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ pref_content_settings_provider.GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_PLUGINS, resource1));
+ pref_content_settings_provider.SetContentSetting(
+ pattern,
+ pattern,
+ CONTENT_SETTINGS_TYPE_PLUGINS,
+ resource1,
+ CONTENT_SETTING_BLOCK);
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ pref_content_settings_provider.GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_PLUGINS, resource1));
+ EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+ pref_content_settings_provider.GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_PLUGINS, resource2));
+}
+
} // namespace content_settings

Powered by Google App Engine
This is Rietveld 408576698