Index: chrome/browser/ui/prefs/prefs_tab_helper_unittest.cc |
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper_unittest.cc b/chrome/browser/ui/prefs/prefs_tab_helper_unittest.cc |
index dd1dd3805b3bf5bbf82213bf84d9a1e20136ff6e..46c8e77677f3c409db6b869d12acda52d18d58c5 100644 |
--- a/chrome/browser/ui/prefs/prefs_tab_helper_unittest.cc |
+++ b/chrome/browser/ui/prefs/prefs_tab_helper_unittest.cc |
@@ -49,11 +49,95 @@ class PrefsTabHelperTest : public TabContentsWrapperTestHarness { |
return contents_wrapper2_.get(); |
} |
+ TestPrefsTabHelper* CreateTestPrefsTabHelper() { |
+ TestPrefsTabHelper* test_prefs_helper = |
+ new TestPrefsTabHelper(contents_wrapper()); |
+ contents_wrapper()->prefs_tab_helper_.reset(test_prefs_helper); |
+ return test_prefs_helper; |
+ } |
+ |
void SetContents2(TestTabContents* contents) { |
contents_wrapper2_.reset( |
contents ? new TabContentsWrapper(contents) : NULL); |
} |
+ void TestBooleanPreference(const char* key) { |
+ PrefService* prefs1 = |
+ contents_wrapper()->prefs_tab_helper()->per_tab_prefs(); |
+ PrefService* prefs2 = |
+ contents_wrapper2()->prefs_tab_helper()->per_tab_prefs(); |
+ const bool initial_value = prefs1->GetBoolean(key); |
+ EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); |
+ |
+ prefs1->SetBoolean(key, !initial_value); |
+ EXPECT_EQ(!initial_value, prefs1->GetBoolean(key)); |
+ EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); |
+ |
+ prefs1->SetBoolean(key, initial_value); |
+ EXPECT_EQ(initial_value, prefs1->GetBoolean(key)); |
+ EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); |
+ |
+ prefs2->SetBoolean(key, !initial_value); |
+ EXPECT_EQ(initial_value, prefs1->GetBoolean(key)); |
+ EXPECT_EQ(!initial_value, prefs2->GetBoolean(key)); |
+ |
+ prefs1->SetBoolean(key, !initial_value); |
+ EXPECT_EQ(!initial_value, prefs1->GetBoolean(key)); |
+ EXPECT_EQ(!initial_value, prefs2->GetBoolean(key)); |
+ } |
+ |
+ void TestIntegerPreference(const char* key) { |
+ PrefService* prefs1 = |
+ contents_wrapper()->prefs_tab_helper()->per_tab_prefs(); |
+ PrefService* prefs2 = |
+ contents_wrapper2()->prefs_tab_helper()->per_tab_prefs(); |
+ const int initial_value = prefs1->GetInteger(key); |
+ EXPECT_EQ(initial_value, prefs2->GetInteger(key)); |
+ |
+ const int modified_value = initial_value + 1; |
+ prefs1->SetInteger(key, modified_value); |
+ EXPECT_EQ(modified_value, prefs1->GetInteger(key)); |
+ EXPECT_EQ(initial_value, prefs2->GetInteger(key)); |
+ |
+ prefs1->SetInteger(key, initial_value); |
+ EXPECT_EQ(initial_value, prefs1->GetInteger(key)); |
+ EXPECT_EQ(initial_value, prefs2->GetInteger(key)); |
+ |
+ prefs2->SetInteger(key, modified_value); |
+ EXPECT_EQ(initial_value, prefs1->GetInteger(key)); |
+ EXPECT_EQ(modified_value, prefs2->GetInteger(key)); |
+ |
+ prefs1->SetInteger(key, modified_value); |
+ EXPECT_EQ(modified_value, prefs1->GetInteger(key)); |
+ EXPECT_EQ(modified_value, prefs2->GetInteger(key)); |
+ } |
+ |
+ void TestStringPreference(const char* key) { |
+ PrefService* prefs1 = |
+ contents_wrapper()->prefs_tab_helper()->per_tab_prefs(); |
+ PrefService* prefs2 = |
+ contents_wrapper2()->prefs_tab_helper()->per_tab_prefs(); |
+ const std::string initial_value = prefs1->GetString(key); |
+ EXPECT_EQ(initial_value, prefs2->GetString(key)); |
+ |
+ const std::string modified_value = initial_value + "_"; |
+ prefs1->SetString(key, modified_value); |
+ EXPECT_EQ(modified_value, prefs1->GetString(key)); |
+ EXPECT_EQ(initial_value, prefs2->GetString(key)); |
+ |
+ prefs1->SetString(key, initial_value); |
+ EXPECT_EQ(initial_value, prefs1->GetString(key)); |
+ EXPECT_EQ(initial_value, prefs2->GetString(key)); |
+ |
+ prefs2->SetString(key, modified_value); |
+ EXPECT_EQ(initial_value, prefs1->GetString(key)); |
+ EXPECT_EQ(modified_value, prefs2->GetString(key)); |
+ |
+ prefs1->SetString(key, modified_value); |
+ EXPECT_EQ(modified_value, prefs1->GetString(key)); |
+ EXPECT_EQ(modified_value, prefs2->GetString(key)); |
+ } |
+ |
protected: |
virtual void SetUp() OVERRIDE { |
TabContentsWrapperTestHarness::SetUp(); |
@@ -73,30 +157,77 @@ class PrefsTabHelperTest : public TabContentsWrapperTestHarness { |
}; |
TEST_F(PrefsTabHelperTest, PerTabJavaScriptEnabled) { |
- const char* key = prefs::kWebKitJavascriptEnabled; |
- PrefService* prefs1 = contents_wrapper()->prefs_tab_helper()->per_tab_prefs(); |
- PrefService* prefs2 = |
- contents_wrapper2()->prefs_tab_helper()->per_tab_prefs(); |
- const bool initial_value = prefs1->GetBoolean(key); |
- EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); |
+ TestBooleanPreference(prefs::kWebKitJavascriptEnabled); |
+} |
- prefs1->SetBoolean(key, !initial_value); |
- EXPECT_EQ(!initial_value, prefs1->GetBoolean(key)); |
- EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); |
+TEST_F(PrefsTabHelperTest, PerTabJavascriptCanOpenWindowsAutomatically) { |
+ TestBooleanPreference(prefs::kWebKitJavascriptCanOpenWindowsAutomatically); |
+} |
- prefs1->SetBoolean(key, initial_value); |
- EXPECT_EQ(initial_value, prefs1->GetBoolean(key)); |
- EXPECT_EQ(initial_value, prefs2->GetBoolean(key)); |
+TEST_F(PrefsTabHelperTest, PerTabLoadsImagesAutomatically) { |
+ TestBooleanPreference(prefs::kWebKitLoadsImagesAutomatically); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabPluginsEnabled) { |
+ TestBooleanPreference(prefs::kWebKitPluginsEnabled); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabDefaultFontSize) { |
+ TestIntegerPreference(prefs::kWebKitDefaultFontSize); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabDefaultFixedFontSize) { |
+ TestIntegerPreference(prefs::kWebKitDefaultFixedFontSize); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabMinimumFontSize) { |
+ TestIntegerPreference(prefs::kWebKitMinimumFontSize); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabMinimumLogicalFontSize) { |
+ TestIntegerPreference(prefs::kWebKitMinimumLogicalFontSize); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabDefaultCharset) { |
+ TestStringPreference(prefs::kDefaultCharset); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabDefaultCharsetUpdate) { |
+ TestPrefsTabHelper* test_prefs_helper = CreateTestPrefsTabHelper(); |
+ EXPECT_FALSE(test_prefs_helper->was_update_web_preferences_called()); |
+ const char* pref = prefs::kDefaultCharset; |
+ PrefService* prefs = |
+ contents_wrapper()->prefs_tab_helper()->per_tab_prefs(); |
+ prefs->SetString(pref, prefs->GetString(pref) + "_"); |
+ EXPECT_TRUE(test_prefs_helper->was_update_web_preferences_called()); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabStandardFontFamily) { |
+ TestStringPreference(prefs::kWebKitStandardFontFamily); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabFixedFontFamily) { |
+ TestStringPreference(prefs::kWebKitFixedFontFamily); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabSerifFontFamily) { |
+ TestStringPreference(prefs::kWebKitSerifFontFamily); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabSansSerifFontFamily) { |
+ TestStringPreference(prefs::kWebKitSansSerifFontFamily); |
+} |
+ |
+TEST_F(PrefsTabHelperTest, PerTabCursiveFontFamily) { |
+ TestStringPreference(prefs::kWebKitCursiveFontFamily); |
+} |
- prefs2->SetBoolean(key, !initial_value); |
- EXPECT_EQ(initial_value, prefs1->GetBoolean(key)); |
- EXPECT_EQ(!initial_value, prefs2->GetBoolean(key)); |
+TEST_F(PrefsTabHelperTest, PerTabFantasyFontFamily) { |
+ TestStringPreference(prefs::kWebKitFantasyFontFamily); |
} |
TEST_F(PrefsTabHelperTest, OverridePrefsOnViewCreation) { |
- TestPrefsTabHelper* test_prefs_helper = |
- new TestPrefsTabHelper(contents_wrapper()); |
- contents_wrapper()->prefs_tab_helper_.reset(test_prefs_helper); |
+ TestPrefsTabHelper* test_prefs_helper = CreateTestPrefsTabHelper(); |
EXPECT_FALSE(test_prefs_helper->was_update_web_preferences_called()); |
test_prefs_helper->NotifyRenderViewCreated(); |
EXPECT_TRUE(test_prefs_helper->was_update_web_preferences_called()); |