| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/content_settings/core/browser/content_settings_pref_provide
r.h" | 5 #include "components/content_settings/core/browser/content_settings_pref_provide
r.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "chrome/common/chrome_switches.h" | 24 #include "chrome/common/chrome_switches.h" |
| 25 #include "chrome/common/pref_names.h" | 25 #include "chrome/common/pref_names.h" |
| 26 #include "chrome/common/url_constants.h" | 26 #include "chrome/common/url_constants.h" |
| 27 #include "chrome/test/base/testing_pref_service_syncable.h" | 27 #include "chrome/test/base/testing_pref_service_syncable.h" |
| 28 #include "chrome/test/base/testing_profile.h" | 28 #include "chrome/test/base/testing_profile.h" |
| 29 #include "components/content_settings/core/browser/content_settings_pref.h" | 29 #include "components/content_settings/core/browser/content_settings_pref.h" |
| 30 #include "components/content_settings/core/browser/content_settings_rule.h" | 30 #include "components/content_settings/core/browser/content_settings_rule.h" |
| 31 #include "components/content_settings/core/browser/content_settings_utils.h" | 31 #include "components/content_settings/core/browser/content_settings_utils.h" |
| 32 #include "components/content_settings/core/test/content_settings_test_utils.h" | 32 #include "components/content_settings/core/test/content_settings_test_utils.h" |
| 33 #include "components/pref_registry/pref_registry_syncable.h" | 33 #include "components/pref_registry/pref_registry_syncable.h" |
| 34 #include "content/public/test/test_browser_thread_bundle.h" |
| 34 #include "testing/gtest/include/gtest/gtest.h" | 35 #include "testing/gtest/include/gtest/gtest.h" |
| 35 #include "url/gurl.h" | 36 #include "url/gurl.h" |
| 36 | 37 |
| 37 using ::testing::_; | 38 using ::testing::_; |
| 38 | 39 |
| 39 namespace content_settings { | 40 namespace content_settings { |
| 40 | 41 |
| 41 class DeadlockCheckerThread : public base::PlatformThread::Delegate { | 42 class DeadlockCheckerThread : public base::PlatformThread::Delegate { |
| 42 public: | 43 public: |
| 43 explicit DeadlockCheckerThread(PrefProvider* provider) | 44 explicit DeadlockCheckerThread(PrefProvider* provider) |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 base::PlatformThread::Join(handle); | 84 base::PlatformThread::Join(handle); |
| 84 notification_received_ = true; | 85 notification_received_ = true; |
| 85 } | 86 } |
| 86 | 87 |
| 87 PrefProvider* provider_; | 88 PrefProvider* provider_; |
| 88 PrefChangeRegistrar pref_change_registrar_; | 89 PrefChangeRegistrar pref_change_registrar_; |
| 89 bool notification_received_; | 90 bool notification_received_; |
| 90 DISALLOW_COPY_AND_ASSIGN(DeadlockCheckerObserver); | 91 DISALLOW_COPY_AND_ASSIGN(DeadlockCheckerObserver); |
| 91 }; | 92 }; |
| 92 | 93 |
| 93 TEST(PrefProviderTest, Observer) { | 94 class PrefProviderTest : public testing::Test { |
| 95 content::TestBrowserThreadBundle thread_bundle_; |
| 96 }; |
| 97 |
| 98 TEST_F(PrefProviderTest, Observer) { |
| 94 TestingProfile profile; | 99 TestingProfile profile; |
| 95 PrefProvider pref_content_settings_provider(profile.GetPrefs(), false); | 100 PrefProvider pref_content_settings_provider(profile.GetPrefs(), false); |
| 96 | 101 |
| 97 ContentSettingsPattern pattern = | 102 ContentSettingsPattern pattern = |
| 98 ContentSettingsPattern::FromString("[*.]example.com"); | 103 ContentSettingsPattern::FromString("[*.]example.com"); |
| 99 content_settings::MockObserver mock_observer; | 104 content_settings::MockObserver mock_observer; |
| 100 EXPECT_CALL(mock_observer, | 105 EXPECT_CALL(mock_observer, |
| 101 OnContentSettingChanged(pattern, | 106 OnContentSettingChanged(pattern, |
| 102 ContentSettingsPattern::Wildcard(), | 107 ContentSettingsPattern::Wildcard(), |
| 103 CONTENT_SETTINGS_TYPE_IMAGES, | 108 CONTENT_SETTINGS_TYPE_IMAGES, |
| 104 "")); | 109 "")); |
| 105 | 110 |
| 106 pref_content_settings_provider.AddObserver(&mock_observer); | 111 pref_content_settings_provider.AddObserver(&mock_observer); |
| 107 | 112 |
| 108 pref_content_settings_provider.SetWebsiteSetting( | 113 pref_content_settings_provider.SetWebsiteSetting( |
| 109 pattern, | 114 pattern, |
| 110 ContentSettingsPattern::Wildcard(), | 115 ContentSettingsPattern::Wildcard(), |
| 111 CONTENT_SETTINGS_TYPE_IMAGES, | 116 CONTENT_SETTINGS_TYPE_IMAGES, |
| 112 std::string(), | 117 std::string(), |
| 113 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); | 118 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); |
| 114 | 119 |
| 115 pref_content_settings_provider.ShutdownOnUIThread(); | 120 pref_content_settings_provider.ShutdownOnUIThread(); |
| 116 } | 121 } |
| 117 | 122 |
| 118 // Test for regression in which the PrefProvider modified the user pref store | 123 // Test for regression in which the PrefProvider modified the user pref store |
| 119 // of the OTR unintentionally: http://crbug.com/74466. | 124 // of the OTR unintentionally: http://crbug.com/74466. |
| 120 TEST(PrefProviderTest, Incognito) { | 125 TEST_F(PrefProviderTest, Incognito) { |
| 121 PersistentPrefStore* user_prefs = new TestingPrefStore(); | 126 PersistentPrefStore* user_prefs = new TestingPrefStore(); |
| 122 OverlayUserPrefStore* otr_user_prefs = | 127 OverlayUserPrefStore* otr_user_prefs = |
| 123 new OverlayUserPrefStore(user_prefs); | 128 new OverlayUserPrefStore(user_prefs); |
| 124 | 129 |
| 125 PrefServiceMockFactory factory; | 130 PrefServiceMockFactory factory; |
| 126 factory.set_user_prefs(make_scoped_refptr(user_prefs)); | 131 factory.set_user_prefs(make_scoped_refptr(user_prefs)); |
| 127 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( | 132 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
| 128 new user_prefs::PrefRegistrySyncable); | 133 new user_prefs::PrefRegistrySyncable); |
| 129 PrefServiceSyncable* regular_prefs = | 134 PrefServiceSyncable* regular_prefs = |
| 130 factory.CreateSyncable(registry.get()).release(); | 135 factory.CreateSyncable(registry.get()).release(); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 std::string(), | 182 std::string(), |
| 178 false)); | 183 false)); |
| 179 // But the value should not be overridden in the OTR user prefs accidentally. | 184 // But the value should not be overridden in the OTR user prefs accidentally. |
| 180 EXPECT_FALSE(otr_user_prefs->IsSetInOverlay( | 185 EXPECT_FALSE(otr_user_prefs->IsSetInOverlay( |
| 181 prefs::kContentSettingsPatternPairs)); | 186 prefs::kContentSettingsPatternPairs)); |
| 182 | 187 |
| 183 pref_content_settings_provider.ShutdownOnUIThread(); | 188 pref_content_settings_provider.ShutdownOnUIThread(); |
| 184 pref_content_settings_provider_incognito.ShutdownOnUIThread(); | 189 pref_content_settings_provider_incognito.ShutdownOnUIThread(); |
| 185 } | 190 } |
| 186 | 191 |
| 187 TEST(PrefProviderTest, GetContentSettingsValue) { | 192 TEST_F(PrefProviderTest, GetContentSettingsValue) { |
| 188 TestingProfile testing_profile; | 193 TestingProfile testing_profile; |
| 189 PrefProvider provider(testing_profile.GetPrefs(), false); | 194 PrefProvider provider(testing_profile.GetPrefs(), false); |
| 190 | 195 |
| 191 GURL primary_url("http://example.com/"); | 196 GURL primary_url("http://example.com/"); |
| 192 ContentSettingsPattern primary_pattern = | 197 ContentSettingsPattern primary_pattern = |
| 193 ContentSettingsPattern::FromString("[*.]example.com"); | 198 ContentSettingsPattern::FromString("[*.]example.com"); |
| 194 | 199 |
| 195 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 200 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 196 GetContentSetting(&provider, | 201 GetContentSetting(&provider, |
| 197 primary_url, | 202 primary_url, |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 EXPECT_EQ(NULL, | 244 EXPECT_EQ(NULL, |
| 240 GetContentSettingValue(&provider, | 245 GetContentSettingValue(&provider, |
| 241 primary_url, | 246 primary_url, |
| 242 primary_url, | 247 primary_url, |
| 243 CONTENT_SETTINGS_TYPE_IMAGES, | 248 CONTENT_SETTINGS_TYPE_IMAGES, |
| 244 std::string(), | 249 std::string(), |
| 245 false)); | 250 false)); |
| 246 provider.ShutdownOnUIThread(); | 251 provider.ShutdownOnUIThread(); |
| 247 } | 252 } |
| 248 | 253 |
| 249 TEST(PrefProviderTest, Patterns) { | 254 TEST_F(PrefProviderTest, Patterns) { |
| 250 TestingProfile testing_profile; | 255 TestingProfile testing_profile; |
| 251 PrefProvider pref_content_settings_provider(testing_profile.GetPrefs(), | 256 PrefProvider pref_content_settings_provider(testing_profile.GetPrefs(), |
| 252 false); | 257 false); |
| 253 | 258 |
| 254 GURL host1("http://example.com/"); | 259 GURL host1("http://example.com/"); |
| 255 GURL host2("http://www.example.com/"); | 260 GURL host2("http://www.example.com/"); |
| 256 GURL host3("http://example.org/"); | 261 GURL host3("http://example.org/"); |
| 257 GURL host4("file:///tmp/test.html"); | 262 GURL host4("file:///tmp/test.html"); |
| 258 ContentSettingsPattern pattern1 = | 263 ContentSettingsPattern pattern1 = |
| 259 ContentSettingsPattern::FromString("[*.]example.com"); | 264 ContentSettingsPattern::FromString("[*.]example.com"); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 GetContentSetting(&pref_content_settings_provider, | 333 GetContentSetting(&pref_content_settings_provider, |
| 329 host4, | 334 host4, |
| 330 host4, | 335 host4, |
| 331 CONTENT_SETTINGS_TYPE_IMAGES, | 336 CONTENT_SETTINGS_TYPE_IMAGES, |
| 332 std::string(), | 337 std::string(), |
| 333 false)); | 338 false)); |
| 334 | 339 |
| 335 pref_content_settings_provider.ShutdownOnUIThread(); | 340 pref_content_settings_provider.ShutdownOnUIThread(); |
| 336 } | 341 } |
| 337 | 342 |
| 338 TEST(PrefProviderTest, ResourceIdentifier) { | 343 TEST_F(PrefProviderTest, ResourceIdentifier) { |
| 339 TestingProfile testing_profile; | 344 TestingProfile testing_profile; |
| 340 PrefProvider pref_content_settings_provider(testing_profile.GetPrefs(), | 345 PrefProvider pref_content_settings_provider(testing_profile.GetPrefs(), |
| 341 false); | 346 false); |
| 342 | 347 |
| 343 GURL host("http://example.com/"); | 348 GURL host("http://example.com/"); |
| 344 ContentSettingsPattern pattern = | 349 ContentSettingsPattern pattern = |
| 345 ContentSettingsPattern::FromString("[*.]example.com"); | 350 ContentSettingsPattern::FromString("[*.]example.com"); |
| 346 std::string resource1("someplugin"); | 351 std::string resource1("someplugin"); |
| 347 std::string resource2("otherplugin"); | 352 std::string resource2("otherplugin"); |
| 348 | 353 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 364 resource1, false)); | 369 resource1, false)); |
| 365 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 370 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 366 GetContentSetting( | 371 GetContentSetting( |
| 367 &pref_content_settings_provider, | 372 &pref_content_settings_provider, |
| 368 host, host, CONTENT_SETTINGS_TYPE_PLUGINS, | 373 host, host, CONTENT_SETTINGS_TYPE_PLUGINS, |
| 369 resource2, false)); | 374 resource2, false)); |
| 370 | 375 |
| 371 pref_content_settings_provider.ShutdownOnUIThread(); | 376 pref_content_settings_provider.ShutdownOnUIThread(); |
| 372 } | 377 } |
| 373 | 378 |
| 374 TEST(PrefProviderTest, AutoSubmitCertificateContentSetting) { | 379 TEST_F(PrefProviderTest, AutoSubmitCertificateContentSetting) { |
| 375 TestingProfile profile; | 380 TestingProfile profile; |
| 376 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); | 381 TestingPrefServiceSyncable* prefs = profile.GetTestingPrefService(); |
| 377 GURL primary_url("https://www.example.com"); | 382 GURL primary_url("https://www.example.com"); |
| 378 GURL secondary_url("https://www.sample.com"); | 383 GURL secondary_url("https://www.sample.com"); |
| 379 | 384 |
| 380 PrefProvider provider(prefs, false); | 385 PrefProvider provider(prefs, false); |
| 381 | 386 |
| 382 EXPECT_EQ(CONTENT_SETTING_DEFAULT, | 387 EXPECT_EQ(CONTENT_SETTING_DEFAULT, |
| 383 GetContentSetting( | 388 GetContentSetting( |
| 384 &provider, | 389 &provider, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 398 &provider, | 403 &provider, |
| 399 primary_url, | 404 primary_url, |
| 400 secondary_url, | 405 secondary_url, |
| 401 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, | 406 CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, |
| 402 std::string(), | 407 std::string(), |
| 403 false)); | 408 false)); |
| 404 provider.ShutdownOnUIThread(); | 409 provider.ShutdownOnUIThread(); |
| 405 } | 410 } |
| 406 | 411 |
| 407 // http://crosbug.com/17760 | 412 // http://crosbug.com/17760 |
| 408 TEST(PrefProviderTest, Deadlock) { | 413 TEST_F(PrefProviderTest, Deadlock) { |
| 409 TestingPrefServiceSyncable prefs; | 414 TestingPrefServiceSyncable prefs; |
| 410 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 415 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 411 | 416 |
| 412 // Chain of events: a preference changes, |PrefProvider| notices it, and reads | 417 // Chain of events: a preference changes, |PrefProvider| notices it, and reads |
| 413 // and writes the preference. When the preference is written, a notification | 418 // and writes the preference. When the preference is written, a notification |
| 414 // is sent, and this used to happen when |PrefProvider| was still holding its | 419 // is sent, and this used to happen when |PrefProvider| was still holding its |
| 415 // lock. | 420 // lock. |
| 416 | 421 |
| 417 PrefProvider provider(&prefs, false); | 422 PrefProvider provider(&prefs, false); |
| 418 DeadlockCheckerObserver observer(&prefs, &provider); | 423 DeadlockCheckerObserver observer(&prefs, &provider); |
| 419 { | 424 { |
| 420 DictionaryPrefUpdate update(&prefs, | 425 DictionaryPrefUpdate update(&prefs, |
| 421 prefs::kContentSettingsPatternPairs); | 426 prefs::kContentSettingsPatternPairs); |
| 422 base::DictionaryValue* mutable_settings = update.Get(); | 427 base::DictionaryValue* mutable_settings = update.Get(); |
| 423 mutable_settings->SetWithoutPathExpansion("www.example.com,*", | 428 mutable_settings->SetWithoutPathExpansion("www.example.com,*", |
| 424 new base::DictionaryValue()); | 429 new base::DictionaryValue()); |
| 425 } | 430 } |
| 426 EXPECT_TRUE(observer.notification_received()); | 431 EXPECT_TRUE(observer.notification_received()); |
| 427 | 432 |
| 428 provider.ShutdownOnUIThread(); | 433 provider.ShutdownOnUIThread(); |
| 429 } | 434 } |
| 430 | 435 |
| 431 TEST(PrefProviderTest, LastUsage) { | 436 TEST_F(PrefProviderTest, LastUsage) { |
| 432 TestingProfile testing_profile; | 437 TestingProfile testing_profile; |
| 433 PrefProvider pref_content_settings_provider(testing_profile.GetPrefs(), | 438 PrefProvider pref_content_settings_provider(testing_profile.GetPrefs(), |
| 434 false); | 439 false); |
| 435 base::SimpleTestClock* test_clock = new base::SimpleTestClock; | 440 base::SimpleTestClock* test_clock = new base::SimpleTestClock; |
| 436 test_clock->SetNow(base::Time::Now()); | 441 test_clock->SetNow(base::Time::Now()); |
| 437 | 442 |
| 438 pref_content_settings_provider.SetClockForTesting( | 443 pref_content_settings_provider.SetClockForTesting( |
| 439 scoped_ptr<base::Clock>(test_clock)); | 444 scoped_ptr<base::Clock>(test_clock)); |
| 440 GURL host("http://example.com/"); | 445 GURL host("http://example.com/"); |
| 441 ContentSettingsPattern pattern = | 446 ContentSettingsPattern pattern = |
| (...skipping 19 matching lines...) Expand all Loading... |
| 461 EXPECT_EQ(delta.InSeconds(), 10); | 466 EXPECT_EQ(delta.InSeconds(), 10); |
| 462 | 467 |
| 463 pref_content_settings_provider.ShutdownOnUIThread(); | 468 pref_content_settings_provider.ShutdownOnUIThread(); |
| 464 } | 469 } |
| 465 | 470 |
| 466 | 471 |
| 467 // TODO(msramek): This tests the correct migration behavior between the old | 472 // TODO(msramek): This tests the correct migration behavior between the old |
| 468 // aggregate dictionary preferences for all content settings types and the new | 473 // aggregate dictionary preferences for all content settings types and the new |
| 469 // dictionary preferences for individual types. Remove this when the migration | 474 // dictionary preferences for individual types. Remove this when the migration |
| 470 // period is over. | 475 // period is over. |
| 471 TEST(PrefProviderTest, SyncingOldToNew) { | 476 TEST_F(PrefProviderTest, SyncingOldToNew) { |
| 472 TestingPrefServiceSyncable prefs; | 477 TestingPrefServiceSyncable prefs; |
| 473 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 478 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 474 PrefProvider provider(&prefs, false); | 479 PrefProvider provider(&prefs, false); |
| 475 | 480 |
| 476 const std::string pattern = "google.com,*"; | 481 const std::string pattern = "google.com,*"; |
| 477 const std::string resource_id = "abcde12345"; | 482 const std::string resource_id = "abcde12345"; |
| 478 base::DictionaryValue* exceptions = new base::DictionaryValue(); | 483 base::DictionaryValue* exceptions = new base::DictionaryValue(); |
| 479 base::DictionaryValue* plugin_resources = new base::DictionaryValue(); | 484 base::DictionaryValue* plugin_resources = new base::DictionaryValue(); |
| 480 | 485 |
| 481 // Add exceptions for images and app banner. | 486 // Add exceptions for images and app banner. |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 EXPECT_TRUE(plugins_exception->GetDictionaryWithoutPathExpansion( | 552 EXPECT_TRUE(plugins_exception->GetDictionaryWithoutPathExpansion( |
| 548 "per_resource", &resource_exception)); | 553 "per_resource", &resource_exception)); |
| 549 EXPECT_TRUE(resource_exception->GetIntegerWithoutPathExpansion( | 554 EXPECT_TRUE(resource_exception->GetIntegerWithoutPathExpansion( |
| 550 resource_id, &resource_exception_value)); | 555 resource_id, &resource_exception_value)); |
| 551 EXPECT_EQ(CONTENT_SETTING_BLOCK, resource_exception_value); | 556 EXPECT_EQ(CONTENT_SETTING_BLOCK, resource_exception_value); |
| 552 } | 557 } |
| 553 | 558 |
| 554 provider.ShutdownOnUIThread(); | 559 provider.ShutdownOnUIThread(); |
| 555 } | 560 } |
| 556 | 561 |
| 557 TEST(PrefProviderTest, SyncingNewToOld) { | 562 TEST_F(PrefProviderTest, SyncingNewToOld) { |
| 558 TestingPrefServiceSyncable prefs; | 563 TestingPrefServiceSyncable prefs; |
| 559 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 564 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 560 PrefProvider provider(&prefs, false); | 565 PrefProvider provider(&prefs, false); |
| 561 | 566 |
| 562 const std::string pattern = "google.com,*"; | 567 const std::string pattern = "google.com,*"; |
| 563 const std::string resource_id = "abcde12345"; | 568 const std::string resource_id = "abcde12345"; |
| 564 base::DictionaryValue block_exception; | 569 base::DictionaryValue block_exception; |
| 565 block_exception.SetIntegerWithoutPathExpansion( | 570 block_exception.SetIntegerWithoutPathExpansion( |
| 566 "setting", CONTENT_SETTING_BLOCK); | 571 "setting", CONTENT_SETTING_BLOCK); |
| 567 | 572 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 "per_plugin", &resource_values); | 641 "per_plugin", &resource_values); |
| 637 resource_values->GetIntegerWithoutPathExpansion( | 642 resource_values->GetIntegerWithoutPathExpansion( |
| 638 resource_id, &resource_exception_value); | 643 resource_id, &resource_exception_value); |
| 639 DCHECK_EQ(CONTENT_SETTING_ALLOW, resource_exception_value); | 644 DCHECK_EQ(CONTENT_SETTING_ALLOW, resource_exception_value); |
| 640 } | 645 } |
| 641 | 646 |
| 642 provider.ShutdownOnUIThread(); | 647 provider.ShutdownOnUIThread(); |
| 643 } | 648 } |
| 644 | 649 |
| 645 #if defined(OS_CHROMEOS) || defined(OS_ANDROID) | 650 #if defined(OS_CHROMEOS) || defined(OS_ANDROID) |
| 646 TEST(PrefProviderTest, PMIMigrateOnlyAllow) { | 651 TEST_F(PrefProviderTest, PMIMigrateOnlyAllow) { |
| 647 TestingPrefServiceSyncable prefs; | 652 TestingPrefServiceSyncable prefs; |
| 648 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 653 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 649 | 654 |
| 650 const std::string pattern_1 = "google.com,*"; | 655 const std::string pattern_1 = "google.com,*"; |
| 651 const std::string pattern_2 = "www.google.com,*"; | 656 const std::string pattern_2 = "www.google.com,*"; |
| 652 base::DictionaryValue* exception_1 = new base::DictionaryValue(); | 657 base::DictionaryValue* exception_1 = new base::DictionaryValue(); |
| 653 base::DictionaryValue* exception_2 = new base::DictionaryValue(); | 658 base::DictionaryValue* exception_2 = new base::DictionaryValue(); |
| 654 | 659 |
| 655 // Add both an "allow" and "block" exception for PMI. | 660 // Add both an "allow" and "block" exception for PMI. |
| 656 exception_1->SetIntegerWithoutPathExpansion( | 661 exception_1->SetIntegerWithoutPathExpansion( |
| (...skipping 20 matching lines...) Expand all Loading... |
| 677 &prefs, prefs::kContentSettingsProtectedMediaIdentifierPatternPairs); | 682 &prefs, prefs::kContentSettingsProtectedMediaIdentifierPatternPairs); |
| 678 const base::DictionaryValue* pmi_dictionary = update.Get(); | 683 const base::DictionaryValue* pmi_dictionary = update.Get(); |
| 679 EXPECT_FALSE(pmi_dictionary->HasKey(pattern_1)); | 684 EXPECT_FALSE(pmi_dictionary->HasKey(pattern_1)); |
| 680 EXPECT_TRUE(pmi_dictionary->HasKey(pattern_2)); | 685 EXPECT_TRUE(pmi_dictionary->HasKey(pattern_2)); |
| 681 } | 686 } |
| 682 | 687 |
| 683 provider.ShutdownOnUIThread(); | 688 provider.ShutdownOnUIThread(); |
| 684 } | 689 } |
| 685 #endif | 690 #endif |
| 686 | 691 |
| 687 TEST(PrefProviderTest, PrefsMigrateVerbatim) { | 692 TEST_F(PrefProviderTest, PrefsMigrateVerbatim) { |
| 688 TestingPrefServiceSyncable prefs; | 693 TestingPrefServiceSyncable prefs; |
| 689 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 694 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 690 | 695 |
| 691 const std::string pattern_1 = "google.com,*"; | 696 const std::string pattern_1 = "google.com,*"; |
| 692 const std::string pattern_2 = "www.google.com,*"; | 697 const std::string pattern_2 = "www.google.com,*"; |
| 693 base::DictionaryValue* exception_1 = new base::DictionaryValue(); | 698 base::DictionaryValue* exception_1 = new base::DictionaryValue(); |
| 694 base::DictionaryValue* exception_2 = new base::DictionaryValue(); | 699 base::DictionaryValue* exception_2 = new base::DictionaryValue(); |
| 695 scoped_ptr<base::DictionaryValue> old_dictionary; | 700 scoped_ptr<base::DictionaryValue> old_dictionary; |
| 696 | 701 |
| 697 // Add two exceptions. | 702 // Add two exceptions. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 728 // Test if the value after copying there and back is the same. | 733 // Test if the value after copying there and back is the same. |
| 729 { | 734 { |
| 730 DictionaryPrefUpdate update(&prefs, prefs::kContentSettingsPatternPairs); | 735 DictionaryPrefUpdate update(&prefs, prefs::kContentSettingsPatternPairs); |
| 731 base::DictionaryValue* new_dictionary = update.Get(); | 736 base::DictionaryValue* new_dictionary = update.Get(); |
| 732 EXPECT_TRUE(old_dictionary->Equals(new_dictionary)); | 737 EXPECT_TRUE(old_dictionary->Equals(new_dictionary)); |
| 733 } | 738 } |
| 734 | 739 |
| 735 provider.ShutdownOnUIThread(); | 740 provider.ShutdownOnUIThread(); |
| 736 } | 741 } |
| 737 | 742 |
| 738 TEST(PrefProviderTest, IncognitoInheritsValueMap) { | 743 TEST_F(PrefProviderTest, IncognitoInheritsValueMap) { |
| 739 TestingPrefServiceSyncable prefs; | 744 TestingPrefServiceSyncable prefs; |
| 740 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 745 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 741 | 746 |
| 742 ContentSettingsPattern pattern_1 = | 747 ContentSettingsPattern pattern_1 = |
| 743 ContentSettingsPattern::FromString("google.com"); | 748 ContentSettingsPattern::FromString("google.com"); |
| 744 ContentSettingsPattern pattern_2 = | 749 ContentSettingsPattern pattern_2 = |
| 745 ContentSettingsPattern::FromString("www.google.com"); | 750 ContentSettingsPattern::FromString("www.google.com"); |
| 746 ContentSettingsPattern wildcard = | 751 ContentSettingsPattern wildcard = |
| 747 ContentSettingsPattern::FromString("*"); | 752 ContentSettingsPattern::FromString("*"); |
| 748 scoped_ptr<base::Value> value( | 753 scoped_ptr<base::Value> value( |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 CONTENT_SETTINGS_TYPE_IMAGES, std::string(), true)); | 800 CONTENT_SETTINGS_TYPE_IMAGES, std::string(), true)); |
| 796 EXPECT_TRUE(it->HasNext()); | 801 EXPECT_TRUE(it->HasNext()); |
| 797 EXPECT_EQ(pattern_2, it->Next().primary_pattern); | 802 EXPECT_EQ(pattern_2, it->Next().primary_pattern); |
| 798 EXPECT_FALSE(it->HasNext()); | 803 EXPECT_FALSE(it->HasNext()); |
| 799 } | 804 } |
| 800 | 805 |
| 801 incognito_provider.ShutdownOnUIThread(); | 806 incognito_provider.ShutdownOnUIThread(); |
| 802 normal_provider.ShutdownOnUIThread(); | 807 normal_provider.ShutdownOnUIThread(); |
| 803 } | 808 } |
| 804 | 809 |
| 805 TEST(PrefProviderTest, ClearAllContentSettingsRules) { | 810 TEST_F(PrefProviderTest, ClearAllContentSettingsRules) { |
| 806 TestingPrefServiceSyncable prefs; | 811 TestingPrefServiceSyncable prefs; |
| 807 PrefProvider::RegisterProfilePrefs(prefs.registry()); | 812 PrefProvider::RegisterProfilePrefs(prefs.registry()); |
| 808 | 813 |
| 809 ContentSettingsPattern pattern = | 814 ContentSettingsPattern pattern = |
| 810 ContentSettingsPattern::FromString("google.com"); | 815 ContentSettingsPattern::FromString("google.com"); |
| 811 ContentSettingsPattern wildcard = | 816 ContentSettingsPattern wildcard = |
| 812 ContentSettingsPattern::FromString("*"); | 817 ContentSettingsPattern::FromString("*"); |
| 813 scoped_ptr<base::Value> value( | 818 scoped_ptr<base::Value> value( |
| 814 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); | 819 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); |
| 815 ResourceIdentifier res_id("abcde"); | 820 ResourceIdentifier res_id("abcde"); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 883 EXPECT_TRUE(exception->HasKey(GetTypeName(CONTENT_SETTINGS_TYPE_COOKIES))); | 888 EXPECT_TRUE(exception->HasKey(GetTypeName(CONTENT_SETTINGS_TYPE_COOKIES))); |
| 884 | 889 |
| 885 // The notification setting was not cleared, but it was also never written | 890 // The notification setting was not cleared, but it was also never written |
| 886 // to the old preference, as it is unsyncable. | 891 // to the old preference, as it is unsyncable. |
| 887 } | 892 } |
| 888 | 893 |
| 889 provider.ShutdownOnUIThread(); | 894 provider.ShutdownOnUIThread(); |
| 890 } | 895 } |
| 891 | 896 |
| 892 } // namespace content_settings | 897 } // namespace content_settings |
| OLD | NEW |