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 26 matching lines...) Expand all Loading... |
37 #include "content/public/browser/storage_partition.h" | 37 #include "content/public/browser/storage_partition.h" |
38 #include "content/public/test/test_browser_thread.h" | 38 #include "content/public/test/test_browser_thread.h" |
39 #include "content/public/test/test_browser_thread_bundle.h" | 39 #include "content/public/test/test_browser_thread_bundle.h" |
40 #include "net/cookies/cookie_monster.h" | 40 #include "net/cookies/cookie_monster.h" |
41 #include "net/ssl/server_bound_cert_service.h" | 41 #include "net/ssl/server_bound_cert_service.h" |
42 #include "net/ssl/server_bound_cert_store.h" | 42 #include "net/ssl/server_bound_cert_store.h" |
43 #include "net/ssl/ssl_client_cert_type.h" | 43 #include "net/ssl/ssl_client_cert_type.h" |
44 #include "net/url_request/url_request_context.h" | 44 #include "net/url_request/url_request_context.h" |
45 #include "net/url_request/url_request_context_getter.h" | 45 #include "net/url_request/url_request_context_getter.h" |
46 #include "testing/gtest/include/gtest/gtest.h" | 46 #include "testing/gtest/include/gtest/gtest.h" |
47 #include "webkit/browser/quota/mock_quota_manager.h" | |
48 #include "webkit/browser/quota/quota_manager.h" | |
49 #include "webkit/common/quota/quota_types.h" | |
50 | 47 |
51 using content::BrowserThread; | 48 using content::BrowserThread; |
| 49 using content::StoragePartition; |
52 | 50 |
53 namespace { | 51 namespace { |
54 | 52 |
55 const char kTestOrigin1[] = "http://host1:1/"; | 53 const char kTestOrigin1[] = "http://host1:1/"; |
56 const char kTestOrigin2[] = "http://host2:1/"; | 54 const char kTestOrigin2[] = "http://host2:1/"; |
57 const char kTestOrigin3[] = "http://host3:1/"; | 55 const char kTestOrigin3[] = "http://host3:1/"; |
58 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; | 56 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; |
59 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; | 57 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; |
60 | 58 |
61 // For Autofill. | 59 // For Autofill. |
(...skipping 11 matching lines...) Expand all Loading... |
73 | 71 |
74 const base::FilePath::CharType kDomStorageOrigin2[] = | 72 const base::FilePath::CharType kDomStorageOrigin2[] = |
75 FILE_PATH_LITERAL("http_host2_1.localstorage"); | 73 FILE_PATH_LITERAL("http_host2_1.localstorage"); |
76 | 74 |
77 const base::FilePath::CharType kDomStorageOrigin3[] = | 75 const base::FilePath::CharType kDomStorageOrigin3[] = |
78 FILE_PATH_LITERAL("http_host3_1.localstorage"); | 76 FILE_PATH_LITERAL("http_host3_1.localstorage"); |
79 | 77 |
80 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL( | 78 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL( |
81 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage"); | 79 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage"); |
82 | 80 |
83 const quota::StorageType kTemporary = quota::kStorageTypeTemporary; | |
84 const quota::StorageType kPersistent = quota::kStorageTypePersistent; | |
85 | |
86 const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; | |
87 | |
88 void PopulateTestQuotaManagedNonBrowsingData(quota::MockQuotaManager* manager) { | |
89 manager->AddOrigin(kOriginDevTools, kTemporary, kClientFile, base::Time()); | |
90 manager->AddOrigin(kOriginDevTools, kPersistent, kClientFile, base::Time()); | |
91 manager->AddOrigin(kOriginExt, kTemporary, kClientFile, base::Time()); | |
92 manager->AddOrigin(kOriginExt, kPersistent, kClientFile, base::Time()); | |
93 } | |
94 | |
95 void PopulateTestQuotaManagedPersistentData(quota::MockQuotaManager* manager) { | |
96 manager->AddOrigin(kOrigin2, kPersistent, kClientFile, base::Time()); | |
97 manager->AddOrigin(kOrigin3, kPersistent, kClientFile, | |
98 base::Time::Now() - base::TimeDelta::FromDays(1)); | |
99 | |
100 EXPECT_FALSE(manager->OriginHasData(kOrigin1, kPersistent, kClientFile)); | |
101 EXPECT_TRUE(manager->OriginHasData(kOrigin2, kPersistent, kClientFile)); | |
102 EXPECT_TRUE(manager->OriginHasData(kOrigin3, kPersistent, kClientFile)); | |
103 } | |
104 | |
105 void PopulateTestQuotaManagedTemporaryData(quota::MockQuotaManager* manager) { | |
106 manager->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now()); | |
107 manager->AddOrigin(kOrigin3, kTemporary, kClientFile, | |
108 base::Time::Now() - base::TimeDelta::FromDays(1)); | |
109 | |
110 EXPECT_TRUE(manager->OriginHasData(kOrigin1, kTemporary, kClientFile)); | |
111 EXPECT_FALSE(manager->OriginHasData(kOrigin2, kTemporary, kClientFile)); | |
112 EXPECT_TRUE(manager->OriginHasData(kOrigin3, kTemporary, kClientFile)); | |
113 } | |
114 | |
115 void PopulateTestQuotaManagedData(quota::MockQuotaManager* manager) { | |
116 // Set up kOrigin1 with a temporary quota, kOrigin2 with a persistent | |
117 // quota, and kOrigin3 with both. kOrigin1 is modified now, kOrigin2 | |
118 // is modified at the beginning of time, and kOrigin3 is modified one day | |
119 // ago. | |
120 PopulateTestQuotaManagedPersistentData(manager); | |
121 PopulateTestQuotaManagedTemporaryData(manager); | |
122 } | |
123 | |
124 class AwaitCompletionHelper : public BrowsingDataRemover::Observer { | 81 class AwaitCompletionHelper : public BrowsingDataRemover::Observer { |
125 public: | 82 public: |
126 AwaitCompletionHelper() : start_(false), already_quit_(false) {} | 83 AwaitCompletionHelper() : start_(false), already_quit_(false) {} |
127 virtual ~AwaitCompletionHelper() {} | 84 virtual ~AwaitCompletionHelper() {} |
128 | 85 |
129 void BlockUntilNotified() { | 86 void BlockUntilNotified() { |
130 if (!already_quit_) { | 87 if (!already_quit_) { |
131 DCHECK(!start_); | 88 DCHECK(!start_); |
132 start_ = true; | 89 start_ = true; |
133 base::MessageLoop::current()->Run(); | 90 base::MessageLoop::current()->Run(); |
(...skipping 22 matching lines...) Expand all Loading... |
156 | 113 |
157 private: | 114 private: |
158 // Helps prevent from running message_loop, if the callback invoked | 115 // Helps prevent from running message_loop, if the callback invoked |
159 // immediately. | 116 // immediately. |
160 bool start_; | 117 bool start_; |
161 bool already_quit_; | 118 bool already_quit_; |
162 | 119 |
163 DISALLOW_COPY_AND_ASSIGN(AwaitCompletionHelper); | 120 DISALLOW_COPY_AND_ASSIGN(AwaitCompletionHelper); |
164 }; | 121 }; |
165 | 122 |
| 123 struct StoragePartitionRemovalData { |
| 124 uint32 remove_mask; |
| 125 uint32 quota_storage_remove_mask; |
| 126 GURL remove_origin; |
| 127 base::Time remove_begin; |
| 128 base::Time remove_end; |
| 129 StoragePartition::OriginMatcherFunction origin_matcher; |
| 130 |
| 131 StoragePartitionRemovalData() : remove_mask(0), |
| 132 quota_storage_remove_mask(0) {} |
| 133 }; |
| 134 |
| 135 class TestStoragePartition : public StoragePartition { |
| 136 public: |
| 137 TestStoragePartition() {} |
| 138 virtual ~TestStoragePartition() {} |
| 139 |
| 140 // content::StoragePartition implementation. |
| 141 virtual base::FilePath GetPath() OVERRIDE { return base::FilePath(); } |
| 142 virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE { |
| 143 return NULL; |
| 144 } |
| 145 virtual net::URLRequestContextGetter* GetMediaURLRequestContext() OVERRIDE { |
| 146 return NULL; |
| 147 } |
| 148 virtual quota::QuotaManager* GetQuotaManager() OVERRIDE { |
| 149 return NULL; |
| 150 } |
| 151 virtual appcache::AppCacheService* GetAppCacheService() OVERRIDE { |
| 152 return NULL; |
| 153 } |
| 154 virtual fileapi::FileSystemContext* GetFileSystemContext() OVERRIDE { |
| 155 return NULL; |
| 156 } |
| 157 virtual webkit_database::DatabaseTracker* GetDatabaseTracker() OVERRIDE { |
| 158 return NULL; |
| 159 } |
| 160 virtual content::DOMStorageContext* GetDOMStorageContext() OVERRIDE { |
| 161 return NULL; |
| 162 } |
| 163 virtual content::IndexedDBContext* GetIndexedDBContext() OVERRIDE { |
| 164 return NULL; |
| 165 } |
| 166 |
| 167 virtual void ClearDataForOrigin( |
| 168 uint32 remove_mask, |
| 169 uint32 quota_storage_remove_mask, |
| 170 const GURL& storage_origin, |
| 171 net::URLRequestContextGetter* rq_context) OVERRIDE {} |
| 172 |
| 173 virtual void ClearDataForUnboundedRange( |
| 174 uint32 remove_mask, |
| 175 uint32 quota_storage_remove_mask) OVERRIDE {} |
| 176 |
| 177 virtual void ClearDataForRange(uint32 remove_mask, |
| 178 uint32 quota_storage_remove_mask, |
| 179 const base::Time begin, |
| 180 const base::Time end, |
| 181 const base::Closure& callback) OVERRIDE {} |
| 182 |
| 183 virtual void ClearDataForOriginWithinRange( |
| 184 uint32 remove_mask, |
| 185 uint32 quota_storage_remove_mask, |
| 186 const GURL& storage_origin, |
| 187 const OriginMatcherFunction& origin_matcher, |
| 188 const base::Time begin, |
| 189 const base::Time end, |
| 190 const base::Closure& callback) OVERRIDE { |
| 191 // Store stuff to verify parameters' correctness later. |
| 192 storage_partition_removal_data_.remove_mask = remove_mask; |
| 193 storage_partition_removal_data_.quota_storage_remove_mask = |
| 194 quota_storage_remove_mask; |
| 195 storage_partition_removal_data_.remove_origin = storage_origin; |
| 196 storage_partition_removal_data_.remove_begin = begin; |
| 197 storage_partition_removal_data_.remove_end = end; |
| 198 storage_partition_removal_data_.origin_matcher = origin_matcher; |
| 199 |
| 200 BrowserThread::PostTask( |
| 201 BrowserThread::UI, |
| 202 FROM_HERE, |
| 203 base::Bind(&TestStoragePartition::AsyncRunCallback, |
| 204 base::Unretained(this), callback)); |
| 205 } |
| 206 |
| 207 StoragePartitionRemovalData GetStoragePartitionRemovalData() { |
| 208 return storage_partition_removal_data_; |
| 209 } |
| 210 private: |
| 211 void AsyncRunCallback(const base::Closure& callback) { |
| 212 callback.Run(); |
| 213 } |
| 214 |
| 215 StoragePartitionRemovalData storage_partition_removal_data_; |
| 216 |
| 217 DISALLOW_COPY_AND_ASSIGN(TestStoragePartition); |
| 218 }; |
| 219 |
166 } // namespace | 220 } // namespace |
167 | 221 |
168 // Testers ------------------------------------------------------------------- | 222 // Testers ------------------------------------------------------------------- |
169 | 223 |
170 class RemoveCookieTester { | 224 class RemoveCookieTester { |
171 public: | 225 public: |
172 RemoveCookieTester() : get_cookie_success_(false), monster_(NULL) { | 226 RemoveCookieTester() : get_cookie_success_(false), monster_(NULL) { |
173 } | 227 } |
174 | 228 |
175 // Returns true, if the given cookie exists in the cookie store. | 229 // Returns true, if the given cookie exists in the cookie store. |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 // Otherwise we leak memory. | 613 // Otherwise we leak memory. |
560 profile_.reset(); | 614 profile_.reset(); |
561 base::MessageLoop::current()->RunUntilIdle(); | 615 base::MessageLoop::current()->RunUntilIdle(); |
562 } | 616 } |
563 | 617 |
564 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, | 618 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, |
565 int remove_mask, | 619 int remove_mask, |
566 bool include_protected_origins) { | 620 bool include_protected_origins) { |
567 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( | 621 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
568 profile_.get(), period); | 622 profile_.get(), period); |
569 remover->OverrideQuotaManagerForTesting(GetMockManager()); | |
570 | 623 |
571 AwaitCompletionHelper await_completion; | 624 AwaitCompletionHelper await_completion; |
572 remover->AddObserver(&await_completion); | 625 remover->AddObserver(&await_completion); |
573 | 626 |
574 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 627 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
575 | 628 |
576 // BrowsingDataRemover deletes itself when it completes. | 629 // BrowsingDataRemover deletes itself when it completes. |
577 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; | 630 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; |
578 if (include_protected_origins) | 631 if (include_protected_origins) |
579 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; | 632 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; |
580 remover->Remove(remove_mask, origin_set_mask); | 633 remover->Remove(remove_mask, origin_set_mask); |
581 await_completion.BlockUntilNotified(); | 634 await_completion.BlockUntilNotified(); |
582 } | 635 } |
583 | 636 |
584 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, | 637 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
585 int remove_mask, | 638 int remove_mask, |
586 const GURL& remove_origin) { | 639 const GURL& remove_origin) { |
587 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( | 640 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
588 profile_.get(), period); | 641 profile_.get(), period); |
589 remover->OverrideQuotaManagerForTesting(GetMockManager()); | |
590 | 642 |
591 AwaitCompletionHelper await_completion; | 643 AwaitCompletionHelper await_completion; |
592 remover->AddObserver(&await_completion); | 644 remover->AddObserver(&await_completion); |
593 | 645 |
594 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 646 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
595 | 647 |
596 // BrowsingDataRemover deletes itself when it completes. | 648 // BrowsingDataRemover deletes itself when it completes. |
597 remover->RemoveImpl(remove_mask, remove_origin, | 649 remover->RemoveImpl(remove_mask, remove_origin, |
598 BrowsingDataHelper::UNPROTECTED_WEB); | 650 BrowsingDataHelper::UNPROTECTED_WEB); |
599 await_completion.BlockUntilNotified(); | 651 await_completion.BlockUntilNotified(); |
600 } | 652 } |
601 | 653 |
| 654 void BlockUntilStoragePartitionDataRemoved( |
| 655 BrowsingDataRemover::TimePeriod period, |
| 656 int remove_mask, |
| 657 bool include_protected_origins) { |
| 658 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
| 659 profile_.get(), period); |
| 660 TestStoragePartition storage_partition; |
| 661 remover->OverrideStoragePartitionForTesting(&storage_partition); |
| 662 |
| 663 AwaitCompletionHelper await_completion; |
| 664 remover->AddObserver(&await_completion); |
| 665 |
| 666 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 667 |
| 668 // BrowsingDataRemover deletes itself when it completes. |
| 669 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; |
| 670 if (include_protected_origins) |
| 671 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; |
| 672 remover->Remove(remove_mask, origin_set_mask); |
| 673 await_completion.BlockUntilNotified(); |
| 674 |
| 675 // Save so we can verify later. |
| 676 storage_partition_removal_data_ = |
| 677 storage_partition.GetStoragePartitionRemovalData(); |
| 678 } |
| 679 |
| 680 void BlockUntilStoragePartitionDataForOriginRemoved( |
| 681 BrowsingDataRemover::TimePeriod period, |
| 682 int remove_mask, |
| 683 const GURL& remove_origin) { |
| 684 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
| 685 profile_.get(), period); |
| 686 TestStoragePartition storage_partition; |
| 687 remover->OverrideStoragePartitionForTesting(&storage_partition); |
| 688 |
| 689 AwaitCompletionHelper await_completion; |
| 690 remover->AddObserver(&await_completion); |
| 691 |
| 692 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 693 |
| 694 // BrowsingDataRemover deletes itself when it completes. |
| 695 remover->RemoveImpl(remove_mask, remove_origin, |
| 696 BrowsingDataHelper::UNPROTECTED_WEB); |
| 697 await_completion.BlockUntilNotified(); |
| 698 |
| 699 // Save so we can verify later. |
| 700 storage_partition_removal_data_ = |
| 701 storage_partition.GetStoragePartitionRemovalData(); |
| 702 } |
| 703 |
602 TestingProfile* GetProfile() { | 704 TestingProfile* GetProfile() { |
603 return profile_.get(); | 705 return profile_.get(); |
604 } | 706 } |
605 | 707 |
606 base::Time GetBeginTime() { | 708 base::Time GetBeginTime() { |
607 return called_with_details_->removal_begin; | 709 return called_with_details_->removal_begin; |
608 } | 710 } |
609 | 711 |
610 int GetRemovalMask() { | 712 int GetRemovalMask() { |
611 return called_with_details_->removal_mask; | 713 return called_with_details_->removal_mask; |
612 } | 714 } |
613 | 715 |
614 int GetOriginSetMask() { | 716 int GetOriginSetMask() { |
615 return called_with_details_->origin_set_mask; | 717 return called_with_details_->origin_set_mask; |
616 } | 718 } |
617 | 719 |
618 quota::MockQuotaManager* GetMockManager() { | 720 StoragePartitionRemovalData GetStoragePartitionRemovalData() { |
619 if (!quota_manager_.get()) { | 721 return storage_partition_removal_data_; |
620 quota_manager_ = new quota::MockQuotaManager( | |
621 profile_->IsOffTheRecord(), | |
622 profile_->GetPath(), | |
623 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(), | |
624 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), | |
625 profile_->GetExtensionSpecialStoragePolicy()); | |
626 } | |
627 return quota_manager_.get(); | |
628 } | 722 } |
629 | 723 |
630 // content::NotificationObserver implementation. | 724 // content::NotificationObserver implementation. |
631 virtual void Observe(int type, | 725 virtual void Observe(int type, |
632 const content::NotificationSource& source, | 726 const content::NotificationSource& source, |
633 const content::NotificationDetails& details) OVERRIDE { | 727 const content::NotificationDetails& details) OVERRIDE { |
634 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); | 728 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); |
635 | 729 |
636 // We're not taking ownership of the details object, but storing a copy of | 730 // We're not taking ownership of the details object, but storing a copy of |
637 // it locally. | 731 // it locally. |
638 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( | 732 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( |
639 *content::Details<BrowsingDataRemover::NotificationDetails>( | 733 *content::Details<BrowsingDataRemover::NotificationDetails>( |
640 details).ptr())); | 734 details).ptr())); |
641 | 735 |
642 registrar_.RemoveAll(); | 736 registrar_.RemoveAll(); |
643 } | 737 } |
644 | 738 |
645 private: | 739 private: |
646 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; | 740 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; |
647 content::NotificationRegistrar registrar_; | 741 content::NotificationRegistrar registrar_; |
648 | 742 |
649 content::TestBrowserThreadBundle thread_bundle_; | 743 content::TestBrowserThreadBundle thread_bundle_; |
650 scoped_ptr<TestingProfile> profile_; | 744 scoped_ptr<TestingProfile> profile_; |
651 scoped_refptr<quota::MockQuotaManager> quota_manager_; | 745 |
| 746 StoragePartitionRemovalData storage_partition_removal_data_; |
652 | 747 |
653 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); | 748 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); |
654 }; | 749 }; |
655 | 750 |
656 // Tests --------------------------------------------------------------------- | 751 // Tests --------------------------------------------------------------------- |
657 | 752 |
658 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { | 753 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { |
659 RemoveProfileCookieTester tester(GetProfile()); | 754 RemoveProfileCookieTester tester(GetProfile()); |
660 | 755 |
661 tester.AddCookie(); | 756 tester.AddCookie(); |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
938 removal_mask, false); | 1033 removal_mask, false); |
939 EXPECT_EQ(removal_mask, GetRemovalMask()); | 1034 EXPECT_EQ(removal_mask, GetRemovalMask()); |
940 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1035 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
941 | 1036 |
942 // Cookie should be gone; history should remain. | 1037 // Cookie should be gone; history should remain. |
943 EXPECT_FALSE(cookie_tester.ContainsCookie()); | 1038 EXPECT_FALSE(cookie_tester.ContainsCookie()); |
944 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1039 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
945 } | 1040 } |
946 #endif | 1041 #endif |
947 | 1042 |
948 TEST_F(BrowsingDataRemoverTest, QuotaClientMaskGeneration) { | |
949 EXPECT_EQ(quota::QuotaClient::kFileSystem, | |
950 BrowsingDataRemover::GenerateQuotaClientMask( | |
951 BrowsingDataRemover::REMOVE_FILE_SYSTEMS)); | |
952 EXPECT_EQ(quota::QuotaClient::kDatabase, | |
953 BrowsingDataRemover::GenerateQuotaClientMask( | |
954 BrowsingDataRemover::REMOVE_WEBSQL)); | |
955 EXPECT_EQ(quota::QuotaClient::kAppcache, | |
956 BrowsingDataRemover::GenerateQuotaClientMask( | |
957 BrowsingDataRemover::REMOVE_APPCACHE)); | |
958 EXPECT_EQ(quota::QuotaClient::kIndexedDatabase, | |
959 BrowsingDataRemover::GenerateQuotaClientMask( | |
960 BrowsingDataRemover::REMOVE_INDEXEDDB)); | |
961 EXPECT_EQ(quota::QuotaClient::kFileSystem | | |
962 quota::QuotaClient::kDatabase | | |
963 quota::QuotaClient::kAppcache | | |
964 quota::QuotaClient::kIndexedDatabase, | |
965 BrowsingDataRemover::GenerateQuotaClientMask( | |
966 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | |
967 BrowsingDataRemover::REMOVE_WEBSQL | | |
968 BrowsingDataRemover::REMOVE_APPCACHE | | |
969 BrowsingDataRemover::REMOVE_INDEXEDDB)); | |
970 } | |
971 | |
972 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { | 1043 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { |
973 PopulateTestQuotaManagedData(GetMockManager()); | 1044 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
974 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | |
975 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1045 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
976 BrowsingDataRemover::REMOVE_WEBSQL | | 1046 BrowsingDataRemover::REMOVE_WEBSQL | |
977 BrowsingDataRemover::REMOVE_APPCACHE | | 1047 BrowsingDataRemover::REMOVE_APPCACHE | |
978 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1048 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
979 | 1049 |
980 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1050 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
981 BrowsingDataRemover::REMOVE_WEBSQL | | 1051 BrowsingDataRemover::REMOVE_WEBSQL | |
982 BrowsingDataRemover::REMOVE_APPCACHE | | 1052 BrowsingDataRemover::REMOVE_APPCACHE | |
983 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1053 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
984 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1054 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
985 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1055 |
986 kClientFile)); | 1056 // Verify storage partition related stuffs. |
987 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1057 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
988 kClientFile)); | 1058 EXPECT_EQ(removal_data.remove_mask, |
989 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1059 static_cast<uint32>( |
990 kClientFile)); | 1060 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
991 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1061 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
992 kClientFile)); | 1062 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
993 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1063 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
994 kClientFile)); | 1064 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
995 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1065 static_cast<uint32>( |
996 kClientFile)); | 1066 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1067 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
997 } | 1068 } |
998 | 1069 |
999 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { | 1070 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { |
1000 PopulateTestQuotaManagedTemporaryData(GetMockManager()); | 1071 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1001 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1072 new MockExtensionSpecialStoragePolicy; |
| 1073 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1074 |
| 1075 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
1002 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1076 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1003 BrowsingDataRemover::REMOVE_WEBSQL | | 1077 BrowsingDataRemover::REMOVE_WEBSQL | |
1004 BrowsingDataRemover::REMOVE_APPCACHE | | 1078 BrowsingDataRemover::REMOVE_APPCACHE | |
1005 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1079 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1006 | 1080 |
1007 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1081 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1008 BrowsingDataRemover::REMOVE_WEBSQL | | 1082 BrowsingDataRemover::REMOVE_WEBSQL | |
1009 BrowsingDataRemover::REMOVE_APPCACHE | | 1083 BrowsingDataRemover::REMOVE_APPCACHE | |
1010 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1084 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1011 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1085 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1012 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1086 |
1013 kClientFile)); | 1087 // Verify storage partition related stuffs. |
1014 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1088 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1015 kClientFile)); | 1089 |
1016 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1090 EXPECT_EQ(removal_data.remove_mask, |
1017 kClientFile)); | 1091 static_cast<uint32>( |
1018 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1092 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1019 kClientFile)); | 1093 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1020 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1094 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1021 kClientFile)); | 1095 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1022 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1096 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1023 kClientFile)); | 1097 static_cast<uint32>( |
| 1098 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1099 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1100 |
| 1101 // Check that all related origin data would be removed, that is, origin |
| 1102 // matcher would match these origin. |
| 1103 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1104 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1105 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1024 } | 1106 } |
1025 | 1107 |
1026 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { | 1108 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { |
1027 PopulateTestQuotaManagedPersistentData(GetMockManager()); | 1109 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1028 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1110 new MockExtensionSpecialStoragePolicy; |
| 1111 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1112 |
| 1113 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
1029 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1114 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1030 BrowsingDataRemover::REMOVE_WEBSQL | | 1115 BrowsingDataRemover::REMOVE_WEBSQL | |
1031 BrowsingDataRemover::REMOVE_APPCACHE | | 1116 BrowsingDataRemover::REMOVE_APPCACHE | |
1032 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1117 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1033 | 1118 |
1034 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1119 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1035 BrowsingDataRemover::REMOVE_WEBSQL | | 1120 BrowsingDataRemover::REMOVE_WEBSQL | |
1036 BrowsingDataRemover::REMOVE_APPCACHE | | 1121 BrowsingDataRemover::REMOVE_APPCACHE | |
1037 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1122 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1038 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1123 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1039 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1124 |
1040 kClientFile)); | 1125 // Verify storage partition related stuffs. |
1041 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1126 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1042 kClientFile)); | 1127 |
1043 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1128 EXPECT_EQ(removal_data.remove_mask, |
1044 kClientFile)); | 1129 static_cast<uint32>( |
1045 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1130 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1046 kClientFile)); | 1131 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1047 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1132 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1048 kClientFile)); | 1133 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1049 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1134 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1050 kClientFile)); | 1135 static_cast<uint32>( |
| 1136 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1137 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1138 |
| 1139 // Check that all related origin data would be removed, that is, origin |
| 1140 // matcher would match these origin. |
| 1141 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1142 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1143 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1051 } | 1144 } |
1052 | 1145 |
1053 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { | 1146 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { |
1054 GetMockManager(); // Creates the QuotaManager instance. | 1147 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1148 new MockExtensionSpecialStoragePolicy; |
| 1149 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1055 | 1150 |
1056 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1151 |
| 1152 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
1057 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1153 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1058 BrowsingDataRemover::REMOVE_WEBSQL | | 1154 BrowsingDataRemover::REMOVE_WEBSQL | |
1059 BrowsingDataRemover::REMOVE_APPCACHE | | 1155 BrowsingDataRemover::REMOVE_APPCACHE | |
1060 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1156 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1061 | 1157 |
1062 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1158 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1063 BrowsingDataRemover::REMOVE_WEBSQL | | 1159 BrowsingDataRemover::REMOVE_WEBSQL | |
1064 BrowsingDataRemover::REMOVE_APPCACHE | | 1160 BrowsingDataRemover::REMOVE_APPCACHE | |
1065 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1161 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1066 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1162 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1067 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1163 |
1068 kClientFile)); | 1164 // Verify storage partition related stuffs. |
1069 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1165 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1070 kClientFile)); | 1166 |
1071 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1167 EXPECT_EQ(removal_data.remove_mask, |
1072 kClientFile)); | 1168 static_cast<uint32>( |
1073 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1169 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1074 kClientFile)); | 1170 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1075 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1171 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1076 kClientFile)); | 1172 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1077 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1173 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1078 kClientFile)); | 1174 static_cast<uint32>( |
| 1175 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1176 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1177 |
| 1178 // Check that all related origin data would be removed, that is, origin |
| 1179 // matcher would match these origin. |
| 1180 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1181 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1182 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1079 } | 1183 } |
1080 | 1184 |
1081 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { | 1185 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { |
1082 PopulateTestQuotaManagedData(GetMockManager()); | |
1083 | |
1084 // Remove Origin 1. | 1186 // Remove Origin 1. |
1085 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1187 BlockUntilStoragePartitionDataForOriginRemoved( |
| 1188 BrowsingDataRemover::EVERYTHING, |
1086 BrowsingDataRemover::REMOVE_APPCACHE | | 1189 BrowsingDataRemover::REMOVE_APPCACHE | |
1087 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1190 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1088 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1191 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1089 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1192 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
1090 | 1193 |
1091 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1194 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1092 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1195 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1093 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1196 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1094 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1197 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1095 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1198 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1096 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1199 |
1097 kClientFile)); | 1200 // Verify storage partition related stuffs. |
1098 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1201 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1099 kClientFile)); | 1202 |
1100 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1203 EXPECT_EQ(removal_data.remove_mask, |
1101 kClientFile)); | 1204 static_cast<uint32>( |
1102 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1205 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1103 kClientFile)); | 1206 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1104 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1207 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1105 kClientFile)); | 1208 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1106 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1209 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1107 kClientFile)); | 1210 static_cast<uint32>( |
| 1211 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1212 EXPECT_EQ(removal_data.remove_origin, kOrigin1); |
1108 } | 1213 } |
1109 | 1214 |
1110 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { | 1215 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { |
1111 PopulateTestQuotaManagedData(GetMockManager()); | 1216 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::LAST_HOUR, |
1112 | |
1113 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | |
1114 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1217 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1115 BrowsingDataRemover::REMOVE_WEBSQL | | 1218 BrowsingDataRemover::REMOVE_WEBSQL | |
1116 BrowsingDataRemover::REMOVE_APPCACHE | | 1219 BrowsingDataRemover::REMOVE_APPCACHE | |
1117 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1220 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1118 | 1221 |
1119 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1222 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1120 BrowsingDataRemover::REMOVE_WEBSQL | | 1223 BrowsingDataRemover::REMOVE_WEBSQL | |
1121 BrowsingDataRemover::REMOVE_APPCACHE | | 1224 BrowsingDataRemover::REMOVE_APPCACHE | |
1122 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1225 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1123 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1226 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1124 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1227 |
1125 kClientFile)); | 1228 // Verify storage partition related stuffs. |
1126 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1229 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1127 kClientFile)); | 1230 |
1128 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1231 EXPECT_EQ(removal_data.remove_mask, |
1129 kClientFile)); | 1232 static_cast<uint32>( |
1130 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1233 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1131 kClientFile)); | 1234 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1132 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1235 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1133 kClientFile)); | 1236 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1134 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1237 |
1135 kClientFile)); | 1238 // Persistent data would be left out since we are not removing from |
| 1239 // beginning of time. |
| 1240 uint32 expected_quota_mask = |
| 1241 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT; |
| 1242 EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask); |
| 1243 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1244 // Check removal begin time. |
| 1245 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
1136 } | 1246 } |
1137 | 1247 |
1138 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { | 1248 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { |
1139 PopulateTestQuotaManagedData(GetMockManager()); | 1249 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::LAST_WEEK, |
1140 | |
1141 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, | |
1142 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1250 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1143 BrowsingDataRemover::REMOVE_WEBSQL | | 1251 BrowsingDataRemover::REMOVE_WEBSQL | |
1144 BrowsingDataRemover::REMOVE_APPCACHE | | 1252 BrowsingDataRemover::REMOVE_APPCACHE | |
1145 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1253 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1146 | 1254 |
1147 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1255 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1148 BrowsingDataRemover::REMOVE_WEBSQL | | 1256 BrowsingDataRemover::REMOVE_WEBSQL | |
1149 BrowsingDataRemover::REMOVE_APPCACHE | | 1257 BrowsingDataRemover::REMOVE_APPCACHE | |
1150 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1258 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1151 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1259 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1152 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1260 |
1153 kClientFile)); | 1261 // Verify storage partition related stuffs. |
1154 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1262 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1155 kClientFile)); | 1263 |
1156 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1264 EXPECT_EQ(removal_data.remove_mask, |
1157 kClientFile)); | 1265 static_cast<uint32>( |
1158 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1266 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1159 kClientFile)); | 1267 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1160 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1268 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1161 kClientFile)); | 1269 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1162 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1270 |
1163 kClientFile)); | 1271 // Persistent data would be left out since we are not removing from |
| 1272 // beginning of time. |
| 1273 uint32 expected_quota_mask = |
| 1274 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT; |
| 1275 EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask); |
| 1276 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1277 // Check removal begin time. |
| 1278 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
1164 } | 1279 } |
1165 | 1280 |
1166 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { | 1281 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
1167 // Protect kOrigin1. | 1282 // Protect kOrigin1. |
1168 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1283 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1169 new MockExtensionSpecialStoragePolicy; | 1284 new MockExtensionSpecialStoragePolicy; |
1170 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1285 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1171 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1286 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1172 | 1287 |
1173 PopulateTestQuotaManagedData(GetMockManager()); | 1288 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
1174 | |
1175 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | |
1176 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1289 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1177 BrowsingDataRemover::REMOVE_WEBSQL | | 1290 BrowsingDataRemover::REMOVE_WEBSQL | |
1178 BrowsingDataRemover::REMOVE_APPCACHE | | 1291 BrowsingDataRemover::REMOVE_APPCACHE | |
1179 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1292 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
1180 | 1293 |
1181 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1294 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1182 BrowsingDataRemover::REMOVE_WEBSQL | | 1295 BrowsingDataRemover::REMOVE_WEBSQL | |
1183 BrowsingDataRemover::REMOVE_APPCACHE | | 1296 BrowsingDataRemover::REMOVE_APPCACHE | |
1184 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1297 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
1185 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1298 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1186 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1299 |
1187 kClientFile)); | 1300 // Verify storage partition related stuffs. |
1188 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1301 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1189 kClientFile)); | 1302 |
1190 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1303 EXPECT_EQ(removal_data.remove_mask, |
1191 kClientFile)); | 1304 static_cast<uint32>( |
1192 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1305 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1193 kClientFile)); | 1306 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1194 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1307 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1195 kClientFile)); | 1308 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1196 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1309 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1197 kClientFile)); | 1310 static_cast<uint32>( |
| 1311 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1312 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1313 |
| 1314 // Check OriginMatcherFunction, |kOrigin1| would not match mask since it |
| 1315 // is protected. |
| 1316 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1317 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1318 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1198 } | 1319 } |
1199 | 1320 |
1200 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { | 1321 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
1201 // Protect kOrigin1. | 1322 // Protect kOrigin1. |
1202 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1323 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1203 new MockExtensionSpecialStoragePolicy; | 1324 new MockExtensionSpecialStoragePolicy; |
1204 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1325 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1205 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1326 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1206 | 1327 |
1207 PopulateTestQuotaManagedData(GetMockManager()); | |
1208 | |
1209 // Try to remove kOrigin1. Expect failure. | 1328 // Try to remove kOrigin1. Expect failure. |
1210 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1329 BlockUntilStoragePartitionDataForOriginRemoved( |
| 1330 BrowsingDataRemover::EVERYTHING, |
1211 BrowsingDataRemover::REMOVE_APPCACHE | | 1331 BrowsingDataRemover::REMOVE_APPCACHE | |
1212 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1332 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1213 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1333 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1214 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1334 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
1215 | 1335 |
1216 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1336 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1217 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1337 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1218 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1338 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1219 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1339 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1220 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1340 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1221 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1341 |
1222 kClientFile)); | 1342 // Verify storage partition related stuffs. |
1223 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1343 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1224 kClientFile)); | 1344 |
1225 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1345 EXPECT_EQ(removal_data.remove_mask, |
1226 kClientFile)); | 1346 static_cast<uint32>( |
1227 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1347 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1228 kClientFile)); | 1348 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1229 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1349 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1230 kClientFile)); | 1350 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1231 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1351 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1232 kClientFile)); | 1352 static_cast<uint32>( |
| 1353 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1354 EXPECT_EQ(removal_data.remove_origin, kOrigin1); |
| 1355 |
| 1356 // Check OriginMatcherFunction, |kOrigin1| would not match mask since it |
| 1357 // is protected. |
| 1358 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1359 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1360 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1233 } | 1361 } |
1234 | 1362 |
1235 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { | 1363 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { |
1236 // Protect kOrigin1. | 1364 // Protect kOrigin1. |
1237 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1365 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
1238 new MockExtensionSpecialStoragePolicy; | 1366 new MockExtensionSpecialStoragePolicy; |
1239 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1367 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
1240 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1368 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1241 | 1369 |
1242 PopulateTestQuotaManagedData(GetMockManager()); | |
1243 | |
1244 // Try to remove kOrigin1. Expect success. | 1370 // Try to remove kOrigin1. Expect success. |
1245 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1371 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
1246 BrowsingDataRemover::REMOVE_APPCACHE | | 1372 BrowsingDataRemover::REMOVE_APPCACHE | |
1247 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1373 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1248 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1374 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1249 BrowsingDataRemover::REMOVE_WEBSQL, true); | 1375 BrowsingDataRemover::REMOVE_WEBSQL, true); |
1250 | 1376 |
1251 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1377 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1252 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1378 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1253 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1379 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1254 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1380 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1255 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | | 1381 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | |
1256 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1382 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1257 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1383 |
1258 kClientFile)); | 1384 // Verify storage partition related stuffs. |
1259 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1385 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1260 kClientFile)); | 1386 |
1261 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1387 EXPECT_EQ(removal_data.remove_mask, |
1262 kClientFile)); | 1388 static_cast<uint32>( |
1263 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1389 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1264 kClientFile)); | 1390 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1265 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1391 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1266 kClientFile)); | 1392 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
1267 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1393 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
1268 kClientFile)); | 1394 static_cast<uint32>( |
| 1395 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1396 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1397 |
| 1398 // Check OriginMatcherFunction, |kOrigin1| would match mask since we |
| 1399 // would have 'protected' specified in origin_set_mask. |
| 1400 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1401 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1402 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
1269 } | 1403 } |
1270 | 1404 |
1271 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { | 1405 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { |
1272 PopulateTestQuotaManagedNonBrowsingData(GetMockManager()); | 1406 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1407 new MockExtensionSpecialStoragePolicy; |
| 1408 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
1273 | 1409 |
1274 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1410 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
1275 BrowsingDataRemover::REMOVE_APPCACHE | | 1411 BrowsingDataRemover::REMOVE_APPCACHE | |
1276 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1412 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1277 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1413 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1278 BrowsingDataRemover::REMOVE_WEBSQL, false); | 1414 BrowsingDataRemover::REMOVE_WEBSQL, false); |
1279 | 1415 |
1280 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1416 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
1281 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1417 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
1282 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1418 BrowsingDataRemover::REMOVE_INDEXEDDB | |
1283 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1419 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
1284 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1420 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1285 | 1421 |
1286 // Check that extension and devtools data isn't removed. | 1422 // Verify storage partition related stuffs. |
1287 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary, | 1423 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
1288 kClientFile)); | 1424 |
1289 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent, | 1425 EXPECT_EQ(removal_data.remove_mask, |
1290 kClientFile)); | 1426 static_cast<uint32>( |
1291 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary, | 1427 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
1292 kClientFile)); | 1428 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
1293 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent, | 1429 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
1294 kClientFile)); | 1430 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1431 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1432 static_cast<uint32>( |
| 1433 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1434 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1435 |
| 1436 // Check that extension and devtools data wouldn't be removed, that is, |
| 1437 // origin matcher would not match these origin. |
| 1438 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
| 1439 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginDevTools, mock_policy)); |
1295 } | 1440 } |
1296 | 1441 |
1297 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { | 1442 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
1298 RemoveHistoryTester tester; | 1443 RemoveHistoryTester tester; |
1299 ASSERT_TRUE(tester.Init(GetProfile())); | 1444 ASSERT_TRUE(tester.Init(GetProfile())); |
1300 | 1445 |
1301 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1446 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
1302 | 1447 |
1303 tester.AddHistory(kOrigin1, base::Time::Now()); | 1448 tester.AddHistory(kOrigin1, base::Time::Now()); |
1304 tester.AddHistory(kOrigin2, two_hours_ago); | 1449 tester.AddHistory(kOrigin2, two_hours_ago); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1384 BlockUntilBrowsingDataRemoved( | 1529 BlockUntilBrowsingDataRemoved( |
1385 BrowsingDataRemover::LAST_HOUR, | 1530 BrowsingDataRemover::LAST_HOUR, |
1386 BrowsingDataRemover::REMOVE_HISTORY, false); | 1531 BrowsingDataRemover::REMOVE_HISTORY, false); |
1387 | 1532 |
1388 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1533 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
1389 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1534 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
1390 EXPECT_TRUE(tester.HasOrigin(std::string())); | 1535 EXPECT_TRUE(tester.HasOrigin(std::string())); |
1391 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); | 1536 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); |
1392 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); | 1537 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); |
1393 } | 1538 } |
OLD | NEW |