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

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

Issue 1004733003: Split the default content settings into syncable and nonsyncable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reset PMI, reacting to unsyncable pref changes as well. Created 5 years, 9 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/content_settings_default_provider_unittest.cc
diff --git a/chrome/browser/content_settings/content_settings_default_provider_unittest.cc b/chrome/browser/content_settings/content_settings_default_provider_unittest.cc
index fbd617792f8e87466385cb4f6f1be89f9c600ecf..c477a00cdfdf936cb52acd0611dc9b48e631cb0f 100644
--- a/chrome/browser/content_settings/content_settings_default_provider_unittest.cc
+++ b/chrome/browser/content_settings/content_settings_default_provider_unittest.cc
@@ -5,6 +5,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/prefs/pref_service.h"
+#include "base/prefs/scoped_user_pref_update.h"
#include "base/prefs/testing_pref_service.h"
#include "chrome/browser/content_settings/content_settings_mock_observer.h"
#include "chrome/common/pref_names.h"
@@ -251,3 +252,53 @@ TEST_F(DefaultProviderTest, OffTheRecord) {
true));
otr_provider.ShutdownOnUIThread();
}
+
+
+// TODO(msramek): The two tests below test syncing between old versions
+// of Chrome using a dictionary pref and new versions using individual integer
+// prefs for default content settings. Remove the tests together with
+// the dictionary setting after two stable releases.
+TEST_F(DefaultProviderTest, SyncFromDictionaryToIndividualPreferences) {
+ PrefService* prefs = profile_.GetPrefs();
+
+ {
+ DictionaryPrefUpdate update(prefs, prefs::kDefaultContentSettings);
+ base::DictionaryValue* default_settings_dictionary = update.Get();
+
+ default_settings_dictionary->SetWithoutPathExpansion(
+ content_settings::GetTypeName(CONTENT_SETTINGS_TYPE_COOKIES),
+ new base::FundamentalValue(CONTENT_SETTING_BLOCK));
+ default_settings_dictionary->SetWithoutPathExpansion(
+ content_settings::GetTypeName(CONTENT_SETTINGS_TYPE_GEOLOCATION),
+ new base::FundamentalValue(CONTENT_SETTING_BLOCK));
+ }
+
+ // Cookies should sync, but geolocation should not.
+ EXPECT_EQ(CONTENT_SETTING_BLOCK, IntToContentSetting(
+ prefs->GetInteger(prefs::kDefaultCookiesSetting)));
+ EXPECT_EQ(CONTENT_SETTING_ASK, IntToContentSetting(
+ prefs->GetInteger(prefs::kDefaultGeolocationSetting)));
+}
+
+TEST_F(DefaultProviderTest, SyncFromIndividualPreferencesToDictionary) {
+ PrefService* prefs = profile_.GetPrefs();
+
+ prefs->SetInteger(prefs::kDefaultJavaScriptSetting, CONTENT_SETTING_BLOCK);
+ prefs->SetInteger(prefs::kDefaultSSLCertDecisionsSetting,
+ CONTENT_SETTING_BLOCK);
+
+ // Javascript should sync, but cert decisions should not.
+ const base::DictionaryValue* default_settings_dictionary =
+ prefs->GetDictionary(prefs::kDefaultContentSettings);
+ int js_setting;
+ bool has_cd_setting;
+
+ default_settings_dictionary->GetIntegerWithoutPathExpansion(
+ content_settings::GetTypeName(CONTENT_SETTINGS_TYPE_JAVASCRIPT),
+ &js_setting);
+ has_cd_setting = default_settings_dictionary->HasKey(
+ content_settings::GetTypeName(CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS));
+
+ EXPECT_EQ(CONTENT_SETTING_BLOCK, IntToContentSetting(js_setting));
+ EXPECT_FALSE(has_cd_setting);
+}

Powered by Google App Engine
This is Rietveld 408576698