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

Side by Side Diff: chrome/browser/browsing_data/browsing_data_remover_unittest.cc

Issue 2292443003: Support host-based deletion for SSLHostStateDelegate (Closed)
Patch Set: Revert changes in ContentSettingPattern, convert pattern directly to URL Created 4 years, 3 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 unified diff | Download patch
OLDNEW
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 "chrome/browser/browsing_data/browsing_data_remover.h" 5 #include "chrome/browser/browsing_data/browsing_data_remover.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <list> 10 #include <list>
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 const base::FilePath::CharType kDomStorageOrigin2[] = 160 const base::FilePath::CharType kDomStorageOrigin2[] =
161 FILE_PATH_LITERAL("http_host2_1.localstorage"); 161 FILE_PATH_LITERAL("http_host2_1.localstorage");
162 162
163 const base::FilePath::CharType kDomStorageOrigin3[] = 163 const base::FilePath::CharType kDomStorageOrigin3[] =
164 FILE_PATH_LITERAL("http_host3_1.localstorage"); 164 FILE_PATH_LITERAL("http_host3_1.localstorage");
165 165
166 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL( 166 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL(
167 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage"); 167 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage");
168 168
169 bool MatchPrimaryPattern(const ContentSettingsPattern& expected_primary,
170 const ContentSettingsPattern& primary_pattern,
171 const ContentSettingsPattern& secondary_pattern) {
172 return expected_primary == primary_pattern;
173 }
174
175 #if defined(OS_CHROMEOS) 169 #if defined(OS_CHROMEOS)
176 void FakeDBusCall(const chromeos::BoolDBusMethodCallback& callback) { 170 void FakeDBusCall(const chromeos::BoolDBusMethodCallback& callback) {
177 base::ThreadTaskRunnerHandle::Get()->PostTask( 171 base::ThreadTaskRunnerHandle::Get()->PostTask(
178 FROM_HERE, 172 FROM_HERE,
179 base::Bind(callback, chromeos::DBUS_METHOD_CALL_SUCCESS, true)); 173 base::Bind(callback, chromeos::DBUS_METHOD_CALL_SUCCESS, true));
180 } 174 }
181 #endif 175 #endif
182 176
183 struct StoragePartitionRemovalData { 177 struct StoragePartitionRemovalData {
184 uint32_t remove_mask = 0; 178 uint32_t remove_mask = 0;
(...skipping 2413 matching lines...) Expand 10 before | Expand all | Expand 10 after
2598 host_settings[0].primary_pattern) 2592 host_settings[0].primary_pattern)
2599 << host_settings[0].primary_pattern.ToString(); 2593 << host_settings[0].primary_pattern.ToString();
2600 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin4), 2594 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin4),
2601 host_settings[1].primary_pattern) 2595 host_settings[1].primary_pattern)
2602 << host_settings[1].primary_pattern.ToString(); 2596 << host_settings[1].primary_pattern.ToString();
2603 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin3), 2597 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(kOrigin3),
2604 host_settings[2].primary_pattern) 2598 host_settings[2].primary_pattern)
2605 << host_settings[2].primary_pattern.ToString(); 2599 << host_settings[2].primary_pattern.ToString();
2606 } 2600 }
2607 2601
2608 TEST_F(BrowsingDataRemoverTest, ClearWithPredicate) {
2609 HostContentSettingsMap* host_content_settings_map =
2610 HostContentSettingsMapFactory::GetForProfile(GetProfile());
2611 ContentSettingsForOneType host_settings;
2612
2613 // Patterns with wildcards.
2614 ContentSettingsPattern pattern =
2615 ContentSettingsPattern::FromString("[*.]example.org");
2616 ContentSettingsPattern pattern2 =
2617 ContentSettingsPattern::FromString("[*.]example.net");
2618
2619 // Patterns without wildcards.
2620 GURL url1("https://www.google.com/");
2621 GURL url2("https://www.google.com/maps");
2622 GURL url3("http://www.google.com/maps");
2623 GURL url3_origin_only("http://www.google.com/");
2624
2625 host_content_settings_map->SetContentSettingCustomScope(
2626 pattern2, ContentSettingsPattern::Wildcard(),
2627 CONTENT_SETTINGS_TYPE_COOKIES, std::string(), CONTENT_SETTING_BLOCK);
2628 host_content_settings_map->SetContentSettingCustomScope(
2629 pattern, ContentSettingsPattern::Wildcard(),
2630 CONTENT_SETTINGS_TYPE_COOKIES, std::string(), CONTENT_SETTING_BLOCK);
2631 host_content_settings_map->SetWebsiteSettingCustomScope(
2632 pattern2, ContentSettingsPattern::Wildcard(),
2633 CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(),
2634 base::WrapUnique(new base::DictionaryValue()));
2635
2636 // First, test that we clear only COOKIES (not APP_BANNER), and pattern2.
2637 BrowsingDataRemover::ClearSettingsForOneTypeWithPredicate(
2638 host_content_settings_map, CONTENT_SETTINGS_TYPE_COOKIES,
2639 base::Bind(&MatchPrimaryPattern, pattern2));
2640 host_content_settings_map->GetSettingsForOneType(
2641 CONTENT_SETTINGS_TYPE_COOKIES, std::string(), &host_settings);
2642 // |host_settings| contains default & block.
2643 EXPECT_EQ(2U, host_settings.size());
2644 EXPECT_EQ(pattern, host_settings[0].primary_pattern);
2645 EXPECT_EQ("*", host_settings[0].secondary_pattern.ToString());
2646 EXPECT_EQ("*", host_settings[1].primary_pattern.ToString());
2647 EXPECT_EQ("*", host_settings[1].secondary_pattern.ToString());
2648
2649 host_content_settings_map->GetSettingsForOneType(
2650 CONTENT_SETTINGS_TYPE_APP_BANNER, std::string(), &host_settings);
2651 // |host_settings| contains block.
2652 EXPECT_EQ(1U, host_settings.size());
2653 EXPECT_EQ(pattern2, host_settings[0].primary_pattern);
2654 EXPECT_EQ("*", host_settings[0].secondary_pattern.ToString());
2655
2656 // Next, test that we do correct pattern matching w/ an origin policy item.
2657 // We verify that we have no settings stored.
2658 host_content_settings_map->GetSettingsForOneType(
2659 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
2660 EXPECT_EQ(0u, host_settings.size());
2661 // Add settings.
2662 host_content_settings_map->SetWebsiteSettingDefaultScope(
2663 url1, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
2664 base::WrapUnique(new base::DictionaryValue()));
2665 // This setting should override the one above, as it's the same origin.
2666 host_content_settings_map->SetWebsiteSettingDefaultScope(
2667 url2, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
2668 base::WrapUnique(new base::DictionaryValue()));
2669 host_content_settings_map->SetWebsiteSettingDefaultScope(
2670 url3, GURL(), CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(),
2671 base::WrapUnique(new base::DictionaryValue()));
2672 // Verify we only have two.
2673 host_content_settings_map->GetSettingsForOneType(
2674 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
2675 EXPECT_EQ(2u, host_settings.size());
2676
2677 // Clear the http one, which we should be able to do w/ the origin only, as
2678 // the scope of CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT is
2679 // REQUESTING_ORIGIN_ONLY_SCOPE.
2680 ContentSettingsPattern http_pattern =
2681 ContentSettingsPattern::FromURLNoWildcard(url3_origin_only);
2682 BrowsingDataRemover::ClearSettingsForOneTypeWithPredicate(
2683 host_content_settings_map, CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
2684 base::Bind(&MatchPrimaryPattern, http_pattern));
2685 // Verify we only have one, and it's url1.
2686 host_content_settings_map->GetSettingsForOneType(
2687 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, std::string(), &host_settings);
2688 EXPECT_EQ(1u, host_settings.size());
2689 EXPECT_EQ(ContentSettingsPattern::FromURLNoWildcard(url1),
2690 host_settings[0].primary_pattern);
2691 }
2692
2693 TEST_F(BrowsingDataRemoverTest, ClearPermissionPromptCounts) { 2602 TEST_F(BrowsingDataRemoverTest, ClearPermissionPromptCounts) {
2694 RemovePermissionPromptCountsTest tester(GetProfile()); 2603 RemovePermissionPromptCountsTest tester(GetProfile());
2695 2604
2696 RegistrableDomainFilterBuilder filter_builder_1( 2605 RegistrableDomainFilterBuilder filter_builder_1(
2697 RegistrableDomainFilterBuilder::WHITELIST); 2606 RegistrableDomainFilterBuilder::WHITELIST);
2698 filter_builder_1.AddRegisterableDomain(kTestRegisterableDomain1); 2607 filter_builder_1.AddRegisterableDomain(kTestRegisterableDomain1);
2699 2608
2700 RegistrableDomainFilterBuilder filter_builder_2( 2609 RegistrableDomainFilterBuilder filter_builder_2(
2701 RegistrableDomainFilterBuilder::BLACKLIST); 2610 RegistrableDomainFilterBuilder::BLACKLIST);
2702 filter_builder_2.AddRegisterableDomain(kTestRegisterableDomain1); 2611 filter_builder_2.AddRegisterableDomain(kTestRegisterableDomain1);
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
3013 EXPECT_TRUE(remover->is_removing()); 2922 EXPECT_TRUE(remover->is_removing());
3014 2923
3015 // Add one more deletion and wait for it. 2924 // Add one more deletion and wait for it.
3016 BlockUntilBrowsingDataRemoved( 2925 BlockUntilBrowsingDataRemoved(
3017 browsing_data::ALL_TIME, 2926 browsing_data::ALL_TIME,
3018 BrowsingDataRemover::REMOVE_COOKIES, 2927 BrowsingDataRemover::REMOVE_COOKIES,
3019 BrowsingDataHelper::UNPROTECTED_WEB); 2928 BrowsingDataHelper::UNPROTECTED_WEB);
3020 2929
3021 EXPECT_FALSE(remover->is_removing()); 2930 EXPECT_FALSE(remover->is_removing());
3022 } 2931 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698