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 "chrome/browser/browsing_data/browsing_data_remover.h" | 5 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 #include "content/public/test/test_browser_thread.h" | 49 #include "content/public/test/test_browser_thread.h" |
50 #include "content/public/test/test_browser_thread_bundle.h" | 50 #include "content/public/test/test_browser_thread_bundle.h" |
51 #include "net/cookies/cookie_monster.h" | 51 #include "net/cookies/cookie_monster.h" |
52 #include "net/ssl/server_bound_cert_service.h" | 52 #include "net/ssl/server_bound_cert_service.h" |
53 #include "net/ssl/server_bound_cert_store.h" | 53 #include "net/ssl/server_bound_cert_store.h" |
54 #include "net/ssl/ssl_client_cert_type.h" | 54 #include "net/ssl/ssl_client_cert_type.h" |
55 #include "net/url_request/url_request_context.h" | 55 #include "net/url_request/url_request_context.h" |
56 #include "net/url_request/url_request_context_getter.h" | 56 #include "net/url_request/url_request_context_getter.h" |
57 #include "testing/gmock/include/gmock/gmock.h" | 57 #include "testing/gmock/include/gmock/gmock.h" |
58 #include "testing/gtest/include/gtest/gtest.h" | 58 #include "testing/gtest/include/gtest/gtest.h" |
59 #include "webkit/browser/quota/mock_quota_manager.h" | |
60 #include "webkit/browser/quota/quota_manager.h" | |
61 #include "webkit/common/quota/quota_types.h" | |
62 | 59 |
63 using content::BrowserThread; | 60 using content::BrowserThread; |
| 61 using content::StoragePartition; |
64 using testing::_; | 62 using testing::_; |
65 using testing::Invoke; | 63 using testing::Invoke; |
66 using testing::WithArgs; | 64 using testing::WithArgs; |
67 | 65 |
68 namespace { | 66 namespace { |
69 | 67 |
70 const char kTestOrigin1[] = "http://host1:1/"; | 68 const char kTestOrigin1[] = "http://host1:1/"; |
71 const char kTestOrigin2[] = "http://host2:1/"; | 69 const char kTestOrigin2[] = "http://host2:1/"; |
72 const char kTestOrigin3[] = "http://host3:1/"; | 70 const char kTestOrigin3[] = "http://host3:1/"; |
73 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; | 71 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; |
(...skipping 14 matching lines...) Expand all Loading... |
88 | 86 |
89 const base::FilePath::CharType kDomStorageOrigin2[] = | 87 const base::FilePath::CharType kDomStorageOrigin2[] = |
90 FILE_PATH_LITERAL("http_host2_1.localstorage"); | 88 FILE_PATH_LITERAL("http_host2_1.localstorage"); |
91 | 89 |
92 const base::FilePath::CharType kDomStorageOrigin3[] = | 90 const base::FilePath::CharType kDomStorageOrigin3[] = |
93 FILE_PATH_LITERAL("http_host3_1.localstorage"); | 91 FILE_PATH_LITERAL("http_host3_1.localstorage"); |
94 | 92 |
95 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL( | 93 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL( |
96 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage"); | 94 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage"); |
97 | 95 |
98 const quota::StorageType kTemporary = quota::kStorageTypeTemporary; | |
99 const quota::StorageType kPersistent = quota::kStorageTypePersistent; | |
100 | |
101 const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; | |
102 | |
103 void PopulateTestQuotaManagedNonBrowsingData(quota::MockQuotaManager* manager) { | |
104 manager->AddOrigin(kOriginDevTools, kTemporary, kClientFile, base::Time()); | |
105 manager->AddOrigin(kOriginDevTools, kPersistent, kClientFile, base::Time()); | |
106 manager->AddOrigin(kOriginExt, kTemporary, kClientFile, base::Time()); | |
107 manager->AddOrigin(kOriginExt, kPersistent, kClientFile, base::Time()); | |
108 } | |
109 | |
110 void PopulateTestQuotaManagedPersistentData(quota::MockQuotaManager* manager) { | |
111 manager->AddOrigin(kOrigin2, kPersistent, kClientFile, base::Time()); | |
112 manager->AddOrigin(kOrigin3, kPersistent, kClientFile, | |
113 base::Time::Now() - base::TimeDelta::FromDays(1)); | |
114 | |
115 EXPECT_FALSE(manager->OriginHasData(kOrigin1, kPersistent, kClientFile)); | |
116 EXPECT_TRUE(manager->OriginHasData(kOrigin2, kPersistent, kClientFile)); | |
117 EXPECT_TRUE(manager->OriginHasData(kOrigin3, kPersistent, kClientFile)); | |
118 } | |
119 | |
120 void PopulateTestQuotaManagedTemporaryData(quota::MockQuotaManager* manager) { | |
121 manager->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now()); | |
122 manager->AddOrigin(kOrigin3, kTemporary, kClientFile, | |
123 base::Time::Now() - base::TimeDelta::FromDays(1)); | |
124 | |
125 EXPECT_TRUE(manager->OriginHasData(kOrigin1, kTemporary, kClientFile)); | |
126 EXPECT_FALSE(manager->OriginHasData(kOrigin2, kTemporary, kClientFile)); | |
127 EXPECT_TRUE(manager->OriginHasData(kOrigin3, kTemporary, kClientFile)); | |
128 } | |
129 | |
130 void PopulateTestQuotaManagedData(quota::MockQuotaManager* manager) { | |
131 // Set up kOrigin1 with a temporary quota, kOrigin2 with a persistent | |
132 // quota, and kOrigin3 with both. kOrigin1 is modified now, kOrigin2 | |
133 // is modified at the beginning of time, and kOrigin3 is modified one day | |
134 // ago. | |
135 PopulateTestQuotaManagedPersistentData(manager); | |
136 PopulateTestQuotaManagedTemporaryData(manager); | |
137 } | |
138 | |
139 class AwaitCompletionHelper : public BrowsingDataRemover::Observer { | 96 class AwaitCompletionHelper : public BrowsingDataRemover::Observer { |
140 public: | 97 public: |
141 AwaitCompletionHelper() : start_(false), already_quit_(false) {} | 98 AwaitCompletionHelper() : start_(false), already_quit_(false) {} |
142 virtual ~AwaitCompletionHelper() {} | 99 virtual ~AwaitCompletionHelper() {} |
143 | 100 |
144 void BlockUntilNotified() { | 101 void BlockUntilNotified() { |
145 if (!already_quit_) { | 102 if (!already_quit_) { |
146 DCHECK(!start_); | 103 DCHECK(!start_); |
147 start_ = true; | 104 start_ = true; |
148 base::MessageLoop::current()->Run(); | 105 base::MessageLoop::current()->Run(); |
(...skipping 30 matching lines...) Expand all Loading... |
179 }; | 136 }; |
180 | 137 |
181 #if defined(OS_CHROMEOS) | 138 #if defined(OS_CHROMEOS) |
182 void FakeDBusCall(const chromeos::BoolDBusMethodCallback& callback) { | 139 void FakeDBusCall(const chromeos::BoolDBusMethodCallback& callback) { |
183 base::MessageLoop::current()->PostTask( | 140 base::MessageLoop::current()->PostTask( |
184 FROM_HERE, | 141 FROM_HERE, |
185 base::Bind(callback, chromeos::DBUS_METHOD_CALL_SUCCESS, true)); | 142 base::Bind(callback, chromeos::DBUS_METHOD_CALL_SUCCESS, true)); |
186 } | 143 } |
187 #endif | 144 #endif |
188 | 145 |
| 146 struct StoragePartitionRemovalData { |
| 147 uint32 remove_mask; |
| 148 uint32 quota_storage_remove_mask; |
| 149 GURL remove_origin; |
| 150 base::Time remove_begin; |
| 151 base::Time remove_end; |
| 152 StoragePartition::OriginMatcherFunction origin_matcher; |
| 153 |
| 154 StoragePartitionRemovalData() : remove_mask(0), |
| 155 quota_storage_remove_mask(0) {} |
| 156 }; |
| 157 |
| 158 class TestStoragePartition : public StoragePartition { |
| 159 public: |
| 160 TestStoragePartition() {} |
| 161 virtual ~TestStoragePartition() {} |
| 162 |
| 163 // content::StoragePartition implementation. |
| 164 virtual base::FilePath GetPath() OVERRIDE { return base::FilePath(); } |
| 165 virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE { |
| 166 return NULL; |
| 167 } |
| 168 virtual net::URLRequestContextGetter* GetMediaURLRequestContext() OVERRIDE { |
| 169 return NULL; |
| 170 } |
| 171 virtual quota::QuotaManager* GetQuotaManager() OVERRIDE { |
| 172 return NULL; |
| 173 } |
| 174 virtual appcache::AppCacheService* GetAppCacheService() OVERRIDE { |
| 175 return NULL; |
| 176 } |
| 177 virtual fileapi::FileSystemContext* GetFileSystemContext() OVERRIDE { |
| 178 return NULL; |
| 179 } |
| 180 virtual webkit_database::DatabaseTracker* GetDatabaseTracker() OVERRIDE { |
| 181 return NULL; |
| 182 } |
| 183 virtual content::DOMStorageContext* GetDOMStorageContext() OVERRIDE { |
| 184 return NULL; |
| 185 } |
| 186 virtual content::IndexedDBContext* GetIndexedDBContext() OVERRIDE { |
| 187 return NULL; |
| 188 } |
| 189 |
| 190 virtual void ClearDataForOrigin( |
| 191 uint32 remove_mask, |
| 192 uint32 quota_storage_remove_mask, |
| 193 const GURL& storage_origin, |
| 194 net::URLRequestContextGetter* rq_context) OVERRIDE {} |
| 195 |
| 196 virtual void ClearData(uint32 remove_mask, |
| 197 uint32 quota_storage_remove_mask, |
| 198 const GURL* storage_origin, |
| 199 const OriginMatcherFunction& origin_matcher, |
| 200 const base::Time begin, |
| 201 const base::Time end, |
| 202 const base::Closure& callback) OVERRIDE { |
| 203 // Store stuff to verify parameters' correctness later. |
| 204 storage_partition_removal_data_.remove_mask = remove_mask; |
| 205 storage_partition_removal_data_.quota_storage_remove_mask = |
| 206 quota_storage_remove_mask; |
| 207 storage_partition_removal_data_.remove_origin = |
| 208 storage_origin ? *storage_origin : GURL(); |
| 209 storage_partition_removal_data_.remove_begin = begin; |
| 210 storage_partition_removal_data_.remove_end = end; |
| 211 storage_partition_removal_data_.origin_matcher = origin_matcher; |
| 212 |
| 213 BrowserThread::PostTask( |
| 214 BrowserThread::UI, |
| 215 FROM_HERE, |
| 216 base::Bind(&TestStoragePartition::AsyncRunCallback, |
| 217 base::Unretained(this), callback)); |
| 218 } |
| 219 |
| 220 StoragePartitionRemovalData GetStoragePartitionRemovalData() { |
| 221 return storage_partition_removal_data_; |
| 222 } |
| 223 private: |
| 224 void AsyncRunCallback(const base::Closure& callback) { |
| 225 callback.Run(); |
| 226 } |
| 227 |
| 228 StoragePartitionRemovalData storage_partition_removal_data_; |
| 229 |
| 230 DISALLOW_COPY_AND_ASSIGN(TestStoragePartition); |
| 231 }; |
| 232 |
189 } // namespace | 233 } // namespace |
190 | 234 |
191 // Testers ------------------------------------------------------------------- | 235 // Testers ------------------------------------------------------------------- |
192 | 236 |
193 class RemoveCookieTester { | 237 class RemoveCookieTester { |
194 public: | 238 public: |
195 RemoveCookieTester() : get_cookie_success_(false), monster_(NULL) { | 239 RemoveCookieTester() : get_cookie_success_(false), monster_(NULL) { |
196 } | 240 } |
197 | 241 |
198 // Returns true, if the given cookie exists in the cookie store. | 242 // Returns true, if the given cookie exists in the cookie store. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 await_completion_.Notify(); | 279 await_completion_.Notify(); |
236 } | 280 } |
237 | 281 |
238 bool get_cookie_success_; | 282 bool get_cookie_success_; |
239 AwaitCompletionHelper await_completion_; | 283 AwaitCompletionHelper await_completion_; |
240 net::CookieStore* monster_; | 284 net::CookieStore* monster_; |
241 | 285 |
242 DISALLOW_COPY_AND_ASSIGN(RemoveCookieTester); | 286 DISALLOW_COPY_AND_ASSIGN(RemoveCookieTester); |
243 }; | 287 }; |
244 | 288 |
245 class RemoveProfileCookieTester : public RemoveCookieTester { | |
246 public: | |
247 explicit RemoveProfileCookieTester(TestingProfile* profile) { | |
248 SetMonster(profile->GetRequestContext()->GetURLRequestContext()-> | |
249 cookie_store()->GetCookieMonster()); | |
250 } | |
251 }; | |
252 | |
253 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) | 289 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) |
254 class RemoveSafeBrowsingCookieTester : public RemoveCookieTester { | 290 class RemoveSafeBrowsingCookieTester : public RemoveCookieTester { |
255 public: | 291 public: |
256 RemoveSafeBrowsingCookieTester() | 292 RemoveSafeBrowsingCookieTester() |
257 : browser_process_(TestingBrowserProcess::GetGlobal()) { | 293 : browser_process_(TestingBrowserProcess::GetGlobal()) { |
258 scoped_refptr<SafeBrowsingService> sb_service = | 294 scoped_refptr<SafeBrowsingService> sb_service = |
259 SafeBrowsingService::CreateSafeBrowsingService(); | 295 SafeBrowsingService::CreateSafeBrowsingService(); |
260 browser_process_->SetSafeBrowsingService(sb_service.get()); | 296 browser_process_->SetSafeBrowsingService(sb_service.get()); |
261 sb_service->Initialize(); | 297 sb_service->Initialize(); |
262 base::MessageLoop::current()->RunUntilIdle(); | 298 base::MessageLoop::current()->RunUntilIdle(); |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 // Otherwise we leak memory. | 618 // Otherwise we leak memory. |
583 profile_.reset(); | 619 profile_.reset(); |
584 base::MessageLoop::current()->RunUntilIdle(); | 620 base::MessageLoop::current()->RunUntilIdle(); |
585 } | 621 } |
586 | 622 |
587 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, | 623 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, |
588 int remove_mask, | 624 int remove_mask, |
589 bool include_protected_origins) { | 625 bool include_protected_origins) { |
590 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( | 626 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
591 profile_.get(), period); | 627 profile_.get(), period); |
592 remover->OverrideQuotaManagerForTesting(GetMockManager()); | 628 |
| 629 TestStoragePartition storage_partition; |
| 630 remover->OverrideStoragePartitionForTesting(&storage_partition); |
593 | 631 |
594 AwaitCompletionHelper await_completion; | 632 AwaitCompletionHelper await_completion; |
595 remover->AddObserver(&await_completion); | 633 remover->AddObserver(&await_completion); |
596 | 634 |
597 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 635 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
598 | 636 |
599 // BrowsingDataRemover deletes itself when it completes. | 637 // BrowsingDataRemover deletes itself when it completes. |
600 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; | 638 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; |
601 if (include_protected_origins) | 639 if (include_protected_origins) |
602 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; | 640 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; |
603 remover->Remove(remove_mask, origin_set_mask); | 641 remover->Remove(remove_mask, origin_set_mask); |
604 await_completion.BlockUntilNotified(); | 642 await_completion.BlockUntilNotified(); |
| 643 |
| 644 // Save so we can verify later. |
| 645 storage_partition_removal_data_ = |
| 646 storage_partition.GetStoragePartitionRemovalData(); |
605 } | 647 } |
606 | 648 |
607 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, | 649 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
608 int remove_mask, | 650 int remove_mask, |
609 const GURL& remove_origin) { | 651 const GURL& remove_origin) { |
610 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( | 652 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
611 profile_.get(), period); | 653 profile_.get(), period); |
612 remover->OverrideQuotaManagerForTesting(GetMockManager()); | 654 TestStoragePartition storage_partition; |
| 655 remover->OverrideStoragePartitionForTesting(&storage_partition); |
613 | 656 |
614 AwaitCompletionHelper await_completion; | 657 AwaitCompletionHelper await_completion; |
615 remover->AddObserver(&await_completion); | 658 remover->AddObserver(&await_completion); |
616 | 659 |
617 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 660 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
618 | 661 |
619 // BrowsingDataRemover deletes itself when it completes. | 662 // BrowsingDataRemover deletes itself when it completes. |
620 remover->RemoveImpl(remove_mask, remove_origin, | 663 remover->RemoveImpl(remove_mask, remove_origin, |
621 BrowsingDataHelper::UNPROTECTED_WEB); | 664 BrowsingDataHelper::UNPROTECTED_WEB); |
622 await_completion.BlockUntilNotified(); | 665 await_completion.BlockUntilNotified(); |
| 666 |
| 667 // Save so we can verify later. |
| 668 storage_partition_removal_data_ = |
| 669 storage_partition.GetStoragePartitionRemovalData(); |
623 } | 670 } |
624 | 671 |
625 TestingProfile* GetProfile() { | 672 TestingProfile* GetProfile() { |
626 return profile_.get(); | 673 return profile_.get(); |
627 } | 674 } |
628 | 675 |
629 base::Time GetBeginTime() { | 676 base::Time GetBeginTime() { |
630 return called_with_details_->removal_begin; | 677 return called_with_details_->removal_begin; |
631 } | 678 } |
632 | 679 |
633 int GetRemovalMask() { | 680 int GetRemovalMask() { |
634 return called_with_details_->removal_mask; | 681 return called_with_details_->removal_mask; |
635 } | 682 } |
636 | 683 |
637 int GetOriginSetMask() { | 684 int GetOriginSetMask() { |
638 return called_with_details_->origin_set_mask; | 685 return called_with_details_->origin_set_mask; |
639 } | 686 } |
640 | 687 |
641 quota::MockQuotaManager* GetMockManager() { | 688 StoragePartitionRemovalData GetStoragePartitionRemovalData() { |
642 if (!quota_manager_.get()) { | 689 return storage_partition_removal_data_; |
643 quota_manager_ = new quota::MockQuotaManager( | |
644 profile_->IsOffTheRecord(), | |
645 profile_->GetPath(), | |
646 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(), | |
647 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), | |
648 profile_->GetExtensionSpecialStoragePolicy()); | |
649 } | |
650 return quota_manager_.get(); | |
651 } | 690 } |
652 | 691 |
653 // content::NotificationObserver implementation. | 692 // content::NotificationObserver implementation. |
654 virtual void Observe(int type, | 693 virtual void Observe(int type, |
655 const content::NotificationSource& source, | 694 const content::NotificationSource& source, |
656 const content::NotificationDetails& details) OVERRIDE { | 695 const content::NotificationDetails& details) OVERRIDE { |
657 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); | 696 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); |
658 | 697 |
659 // We're not taking ownership of the details object, but storing a copy of | 698 // We're not taking ownership of the details object, but storing a copy of |
660 // it locally. | 699 // it locally. |
661 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( | 700 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( |
662 *content::Details<BrowsingDataRemover::NotificationDetails>( | 701 *content::Details<BrowsingDataRemover::NotificationDetails>( |
663 details).ptr())); | 702 details).ptr())); |
664 | 703 |
665 registrar_.RemoveAll(); | 704 registrar_.RemoveAll(); |
666 } | 705 } |
667 | 706 |
668 private: | 707 private: |
669 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; | 708 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; |
670 content::NotificationRegistrar registrar_; | 709 content::NotificationRegistrar registrar_; |
671 | 710 |
672 content::TestBrowserThreadBundle thread_bundle_; | 711 content::TestBrowserThreadBundle thread_bundle_; |
673 scoped_ptr<TestingProfile> profile_; | 712 scoped_ptr<TestingProfile> profile_; |
674 scoped_refptr<quota::MockQuotaManager> quota_manager_; | 713 |
| 714 StoragePartitionRemovalData storage_partition_removal_data_; |
675 | 715 |
676 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); | 716 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); |
677 }; | 717 }; |
678 | 718 |
679 // Tests --------------------------------------------------------------------- | 719 // Tests --------------------------------------------------------------------- |
680 | 720 |
681 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { | 721 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { |
682 RemoveProfileCookieTester tester(GetProfile()); | |
683 | |
684 tester.AddCookie(); | |
685 ASSERT_TRUE(tester.ContainsCookie()); | |
686 | |
687 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 722 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
688 BrowsingDataRemover::REMOVE_COOKIES, false); | 723 BrowsingDataRemover::REMOVE_COOKIES, |
| 724 false); |
689 | 725 |
690 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 726 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
691 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 727 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
692 EXPECT_FALSE(tester.ContainsCookie()); | 728 |
| 729 // Verify that storage partition was instructed to remove the cookies. |
| 730 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 731 EXPECT_EQ(removal_data.remove_mask, |
| 732 static_cast<uint32>( |
| 733 StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
| 734 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 735 static_cast<uint32>( |
| 736 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 737 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 738 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
693 } | 739 } |
694 | 740 |
695 TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) { | 741 TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) { |
696 RemoveProfileCookieTester tester(GetProfile()); | |
697 | |
698 tester.AddCookie(); | |
699 ASSERT_TRUE(tester.ContainsCookie()); | |
700 | |
701 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | 742 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
702 BrowsingDataRemover::REMOVE_COOKIES, false); | 743 BrowsingDataRemover::REMOVE_COOKIES, |
| 744 false); |
703 | 745 |
704 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); | 746 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
705 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 747 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
706 EXPECT_FALSE(tester.ContainsCookie()); | 748 |
| 749 // Verify that storage partition was instructed to remove the cookies. |
| 750 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 751 EXPECT_EQ(removal_data.remove_mask, |
| 752 static_cast<uint32>( |
| 753 StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
| 754 // Removing with time period other than EVERYTHING should not clear |
| 755 // persistent storage data. |
| 756 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 757 static_cast<uint32>( |
| 758 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL & |
| 759 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT)); |
| 760 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 761 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
707 } | 762 } |
708 | 763 |
709 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) | 764 #if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) |
710 TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieForever) { | 765 TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieForever) { |
711 RemoveSafeBrowsingCookieTester tester; | 766 RemoveSafeBrowsingCookieTester tester; |
712 | 767 |
713 tester.AddCookie(); | 768 tester.AddCookie(); |
714 ASSERT_TRUE(tester.ContainsCookie()); | 769 ASSERT_TRUE(tester.ContainsCookie()); |
715 | 770 |
716 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 771 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
778 EXPECT_EQ(kTestOrigin2, certs.front().server_identifier()); | 833 EXPECT_EQ(kTestOrigin2, certs.front().server_identifier()); |
779 } | 834 } |
780 | 835 |
781 TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) { | 836 TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) { |
782 // Protect kOrigin1. | 837 // Protect kOrigin1. |
783 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 838 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
784 new MockExtensionSpecialStoragePolicy; | 839 new MockExtensionSpecialStoragePolicy; |
785 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 840 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
786 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 841 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
787 | 842 |
788 RemoveLocalStorageTester tester(GetProfile()); | |
789 | |
790 tester.AddDOMStorageTestData(); | |
791 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | |
792 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); | |
793 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | |
794 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | |
795 | |
796 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 843 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
797 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false); | 844 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, |
| 845 false); |
798 | 846 |
799 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); | 847 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
800 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 848 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
801 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 849 |
802 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 850 // Verify that storage partition was instructed to remove the data correctly. |
803 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 851 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
804 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 852 EXPECT_EQ(removal_data.remove_mask, |
| 853 static_cast<uint32>( |
| 854 StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE)); |
| 855 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 856 static_cast<uint32>( |
| 857 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 858 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 859 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
| 860 |
| 861 // Check origin matcher. |
| 862 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 863 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 864 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 865 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
805 } | 866 } |
806 | 867 |
807 TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) { | 868 TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) { |
808 // Protect kOrigin1. | 869 // Protect kOrigin1. |
809 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 870 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
810 new MockExtensionSpecialStoragePolicy; | 871 new MockExtensionSpecialStoragePolicy; |
811 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 872 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
812 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 873 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
813 | 874 |
814 RemoveLocalStorageTester tester(GetProfile()); | |
815 | |
816 tester.AddDOMStorageTestData(); | |
817 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | |
818 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); | |
819 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | |
820 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | |
821 | |
822 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 875 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
823 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, true); | 876 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, |
| 877 true); |
824 | 878 |
825 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); | 879 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
826 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | | 880 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB | |
827 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 881 BrowsingDataHelper::PROTECTED_WEB, GetOriginSetMask()); |
828 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 882 |
829 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 883 // Verify that storage partition was instructed to remove the data correctly. |
830 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 884 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
831 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 885 EXPECT_EQ(removal_data.remove_mask, |
| 886 static_cast<uint32>( |
| 887 StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE)); |
| 888 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 889 static_cast<uint32>( |
| 890 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 891 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 892 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
| 893 |
| 894 // Check origin matcher all http origin will match since we specified |
| 895 // both protected and unprotected. |
| 896 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 897 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 898 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 899 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
832 } | 900 } |
833 | 901 |
834 TEST_F(BrowsingDataRemoverTest, RemoveLocalStorageForLastWeek) { | 902 TEST_F(BrowsingDataRemoverTest, RemoveLocalStorageForLastWeek) { |
835 RemoveLocalStorageTester tester(GetProfile()); | 903 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
836 | 904 new MockExtensionSpecialStoragePolicy; |
837 tester.AddDOMStorageTestData(); | 905 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
838 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); | |
839 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); | |
840 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | |
841 | 906 |
842 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, | 907 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, |
843 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false); | 908 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, |
| 909 false); |
844 | 910 |
845 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); | 911 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
846 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 912 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
847 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); | 913 |
848 EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); | 914 // Verify that storage partition was instructed to remove the data correctly. |
849 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); | 915 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
850 EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); | 916 EXPECT_EQ(removal_data.remove_mask, |
| 917 static_cast<uint32>( |
| 918 StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE)); |
| 919 // Persistent storage won't be deleted. |
| 920 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 921 static_cast<uint32>( |
| 922 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL & |
| 923 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT)); |
| 924 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 925 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
| 926 |
| 927 // Check origin matcher. |
| 928 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 929 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 930 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 931 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
851 } | 932 } |
852 | 933 |
853 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { | 934 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { |
854 RemoveHistoryTester tester; | 935 RemoveHistoryTester tester; |
855 ASSERT_TRUE(tester.Init(GetProfile())); | 936 ASSERT_TRUE(tester.Init(GetProfile())); |
856 | 937 |
857 tester.AddHistory(kOrigin1, base::Time::Now()); | 938 tester.AddHistory(kOrigin1, base::Time::Now()); |
858 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); | 939 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); |
859 | 940 |
860 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 941 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
912 } | 993 } |
913 #endif | 994 #endif |
914 | 995 |
915 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypes) { | 996 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypes) { |
916 // Add some history. | 997 // Add some history. |
917 RemoveHistoryTester history_tester; | 998 RemoveHistoryTester history_tester; |
918 ASSERT_TRUE(history_tester.Init(GetProfile())); | 999 ASSERT_TRUE(history_tester.Init(GetProfile())); |
919 history_tester.AddHistory(kOrigin1, base::Time::Now()); | 1000 history_tester.AddHistory(kOrigin1, base::Time::Now()); |
920 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1001 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
921 | 1002 |
922 // Add some cookies. | |
923 RemoveProfileCookieTester cookie_tester(GetProfile()); | |
924 cookie_tester.AddCookie(); | |
925 ASSERT_TRUE(cookie_tester.ContainsCookie()); | |
926 | |
927 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | | 1003 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | |
928 BrowsingDataRemover::REMOVE_COOKIES; | 1004 BrowsingDataRemover::REMOVE_COOKIES; |
929 | 1005 |
930 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1006 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
931 removal_mask, false); | 1007 removal_mask, false); |
932 | 1008 |
933 EXPECT_EQ(removal_mask, GetRemovalMask()); | 1009 EXPECT_EQ(removal_mask, GetRemovalMask()); |
934 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1010 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
935 EXPECT_FALSE(history_tester.HistoryContainsURL(kOrigin1)); | 1011 EXPECT_FALSE(history_tester.HistoryContainsURL(kOrigin1)); |
936 EXPECT_FALSE(cookie_tester.ContainsCookie()); | 1012 |
| 1013 // The cookie would be deleted throught the StorageParition, check if the |
| 1014 // partition was requested to remove cookie. |
| 1015 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1016 EXPECT_EQ(removal_data.remove_mask, |
| 1017 static_cast<uint32>( |
| 1018 StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
| 1019 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1020 static_cast<uint32>( |
| 1021 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
937 } | 1022 } |
938 | 1023 |
939 // This should crash (DCHECK) in Debug, but death tests don't work properly | 1024 // This should crash (DCHECK) in Debug, but death tests don't work properly |
940 // here. | 1025 // here. |
941 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) | 1026 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) |
942 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) { | 1027 TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) { |
943 PrefService* prefs = GetProfile()->GetPrefs(); | 1028 PrefService* prefs = GetProfile()->GetPrefs(); |
944 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); | 1029 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); |
945 | 1030 |
946 // Add some history. | 1031 // Add some history. |
947 RemoveHistoryTester history_tester; | 1032 RemoveHistoryTester history_tester; |
948 ASSERT_TRUE(history_tester.Init(GetProfile())); | 1033 ASSERT_TRUE(history_tester.Init(GetProfile())); |
949 history_tester.AddHistory(kOrigin1, base::Time::Now()); | 1034 history_tester.AddHistory(kOrigin1, base::Time::Now()); |
950 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1035 ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
951 | 1036 |
952 // Add some cookies. | |
953 RemoveProfileCookieTester cookie_tester(GetProfile()); | |
954 cookie_tester.AddCookie(); | |
955 ASSERT_TRUE(cookie_tester.ContainsCookie()); | |
956 | |
957 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | | 1037 int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | |
958 BrowsingDataRemover::REMOVE_COOKIES; | 1038 BrowsingDataRemover::REMOVE_COOKIES; |
959 | 1039 |
960 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | 1040 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
961 removal_mask, false); | 1041 removal_mask, false); |
962 EXPECT_EQ(removal_mask, GetRemovalMask()); | 1042 EXPECT_EQ(removal_mask, GetRemovalMask()); |
963 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1043 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
964 | 1044 |
965 // Cookie should be gone; history should remain. | 1045 // 1/2. History should remain. |
966 EXPECT_FALSE(cookie_tester.ContainsCookie()); | |
967 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1046 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
| 1047 |
| 1048 // 2/2. The cookie(s) would be deleted throught the StorageParition, check if |
| 1049 // the partition was requested to remove cookie. |
| 1050 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1051 EXPECT_EQ(removal_data.remove_mask, |
| 1052 static_cast<uint32>( |
| 1053 StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
| 1054 // Persistent storage won't be deleted, since EVERYTHING was not specified. |
| 1055 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1056 static_cast<uint32>( |
| 1057 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL & |
| 1058 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT)); |
968 } | 1059 } |
969 #endif | 1060 #endif |
970 | 1061 |
971 TEST_F(BrowsingDataRemoverTest, QuotaClientMaskGeneration) { | |
972 EXPECT_EQ(quota::QuotaClient::kFileSystem, | |
973 BrowsingDataRemover::GenerateQuotaClientMask( | |
974 BrowsingDataRemover::REMOVE_FILE_SYSTEMS)); | |
975 EXPECT_EQ(quota::QuotaClient::kDatabase, | |
976 BrowsingDataRemover::GenerateQuotaClientMask( | |
977 BrowsingDataRemover::REMOVE_WEBSQL)); | |
978 EXPECT_EQ(quota::QuotaClient::kAppcache, | |
979 BrowsingDataRemover::GenerateQuotaClientMask( | |
980 BrowsingDataRemover::REMOVE_APPCACHE)); | |
981 EXPECT_EQ(quota::QuotaClient::kIndexedDatabase, | |
982 BrowsingDataRemover::GenerateQuotaClientMask( | |
983 BrowsingDataRemover::REMOVE_INDEXEDDB)); | |
984 EXPECT_EQ(quota::QuotaClient::kFileSystem | | |
985 quota::QuotaClient::kDatabase | | |
986 quota::QuotaClient::kAppcache | | |
987 quota::QuotaClient::kIndexedDatabase, | |
988 BrowsingDataRemover::GenerateQuotaClientMask( | |
989 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | |
990 BrowsingDataRemover::REMOVE_WEBSQL | | |
991 BrowsingDataRemover::REMOVE_APPCACHE | | |
992 BrowsingDataRemover::REMOVE_INDEXEDDB)); | |
993 } | |
994 | |
995 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { | 1062 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { |
996 PopulateTestQuotaManagedData(GetMockManager()); | 1063 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
997 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1064 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
998 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1065 BrowsingDataRemover::REMOVE_WEBSQL | |
999 BrowsingDataRemover::REMOVE_WEBSQL | | 1066 BrowsingDataRemover::REMOVE_APPCACHE | |
1000 BrowsingDataRemover::REMOVE_APPCACHE | | 1067 BrowsingDataRemover::REMOVE_INDEXEDDB, |
1001 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1068 false); |
1002 | 1069 |
1003 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1070 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1004 BrowsingDataRemover::REMOVE_WEBSQL | | 1071 BrowsingDataRemover::REMOVE_WEBSQL | |
1005 BrowsingDataRemover::REMOVE_APPCACHE | | 1072 BrowsingDataRemover::REMOVE_APPCACHE | |
1006 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1073 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1007 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1074 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1008 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1075 |
1009 kClientFile)); | 1076 // Verify storage partition related stuffs. |
1010 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1077 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1011 kClientFile)); | 1078 EXPECT_EQ(removal_data.remove_mask, |
1012 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1079 static_cast<uint32>( |
1013 kClientFile)); | 1080 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1014 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1081 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1015 kClientFile)); | 1082 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1016 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1083 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1017 kClientFile)); | 1084 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1018 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1085 static_cast<uint32>( |
1019 kClientFile)); | 1086 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1087 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
1020 } | 1088 } |
1021 | 1089 |
1022 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { | 1090 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { |
1023 PopulateTestQuotaManagedTemporaryData(GetMockManager()); | 1091 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1024 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1092 new MockExtensionSpecialStoragePolicy; |
1025 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1093 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1026 BrowsingDataRemover::REMOVE_WEBSQL | | 1094 |
1027 BrowsingDataRemover::REMOVE_APPCACHE | | 1095 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1028 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1096 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1029 | 1097 BrowsingDataRemover::REMOVE_WEBSQL | |
1030 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1098 BrowsingDataRemover::REMOVE_APPCACHE | |
1031 BrowsingDataRemover::REMOVE_WEBSQL | | 1099 BrowsingDataRemover::REMOVE_INDEXEDDB, |
1032 BrowsingDataRemover::REMOVE_APPCACHE | | 1100 false); |
1033 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1101 |
1034 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1102 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1035 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1103 BrowsingDataRemover::REMOVE_WEBSQL | |
1036 kClientFile)); | 1104 BrowsingDataRemover::REMOVE_APPCACHE | |
1037 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1105 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1038 kClientFile)); | 1106 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1039 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1107 |
1040 kClientFile)); | 1108 // Verify storage partition related stuffs. |
1041 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1109 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1042 kClientFile)); | 1110 |
1043 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1111 EXPECT_EQ(removal_data.remove_mask, |
1044 kClientFile)); | 1112 static_cast<uint32>( |
1045 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1113 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1046 kClientFile)); | 1114 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1115 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1116 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1117 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1118 static_cast<uint32>( |
| 1119 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1120 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1121 |
| 1122 // Check that all related origin data would be removed, that is, origin |
| 1123 // matcher would match these origin. |
| 1124 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1125 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1126 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1047 } | 1127 } |
1048 | 1128 |
1049 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { | 1129 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { |
1050 PopulateTestQuotaManagedPersistentData(GetMockManager()); | 1130 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1051 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1131 new MockExtensionSpecialStoragePolicy; |
1052 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1132 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1053 BrowsingDataRemover::REMOVE_WEBSQL | | 1133 |
1054 BrowsingDataRemover::REMOVE_APPCACHE | | 1134 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1055 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1135 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1056 | 1136 BrowsingDataRemover::REMOVE_WEBSQL | |
1057 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1137 BrowsingDataRemover::REMOVE_APPCACHE | |
1058 BrowsingDataRemover::REMOVE_WEBSQL | | 1138 BrowsingDataRemover::REMOVE_INDEXEDDB, |
1059 BrowsingDataRemover::REMOVE_APPCACHE | | 1139 false); |
1060 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1140 |
1061 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1141 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1062 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1142 BrowsingDataRemover::REMOVE_WEBSQL | |
1063 kClientFile)); | 1143 BrowsingDataRemover::REMOVE_APPCACHE | |
1064 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1144 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1065 kClientFile)); | 1145 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1066 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1146 |
1067 kClientFile)); | 1147 // Verify storage partition related stuffs. |
1068 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1148 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1069 kClientFile)); | 1149 |
1070 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1150 EXPECT_EQ(removal_data.remove_mask, |
1071 kClientFile)); | 1151 static_cast<uint32>( |
1072 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1152 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1073 kClientFile)); | 1153 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1154 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1155 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1156 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1157 static_cast<uint32>( |
| 1158 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1159 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1160 |
| 1161 // Check that all related origin data would be removed, that is, origin |
| 1162 // matcher would match these origin. |
| 1163 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1164 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1165 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1074 } | 1166 } |
1075 | 1167 |
1076 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { | 1168 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { |
1077 GetMockManager(); // Creates the QuotaManager instance. | 1169 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1078 | 1170 new MockExtensionSpecialStoragePolicy; |
1079 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1171 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1080 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1172 |
1081 BrowsingDataRemover::REMOVE_WEBSQL | | 1173 |
1082 BrowsingDataRemover::REMOVE_APPCACHE | | 1174 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1083 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1175 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1084 | 1176 BrowsingDataRemover::REMOVE_WEBSQL | |
1085 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1177 BrowsingDataRemover::REMOVE_APPCACHE | |
1086 BrowsingDataRemover::REMOVE_WEBSQL | | 1178 BrowsingDataRemover::REMOVE_INDEXEDDB, |
1087 BrowsingDataRemover::REMOVE_APPCACHE | | 1179 false); |
1088 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1180 |
1089 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1181 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1090 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1182 BrowsingDataRemover::REMOVE_WEBSQL | |
1091 kClientFile)); | 1183 BrowsingDataRemover::REMOVE_APPCACHE | |
1092 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1184 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1093 kClientFile)); | 1185 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1094 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1186 |
1095 kClientFile)); | 1187 // Verify storage partition related stuffs. |
1096 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1188 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1097 kClientFile)); | 1189 |
1098 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1190 EXPECT_EQ(removal_data.remove_mask, |
1099 kClientFile)); | 1191 static_cast<uint32>( |
1100 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1192 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1101 kClientFile)); | 1193 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1194 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1195 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1196 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1197 static_cast<uint32>( |
| 1198 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1199 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1200 |
| 1201 // Check that all related origin data would be removed, that is, origin |
| 1202 // matcher would match these origin. |
| 1203 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1204 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1205 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1102 } | 1206 } |
1103 | 1207 |
1104 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { | 1208 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { |
1105 PopulateTestQuotaManagedData(GetMockManager()); | |
1106 | |
1107 // Remove Origin 1. | 1209 // Remove Origin 1. |
1108 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1210 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
1109 BrowsingDataRemover::REMOVE_APPCACHE | | 1211 BrowsingDataRemover::REMOVE_APPCACHE | |
1110 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1212 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1111 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1213 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1112 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1214 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1215 kOrigin1); |
1113 | 1216 |
1114 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1217 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1115 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1218 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1116 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1219 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1117 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1220 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1118 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1221 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1119 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1222 |
1120 kClientFile)); | 1223 // Verify storage partition related stuffs. |
1121 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1224 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1122 kClientFile)); | 1225 |
1123 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1226 EXPECT_EQ(removal_data.remove_mask, |
1124 kClientFile)); | 1227 static_cast<uint32>( |
1125 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1228 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1126 kClientFile)); | 1229 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1127 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1230 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1128 kClientFile)); | 1231 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1129 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1232 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1130 kClientFile)); | 1233 static_cast<uint32>( |
| 1234 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1235 EXPECT_EQ(removal_data.remove_origin, kOrigin1); |
1131 } | 1236 } |
1132 | 1237 |
1133 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { | 1238 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { |
1134 PopulateTestQuotaManagedData(GetMockManager()); | |
1135 | |
1136 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | 1239 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
1137 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1240 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1138 BrowsingDataRemover::REMOVE_WEBSQL | | 1241 BrowsingDataRemover::REMOVE_WEBSQL | |
1139 BrowsingDataRemover::REMOVE_APPCACHE | | 1242 BrowsingDataRemover::REMOVE_APPCACHE | |
1140 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1243 BrowsingDataRemover::REMOVE_INDEXEDDB, |
1141 | 1244 false); |
1142 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1245 |
1143 BrowsingDataRemover::REMOVE_WEBSQL | | 1246 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1144 BrowsingDataRemover::REMOVE_APPCACHE | | 1247 BrowsingDataRemover::REMOVE_WEBSQL | |
1145 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1248 BrowsingDataRemover::REMOVE_APPCACHE | |
1146 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1249 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1147 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1250 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1148 kClientFile)); | 1251 |
1149 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1252 // Verify storage partition related stuffs. |
1150 kClientFile)); | 1253 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1151 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1254 |
1152 kClientFile)); | 1255 EXPECT_EQ(removal_data.remove_mask, |
1153 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1256 static_cast<uint32>( |
1154 kClientFile)); | 1257 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1155 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1258 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1156 kClientFile)); | 1259 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1157 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1260 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1158 kClientFile)); | 1261 |
| 1262 // Persistent data would be left out since we are not removing from |
| 1263 // beginning of time. |
| 1264 uint32 expected_quota_mask = |
| 1265 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT; |
| 1266 EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask); |
| 1267 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1268 // Check removal begin time. |
| 1269 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
1159 } | 1270 } |
1160 | 1271 |
1161 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { | 1272 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { |
1162 PopulateTestQuotaManagedData(GetMockManager()); | |
1163 | |
1164 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, | 1273 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, |
1165 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1274 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1166 BrowsingDataRemover::REMOVE_WEBSQL | | 1275 BrowsingDataRemover::REMOVE_WEBSQL | |
1167 BrowsingDataRemover::REMOVE_APPCACHE | | 1276 BrowsingDataRemover::REMOVE_APPCACHE | |
1168 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1277 BrowsingDataRemover::REMOVE_INDEXEDDB, |
1169 | 1278 false); |
1170 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1279 |
1171 BrowsingDataRemover::REMOVE_WEBSQL | | 1280 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1172 BrowsingDataRemover::REMOVE_APPCACHE | | 1281 BrowsingDataRemover::REMOVE_WEBSQL | |
1173 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1282 BrowsingDataRemover::REMOVE_APPCACHE | |
1174 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1283 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1175 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1284 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1176 kClientFile)); | 1285 |
1177 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1286 // Verify storage partition related stuffs. |
1178 kClientFile)); | 1287 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1179 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1288 |
1180 kClientFile)); | 1289 EXPECT_EQ(removal_data.remove_mask, |
1181 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1290 static_cast<uint32>( |
1182 kClientFile)); | 1291 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1183 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1292 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1184 kClientFile)); | 1293 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1185 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1294 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1186 kClientFile)); | 1295 |
| 1296 // Persistent data would be left out since we are not removing from |
| 1297 // beginning of time. |
| 1298 uint32 expected_quota_mask = |
| 1299 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT; |
| 1300 EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask); |
| 1301 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1302 // Check removal begin time. |
| 1303 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
1187 } | 1304 } |
1188 | 1305 |
1189 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { | 1306 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
1190 // Protect kOrigin1. | 1307 // Protect kOrigin1. |
1191 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1308 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1192 new MockExtensionSpecialStoragePolicy; | 1309 new MockExtensionSpecialStoragePolicy; |
1193 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1310 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1194 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1311 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1195 | 1312 |
1196 PopulateTestQuotaManagedData(GetMockManager()); | |
1197 | |
1198 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1313 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1199 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1314 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1200 BrowsingDataRemover::REMOVE_WEBSQL | | 1315 BrowsingDataRemover::REMOVE_WEBSQL | |
1201 BrowsingDataRemover::REMOVE_APPCACHE | | 1316 BrowsingDataRemover::REMOVE_APPCACHE | |
1202 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1317 BrowsingDataRemover::REMOVE_INDEXEDDB, |
| 1318 false); |
1203 | 1319 |
1204 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1320 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1205 BrowsingDataRemover::REMOVE_WEBSQL | | 1321 BrowsingDataRemover::REMOVE_WEBSQL | |
1206 BrowsingDataRemover::REMOVE_APPCACHE | | 1322 BrowsingDataRemover::REMOVE_APPCACHE | |
1207 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1323 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1208 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1324 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1209 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1325 |
1210 kClientFile)); | 1326 // Verify storage partition related stuffs. |
1211 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1327 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1212 kClientFile)); | 1328 |
1213 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1329 EXPECT_EQ(removal_data.remove_mask, |
1214 kClientFile)); | 1330 static_cast<uint32>( |
1215 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1331 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1216 kClientFile)); | 1332 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1217 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1333 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1218 kClientFile)); | 1334 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1219 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1335 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1220 kClientFile)); | 1336 static_cast<uint32>( |
| 1337 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1338 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1339 |
| 1340 // Check OriginMatcherFunction, |kOrigin1| would not match mask since it |
| 1341 // is protected. |
| 1342 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1343 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1344 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1221 } | 1345 } |
1222 | 1346 |
1223 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { | 1347 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
1224 // Protect kOrigin1. | 1348 // Protect kOrigin1. |
1225 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1349 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1226 new MockExtensionSpecialStoragePolicy; | 1350 new MockExtensionSpecialStoragePolicy; |
1227 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1351 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1228 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1352 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1229 | 1353 |
1230 PopulateTestQuotaManagedData(GetMockManager()); | |
1231 | |
1232 // Try to remove kOrigin1. Expect failure. | 1354 // Try to remove kOrigin1. Expect failure. |
1233 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1355 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
1234 BrowsingDataRemover::REMOVE_APPCACHE | | 1356 BrowsingDataRemover::REMOVE_APPCACHE | |
1235 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1357 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1236 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1358 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1237 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1359 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1360 kOrigin1); |
1238 | 1361 |
1239 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1362 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1240 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1363 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1241 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1364 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1242 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1365 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1243 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1366 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1244 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1367 |
1245 kClientFile)); | 1368 // Verify storage partition related stuffs. |
1246 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1369 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1247 kClientFile)); | 1370 |
1248 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1371 EXPECT_EQ(removal_data.remove_mask, |
1249 kClientFile)); | 1372 static_cast<uint32>( |
1250 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1373 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1251 kClientFile)); | 1374 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1252 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1375 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1253 kClientFile)); | 1376 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1254 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1377 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1255 kClientFile)); | 1378 static_cast<uint32>( |
| 1379 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1380 EXPECT_EQ(removal_data.remove_origin, kOrigin1); |
| 1381 |
| 1382 // Check OriginMatcherFunction, |kOrigin1| would not match mask since it |
| 1383 // is protected. |
| 1384 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1385 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1386 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1256 } | 1387 } |
1257 | 1388 |
1258 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { | 1389 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { |
1259 // Protect kOrigin1. | 1390 // Protect kOrigin1. |
1260 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1391 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1261 new MockExtensionSpecialStoragePolicy; | 1392 new MockExtensionSpecialStoragePolicy; |
1262 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1393 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1263 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1394 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1264 | 1395 |
1265 PopulateTestQuotaManagedData(GetMockManager()); | |
1266 | |
1267 // Try to remove kOrigin1. Expect success. | 1396 // Try to remove kOrigin1. Expect success. |
1268 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1397 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1269 BrowsingDataRemover::REMOVE_APPCACHE | | 1398 BrowsingDataRemover::REMOVE_APPCACHE | |
1270 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1399 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1271 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1400 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1272 BrowsingDataRemover::REMOVE_WEBSQL, true); | 1401 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1402 true); |
1273 | 1403 |
1274 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1404 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1275 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1405 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1276 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1406 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1277 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1407 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1278 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | | 1408 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | |
1279 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1409 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1280 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1410 |
1281 kClientFile)); | 1411 // Verify storage partition related stuffs. |
1282 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1412 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1283 kClientFile)); | 1413 |
1284 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1414 EXPECT_EQ(removal_data.remove_mask, |
1285 kClientFile)); | 1415 static_cast<uint32>( |
1286 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1416 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1287 kClientFile)); | 1417 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1288 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1418 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1289 kClientFile)); | 1419 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1290 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1420 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1291 kClientFile)); | 1421 static_cast<uint32>( |
| 1422 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1423 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1424 |
| 1425 // Check OriginMatcherFunction, |kOrigin1| would match mask since we |
| 1426 // would have 'protected' specified in origin_set_mask. |
| 1427 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1428 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1429 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1292 } | 1430 } |
1293 | 1431 |
1294 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { | 1432 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { |
1295 PopulateTestQuotaManagedNonBrowsingData(GetMockManager()); | 1433 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1434 new MockExtensionSpecialStoragePolicy; |
| 1435 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1296 | 1436 |
1297 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1437 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
1298 BrowsingDataRemover::REMOVE_APPCACHE | | 1438 BrowsingDataRemover::REMOVE_APPCACHE | |
1299 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1439 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1300 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1440 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1301 BrowsingDataRemover::REMOVE_WEBSQL, false); | 1441 BrowsingDataRemover::REMOVE_WEBSQL, |
| 1442 false); |
1302 | 1443 |
1303 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1444 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1304 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1445 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1305 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1446 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1306 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1447 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1307 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1448 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1308 | 1449 |
1309 // Check that extension and devtools data isn't removed. | 1450 // Verify storage partition related stuffs. |
1310 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary, | 1451 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1311 kClientFile)); | 1452 |
1312 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent, | 1453 EXPECT_EQ(removal_data.remove_mask, |
1313 kClientFile)); | 1454 static_cast<uint32>( |
1314 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary, | 1455 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1315 kClientFile)); | 1456 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1316 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent, | 1457 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1317 kClientFile)); | 1458 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1459 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1460 static_cast<uint32>( |
| 1461 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1462 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1463 |
| 1464 // Check that extension and devtools data wouldn't be removed, that is, |
| 1465 // origin matcher would not match these origin. |
| 1466 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
| 1467 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginDevTools, mock_policy)); |
1318 } | 1468 } |
1319 | 1469 |
1320 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { | 1470 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
1321 RemoveHistoryTester tester; | 1471 RemoveHistoryTester tester; |
1322 ASSERT_TRUE(tester.Init(GetProfile())); | 1472 ASSERT_TRUE(tester.Init(GetProfile())); |
1323 | 1473 |
1324 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1474 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
1325 | 1475 |
1326 tester.AddHistory(kOrigin1, base::Time::Now()); | 1476 tester.AddHistory(kOrigin1, base::Time::Now()); |
1327 tester.AddHistory(kOrigin2, two_hours_ago); | 1477 tester.AddHistory(kOrigin2, two_hours_ago); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1431 // Expect exactly one call. No calls means no attempt to delete keys and more | 1581 // Expect exactly one call. No calls means no attempt to delete keys and more |
1432 // than one call means a significant performance problem. | 1582 // than one call means a significant performance problem. |
1433 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) | 1583 EXPECT_CALL(*cryptohome_client, TpmAttestationDeleteKeys(_, _, _, _)) |
1434 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); | 1584 .WillOnce(WithArgs<3>(Invoke(FakeDBusCall))); |
1435 | 1585 |
1436 BlockUntilBrowsingDataRemoved( | 1586 BlockUntilBrowsingDataRemoved( |
1437 BrowsingDataRemover::EVERYTHING, | 1587 BrowsingDataRemover::EVERYTHING, |
1438 BrowsingDataRemover::REMOVE_CONTENT_LICENSES, false); | 1588 BrowsingDataRemover::REMOVE_CONTENT_LICENSES, false); |
1439 } | 1589 } |
1440 #endif | 1590 #endif |
OLD | NEW |