Chromium Code Reviews| 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); |
|
Mattias Nissler (ping if slow)
2011/12/09 09:54:44
Basically, you're doing value-parameterized tests
mnaganov (inactive)
2011/12/12 18:19:04
That's a good thing to know about, thanks! But in
|
| +} |
| - 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()); |