| 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 ClearData(uint32 remove_mask, |
| 174 uint32 quota_storage_remove_mask, |
| 175 const GURL* storage_origin, |
| 176 const OriginMatcherFunction& origin_matcher, |
| 177 const base::Time begin, |
| 178 const base::Time end, |
| 179 const base::Closure& callback) OVERRIDE { |
| 180 // Store stuff to verify parameters' correctness later. |
| 181 storage_partition_removal_data_.remove_mask = remove_mask; |
| 182 storage_partition_removal_data_.quota_storage_remove_mask = |
| 183 quota_storage_remove_mask; |
| 184 storage_partition_removal_data_.remove_origin = |
| 185 storage_origin ? *storage_origin : GURL(); |
| 186 storage_partition_removal_data_.remove_begin = begin; |
| 187 storage_partition_removal_data_.remove_end = end; |
| 188 storage_partition_removal_data_.origin_matcher = origin_matcher; |
| 189 |
| 190 BrowserThread::PostTask( |
| 191 BrowserThread::UI, |
| 192 FROM_HERE, |
| 193 base::Bind(&TestStoragePartition::AsyncRunCallback, |
| 194 base::Unretained(this), callback)); |
| 195 } |
| 196 |
| 197 StoragePartitionRemovalData GetStoragePartitionRemovalData() { |
| 198 return storage_partition_removal_data_; |
| 199 } |
| 200 private: |
| 201 void AsyncRunCallback(const base::Closure& callback) { |
| 202 callback.Run(); |
| 203 } |
| 204 |
| 205 StoragePartitionRemovalData storage_partition_removal_data_; |
| 206 |
| 207 DISALLOW_COPY_AND_ASSIGN(TestStoragePartition); |
| 208 }; |
| 209 |
| 166 } // namespace | 210 } // namespace |
| 167 | 211 |
| 168 // Testers ------------------------------------------------------------------- | 212 // Testers ------------------------------------------------------------------- |
| 169 | 213 |
| 170 class RemoveCookieTester { | 214 class RemoveCookieTester { |
| 171 public: | 215 public: |
| 172 RemoveCookieTester() : get_cookie_success_(false), monster_(NULL) { | 216 RemoveCookieTester() : get_cookie_success_(false), monster_(NULL) { |
| 173 } | 217 } |
| 174 | 218 |
| 175 // Returns true, if the given cookie exists in the cookie store. | 219 // 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. | 603 // Otherwise we leak memory. |
| 560 profile_.reset(); | 604 profile_.reset(); |
| 561 base::MessageLoop::current()->RunUntilIdle(); | 605 base::MessageLoop::current()->RunUntilIdle(); |
| 562 } | 606 } |
| 563 | 607 |
| 564 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, | 608 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, |
| 565 int remove_mask, | 609 int remove_mask, |
| 566 bool include_protected_origins) { | 610 bool include_protected_origins) { |
| 567 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( | 611 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
| 568 profile_.get(), period); | 612 profile_.get(), period); |
| 569 remover->OverrideQuotaManagerForTesting(GetMockManager()); | |
| 570 | 613 |
| 571 AwaitCompletionHelper await_completion; | 614 AwaitCompletionHelper await_completion; |
| 572 remover->AddObserver(&await_completion); | 615 remover->AddObserver(&await_completion); |
| 573 | 616 |
| 574 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 617 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 575 | 618 |
| 576 // BrowsingDataRemover deletes itself when it completes. | 619 // BrowsingDataRemover deletes itself when it completes. |
| 577 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; | 620 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; |
| 578 if (include_protected_origins) | 621 if (include_protected_origins) |
| 579 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; | 622 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; |
| 580 remover->Remove(remove_mask, origin_set_mask); | 623 remover->Remove(remove_mask, origin_set_mask); |
| 581 await_completion.BlockUntilNotified(); | 624 await_completion.BlockUntilNotified(); |
| 582 } | 625 } |
| 583 | 626 |
| 584 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, | 627 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
| 585 int remove_mask, | 628 int remove_mask, |
| 586 const GURL& remove_origin) { | 629 const GURL& remove_origin) { |
| 587 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( | 630 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
| 588 profile_.get(), period); | 631 profile_.get(), period); |
| 589 remover->OverrideQuotaManagerForTesting(GetMockManager()); | |
| 590 | 632 |
| 591 AwaitCompletionHelper await_completion; | 633 AwaitCompletionHelper await_completion; |
| 592 remover->AddObserver(&await_completion); | 634 remover->AddObserver(&await_completion); |
| 593 | 635 |
| 594 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 636 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 595 | 637 |
| 596 // BrowsingDataRemover deletes itself when it completes. | 638 // BrowsingDataRemover deletes itself when it completes. |
| 597 remover->RemoveImpl(remove_mask, remove_origin, | 639 remover->RemoveImpl(remove_mask, remove_origin, |
| 598 BrowsingDataHelper::UNPROTECTED_WEB); | 640 BrowsingDataHelper::UNPROTECTED_WEB); |
| 599 await_completion.BlockUntilNotified(); | 641 await_completion.BlockUntilNotified(); |
| 600 } | 642 } |
| 601 | 643 |
| 644 void BlockUntilStoragePartitionDataRemoved( |
| 645 BrowsingDataRemover::TimePeriod period, |
| 646 int remove_mask, |
| 647 bool include_protected_origins) { |
| 648 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
| 649 profile_.get(), period); |
| 650 TestStoragePartition storage_partition; |
| 651 remover->OverrideStoragePartitionForTesting(&storage_partition); |
| 652 |
| 653 AwaitCompletionHelper await_completion; |
| 654 remover->AddObserver(&await_completion); |
| 655 |
| 656 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 657 |
| 658 // BrowsingDataRemover deletes itself when it completes. |
| 659 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; |
| 660 if (include_protected_origins) |
| 661 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; |
| 662 remover->Remove(remove_mask, origin_set_mask); |
| 663 await_completion.BlockUntilNotified(); |
| 664 |
| 665 // Save so we can verify later. |
| 666 storage_partition_removal_data_ = |
| 667 storage_partition.GetStoragePartitionRemovalData(); |
| 668 } |
| 669 |
| 670 void BlockUntilStoragePartitionDataForOriginRemoved( |
| 671 BrowsingDataRemover::TimePeriod period, |
| 672 int remove_mask, |
| 673 const GURL& remove_origin) { |
| 674 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
| 675 profile_.get(), period); |
| 676 TestStoragePartition storage_partition; |
| 677 remover->OverrideStoragePartitionForTesting(&storage_partition); |
| 678 |
| 679 AwaitCompletionHelper await_completion; |
| 680 remover->AddObserver(&await_completion); |
| 681 |
| 682 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 683 |
| 684 // BrowsingDataRemover deletes itself when it completes. |
| 685 remover->RemoveImpl(remove_mask, remove_origin, |
| 686 BrowsingDataHelper::UNPROTECTED_WEB); |
| 687 await_completion.BlockUntilNotified(); |
| 688 |
| 689 // Save so we can verify later. |
| 690 storage_partition_removal_data_ = |
| 691 storage_partition.GetStoragePartitionRemovalData(); |
| 692 } |
| 693 |
| 602 TestingProfile* GetProfile() { | 694 TestingProfile* GetProfile() { |
| 603 return profile_.get(); | 695 return profile_.get(); |
| 604 } | 696 } |
| 605 | 697 |
| 606 base::Time GetBeginTime() { | 698 base::Time GetBeginTime() { |
| 607 return called_with_details_->removal_begin; | 699 return called_with_details_->removal_begin; |
| 608 } | 700 } |
| 609 | 701 |
| 610 int GetRemovalMask() { | 702 int GetRemovalMask() { |
| 611 return called_with_details_->removal_mask; | 703 return called_with_details_->removal_mask; |
| 612 } | 704 } |
| 613 | 705 |
| 614 int GetOriginSetMask() { | 706 int GetOriginSetMask() { |
| 615 return called_with_details_->origin_set_mask; | 707 return called_with_details_->origin_set_mask; |
| 616 } | 708 } |
| 617 | 709 |
| 618 quota::MockQuotaManager* GetMockManager() { | 710 StoragePartitionRemovalData GetStoragePartitionRemovalData() { |
| 619 if (!quota_manager_.get()) { | 711 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 } | 712 } |
| 629 | 713 |
| 630 // content::NotificationObserver implementation. | 714 // content::NotificationObserver implementation. |
| 631 virtual void Observe(int type, | 715 virtual void Observe(int type, |
| 632 const content::NotificationSource& source, | 716 const content::NotificationSource& source, |
| 633 const content::NotificationDetails& details) OVERRIDE { | 717 const content::NotificationDetails& details) OVERRIDE { |
| 634 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); | 718 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); |
| 635 | 719 |
| 636 // We're not taking ownership of the details object, but storing a copy of | 720 // We're not taking ownership of the details object, but storing a copy of |
| 637 // it locally. | 721 // it locally. |
| 638 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( | 722 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( |
| 639 *content::Details<BrowsingDataRemover::NotificationDetails>( | 723 *content::Details<BrowsingDataRemover::NotificationDetails>( |
| 640 details).ptr())); | 724 details).ptr())); |
| 641 | 725 |
| 642 registrar_.RemoveAll(); | 726 registrar_.RemoveAll(); |
| 643 } | 727 } |
| 644 | 728 |
| 645 private: | 729 private: |
| 646 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; | 730 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; |
| 647 content::NotificationRegistrar registrar_; | 731 content::NotificationRegistrar registrar_; |
| 648 | 732 |
| 649 content::TestBrowserThreadBundle thread_bundle_; | 733 content::TestBrowserThreadBundle thread_bundle_; |
| 650 scoped_ptr<TestingProfile> profile_; | 734 scoped_ptr<TestingProfile> profile_; |
| 651 scoped_refptr<quota::MockQuotaManager> quota_manager_; | 735 |
| 736 StoragePartitionRemovalData storage_partition_removal_data_; |
| 652 | 737 |
| 653 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); | 738 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); |
| 654 }; | 739 }; |
| 655 | 740 |
| 656 // Tests --------------------------------------------------------------------- | 741 // Tests --------------------------------------------------------------------- |
| 657 | 742 |
| 658 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { | 743 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { |
| 659 RemoveProfileCookieTester tester(GetProfile()); | 744 RemoveProfileCookieTester tester(GetProfile()); |
| 660 | 745 |
| 661 tester.AddCookie(); | 746 tester.AddCookie(); |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 938 removal_mask, false); | 1023 removal_mask, false); |
| 939 EXPECT_EQ(removal_mask, GetRemovalMask()); | 1024 EXPECT_EQ(removal_mask, GetRemovalMask()); |
| 940 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1025 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 941 | 1026 |
| 942 // Cookie should be gone; history should remain. | 1027 // Cookie should be gone; history should remain. |
| 943 EXPECT_FALSE(cookie_tester.ContainsCookie()); | 1028 EXPECT_FALSE(cookie_tester.ContainsCookie()); |
| 944 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); | 1029 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
| 945 } | 1030 } |
| 946 #endif | 1031 #endif |
| 947 | 1032 |
| 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) { | 1033 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { |
| 973 PopulateTestQuotaManagedData(GetMockManager()); | 1034 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 974 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | |
| 975 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1035 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 976 BrowsingDataRemover::REMOVE_WEBSQL | | 1036 BrowsingDataRemover::REMOVE_WEBSQL | |
| 977 BrowsingDataRemover::REMOVE_APPCACHE | | 1037 BrowsingDataRemover::REMOVE_APPCACHE | |
| 978 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1038 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 979 | 1039 |
| 980 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1040 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 981 BrowsingDataRemover::REMOVE_WEBSQL | | 1041 BrowsingDataRemover::REMOVE_WEBSQL | |
| 982 BrowsingDataRemover::REMOVE_APPCACHE | | 1042 BrowsingDataRemover::REMOVE_APPCACHE | |
| 983 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1043 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 984 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1044 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 985 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1045 |
| 986 kClientFile)); | 1046 // Verify storage partition related stuffs. |
| 987 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1047 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 988 kClientFile)); | 1048 EXPECT_EQ(removal_data.remove_mask, |
| 989 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1049 static_cast<uint32>( |
| 990 kClientFile)); | 1050 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 991 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1051 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 992 kClientFile)); | 1052 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 993 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1053 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 994 kClientFile)); | 1054 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 995 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1055 static_cast<uint32>( |
| 996 kClientFile)); | 1056 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1057 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 997 } | 1058 } |
| 998 | 1059 |
| 999 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { | 1060 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { |
| 1000 PopulateTestQuotaManagedTemporaryData(GetMockManager()); | 1061 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1001 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1062 new MockExtensionSpecialStoragePolicy; |
| 1063 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1064 |
| 1065 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 1002 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1066 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1003 BrowsingDataRemover::REMOVE_WEBSQL | | 1067 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1004 BrowsingDataRemover::REMOVE_APPCACHE | | 1068 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1005 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1069 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 1006 | 1070 |
| 1007 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1071 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1008 BrowsingDataRemover::REMOVE_WEBSQL | | 1072 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1009 BrowsingDataRemover::REMOVE_APPCACHE | | 1073 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1010 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1074 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 1011 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1075 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1012 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1076 |
| 1013 kClientFile)); | 1077 // Verify storage partition related stuffs. |
| 1014 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1078 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1015 kClientFile)); | 1079 |
| 1016 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1080 EXPECT_EQ(removal_data.remove_mask, |
| 1017 kClientFile)); | 1081 static_cast<uint32>( |
| 1018 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1082 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1019 kClientFile)); | 1083 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1020 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1084 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1021 kClientFile)); | 1085 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1022 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1086 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1023 kClientFile)); | 1087 static_cast<uint32>( |
| 1088 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1089 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1090 |
| 1091 // Check that all related origin data would be removed, that is, origin |
| 1092 // matcher would match these origin. |
| 1093 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1094 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1095 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 1024 } | 1096 } |
| 1025 | 1097 |
| 1026 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { | 1098 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { |
| 1027 PopulateTestQuotaManagedPersistentData(GetMockManager()); | 1099 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1028 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1100 new MockExtensionSpecialStoragePolicy; |
| 1101 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1102 |
| 1103 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 1029 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1104 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1030 BrowsingDataRemover::REMOVE_WEBSQL | | 1105 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1031 BrowsingDataRemover::REMOVE_APPCACHE | | 1106 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1032 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1107 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 1033 | 1108 |
| 1034 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1109 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1035 BrowsingDataRemover::REMOVE_WEBSQL | | 1110 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1036 BrowsingDataRemover::REMOVE_APPCACHE | | 1111 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1037 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1112 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 1038 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1113 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1039 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1114 |
| 1040 kClientFile)); | 1115 // Verify storage partition related stuffs. |
| 1041 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1116 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1042 kClientFile)); | 1117 |
| 1043 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1118 EXPECT_EQ(removal_data.remove_mask, |
| 1044 kClientFile)); | 1119 static_cast<uint32>( |
| 1045 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1120 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1046 kClientFile)); | 1121 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1047 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1122 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1048 kClientFile)); | 1123 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1049 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1124 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1050 kClientFile)); | 1125 static_cast<uint32>( |
| 1126 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1127 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1128 |
| 1129 // Check that all related origin data would be removed, that is, origin |
| 1130 // matcher would match these origin. |
| 1131 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1132 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1133 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 1051 } | 1134 } |
| 1052 | 1135 |
| 1053 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { | 1136 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { |
| 1054 GetMockManager(); // Creates the QuotaManager instance. | 1137 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1138 new MockExtensionSpecialStoragePolicy; |
| 1139 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1055 | 1140 |
| 1056 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1141 |
| 1142 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 1057 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1143 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1058 BrowsingDataRemover::REMOVE_WEBSQL | | 1144 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1059 BrowsingDataRemover::REMOVE_APPCACHE | | 1145 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1060 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1146 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 1061 | 1147 |
| 1062 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1148 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1063 BrowsingDataRemover::REMOVE_WEBSQL | | 1149 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1064 BrowsingDataRemover::REMOVE_APPCACHE | | 1150 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1065 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1151 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 1066 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1152 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1067 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1153 |
| 1068 kClientFile)); | 1154 // Verify storage partition related stuffs. |
| 1069 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1155 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1070 kClientFile)); | 1156 |
| 1071 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1157 EXPECT_EQ(removal_data.remove_mask, |
| 1072 kClientFile)); | 1158 static_cast<uint32>( |
| 1073 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1159 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1074 kClientFile)); | 1160 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1075 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1161 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1076 kClientFile)); | 1162 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1077 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1163 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1078 kClientFile)); | 1164 static_cast<uint32>( |
| 1165 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1166 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1167 |
| 1168 // Check that all related origin data would be removed, that is, origin |
| 1169 // matcher would match these origin. |
| 1170 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1171 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1172 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 1079 } | 1173 } |
| 1080 | 1174 |
| 1081 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { | 1175 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { |
| 1082 PopulateTestQuotaManagedData(GetMockManager()); | |
| 1083 | |
| 1084 // Remove Origin 1. | 1176 // Remove Origin 1. |
| 1085 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1177 BlockUntilStoragePartitionDataForOriginRemoved( |
| 1178 BrowsingDataRemover::EVERYTHING, |
| 1086 BrowsingDataRemover::REMOVE_APPCACHE | | 1179 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1087 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1180 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1088 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1181 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1089 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1182 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
| 1090 | 1183 |
| 1091 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1184 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 1092 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1185 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1093 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1186 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1094 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1187 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
| 1095 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1188 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1096 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1189 |
| 1097 kClientFile)); | 1190 // Verify storage partition related stuffs. |
| 1098 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1191 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1099 kClientFile)); | 1192 |
| 1100 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1193 EXPECT_EQ(removal_data.remove_mask, |
| 1101 kClientFile)); | 1194 static_cast<uint32>( |
| 1102 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1195 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1103 kClientFile)); | 1196 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1104 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1197 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1105 kClientFile)); | 1198 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1106 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1199 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1107 kClientFile)); | 1200 static_cast<uint32>( |
| 1201 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1202 EXPECT_EQ(removal_data.remove_origin, kOrigin1); |
| 1108 } | 1203 } |
| 1109 | 1204 |
| 1110 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { | 1205 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { |
| 1111 PopulateTestQuotaManagedData(GetMockManager()); | 1206 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::LAST_HOUR, |
| 1112 | |
| 1113 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | |
| 1114 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1207 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1115 BrowsingDataRemover::REMOVE_WEBSQL | | 1208 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1116 BrowsingDataRemover::REMOVE_APPCACHE | | 1209 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1117 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1210 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 1118 | 1211 |
| 1119 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1212 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1120 BrowsingDataRemover::REMOVE_WEBSQL | | 1213 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1121 BrowsingDataRemover::REMOVE_APPCACHE | | 1214 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1122 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1215 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 1123 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1216 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1124 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1217 |
| 1125 kClientFile)); | 1218 // Verify storage partition related stuffs. |
| 1126 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1219 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1127 kClientFile)); | 1220 |
| 1128 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1221 EXPECT_EQ(removal_data.remove_mask, |
| 1129 kClientFile)); | 1222 static_cast<uint32>( |
| 1130 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1223 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1131 kClientFile)); | 1224 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1132 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1225 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1133 kClientFile)); | 1226 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1134 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1227 |
| 1135 kClientFile)); | 1228 // Persistent data would be left out since we are not removing from |
| 1229 // beginning of time. |
| 1230 uint32 expected_quota_mask = |
| 1231 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT; |
| 1232 EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask); |
| 1233 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1234 // Check removal begin time. |
| 1235 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
| 1136 } | 1236 } |
| 1137 | 1237 |
| 1138 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { | 1238 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { |
| 1139 PopulateTestQuotaManagedData(GetMockManager()); | 1239 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::LAST_WEEK, |
| 1140 | |
| 1141 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, | |
| 1142 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1240 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1143 BrowsingDataRemover::REMOVE_WEBSQL | | 1241 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1144 BrowsingDataRemover::REMOVE_APPCACHE | | 1242 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1145 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1243 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 1146 | 1244 |
| 1147 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1245 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1148 BrowsingDataRemover::REMOVE_WEBSQL | | 1246 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1149 BrowsingDataRemover::REMOVE_APPCACHE | | 1247 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1150 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1248 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 1151 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1249 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1152 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1250 |
| 1153 kClientFile)); | 1251 // Verify storage partition related stuffs. |
| 1154 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1252 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1155 kClientFile)); | 1253 |
| 1156 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1254 EXPECT_EQ(removal_data.remove_mask, |
| 1157 kClientFile)); | 1255 static_cast<uint32>( |
| 1158 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1256 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1159 kClientFile)); | 1257 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1160 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1258 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1161 kClientFile)); | 1259 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1162 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1260 |
| 1163 kClientFile)); | 1261 // Persistent data would be left out since we are not removing from |
| 1262 // beginning of time. |
| 1263 uint32 expected_quota_mask = |
| 1264 ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT; |
| 1265 EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask); |
| 1266 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1267 // Check removal begin time. |
| 1268 EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
| 1164 } | 1269 } |
| 1165 | 1270 |
| 1166 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { | 1271 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
| 1167 // Protect kOrigin1. | 1272 // Protect kOrigin1. |
| 1168 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1273 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1169 new MockExtensionSpecialStoragePolicy; | 1274 new MockExtensionSpecialStoragePolicy; |
| 1170 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1275 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
| 1171 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1276 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1172 | 1277 |
| 1173 PopulateTestQuotaManagedData(GetMockManager()); | 1278 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 1174 | |
| 1175 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | |
| 1176 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1279 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1177 BrowsingDataRemover::REMOVE_WEBSQL | | 1280 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1178 BrowsingDataRemover::REMOVE_APPCACHE | | 1281 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1179 BrowsingDataRemover::REMOVE_INDEXEDDB, false); | 1282 BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
| 1180 | 1283 |
| 1181 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1284 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1182 BrowsingDataRemover::REMOVE_WEBSQL | | 1285 BrowsingDataRemover::REMOVE_WEBSQL | |
| 1183 BrowsingDataRemover::REMOVE_APPCACHE | | 1286 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1184 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); | 1287 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask()); |
| 1185 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1288 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1186 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1289 |
| 1187 kClientFile)); | 1290 // Verify storage partition related stuffs. |
| 1188 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1291 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1189 kClientFile)); | 1292 |
| 1190 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1293 EXPECT_EQ(removal_data.remove_mask, |
| 1191 kClientFile)); | 1294 static_cast<uint32>( |
| 1192 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1295 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1193 kClientFile)); | 1296 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1194 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1297 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1195 kClientFile)); | 1298 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1196 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1299 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1197 kClientFile)); | 1300 static_cast<uint32>( |
| 1301 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1302 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1303 |
| 1304 // Check OriginMatcherFunction, |kOrigin1| would not match mask since it |
| 1305 // is protected. |
| 1306 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1307 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1308 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 1198 } | 1309 } |
| 1199 | 1310 |
| 1200 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { | 1311 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
| 1201 // Protect kOrigin1. | 1312 // Protect kOrigin1. |
| 1202 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1313 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1203 new MockExtensionSpecialStoragePolicy; | 1314 new MockExtensionSpecialStoragePolicy; |
| 1204 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1315 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
| 1205 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1316 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1206 | 1317 |
| 1207 PopulateTestQuotaManagedData(GetMockManager()); | |
| 1208 | |
| 1209 // Try to remove kOrigin1. Expect failure. | 1318 // Try to remove kOrigin1. Expect failure. |
| 1210 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | 1319 BlockUntilStoragePartitionDataForOriginRemoved( |
| 1320 BrowsingDataRemover::EVERYTHING, |
| 1211 BrowsingDataRemover::REMOVE_APPCACHE | | 1321 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1212 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1322 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1213 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1323 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1214 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); | 1324 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
| 1215 | 1325 |
| 1216 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1326 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 1217 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1327 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1218 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1328 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1219 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1329 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
| 1220 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1330 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1221 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1331 |
| 1222 kClientFile)); | 1332 // Verify storage partition related stuffs. |
| 1223 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1333 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1224 kClientFile)); | 1334 |
| 1225 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1335 EXPECT_EQ(removal_data.remove_mask, |
| 1226 kClientFile)); | 1336 static_cast<uint32>( |
| 1227 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1337 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1228 kClientFile)); | 1338 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1229 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1339 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1230 kClientFile)); | 1340 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1231 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1341 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1232 kClientFile)); | 1342 static_cast<uint32>( |
| 1343 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1344 EXPECT_EQ(removal_data.remove_origin, kOrigin1); |
| 1345 |
| 1346 // Check OriginMatcherFunction, |kOrigin1| would not match mask since it |
| 1347 // is protected. |
| 1348 EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1349 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1350 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 1233 } | 1351 } |
| 1234 | 1352 |
| 1235 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { | 1353 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) { |
| 1236 // Protect kOrigin1. | 1354 // Protect kOrigin1. |
| 1237 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = | 1355 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1238 new MockExtensionSpecialStoragePolicy; | 1356 new MockExtensionSpecialStoragePolicy; |
| 1239 mock_policy->AddProtected(kOrigin1.GetOrigin()); | 1357 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
| 1240 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); | 1358 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1241 | 1359 |
| 1242 PopulateTestQuotaManagedData(GetMockManager()); | |
| 1243 | |
| 1244 // Try to remove kOrigin1. Expect success. | 1360 // Try to remove kOrigin1. Expect success. |
| 1245 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1361 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 1246 BrowsingDataRemover::REMOVE_APPCACHE | | 1362 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1247 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1363 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1248 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1364 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1249 BrowsingDataRemover::REMOVE_WEBSQL, true); | 1365 BrowsingDataRemover::REMOVE_WEBSQL, true); |
| 1250 | 1366 |
| 1251 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1367 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 1252 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1368 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1253 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1369 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1254 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1370 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
| 1255 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | | 1371 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | |
| 1256 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1372 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1257 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, | 1373 |
| 1258 kClientFile)); | 1374 // Verify storage partition related stuffs. |
| 1259 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, | 1375 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1260 kClientFile)); | 1376 |
| 1261 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 1377 EXPECT_EQ(removal_data.remove_mask, |
| 1262 kClientFile)); | 1378 static_cast<uint32>( |
| 1263 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 1379 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1264 kClientFile)); | 1380 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1265 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 1381 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1266 kClientFile)); | 1382 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1267 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 1383 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1268 kClientFile)); | 1384 static_cast<uint32>( |
| 1385 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1386 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1387 |
| 1388 // Check OriginMatcherFunction, |kOrigin1| would match mask since we |
| 1389 // would have 'protected' specified in origin_set_mask. |
| 1390 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy)); |
| 1391 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy)); |
| 1392 EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy)); |
| 1269 } | 1393 } |
| 1270 | 1394 |
| 1271 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { | 1395 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { |
| 1272 PopulateTestQuotaManagedNonBrowsingData(GetMockManager()); | 1396 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 1397 new MockExtensionSpecialStoragePolicy; |
| 1398 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
| 1273 | 1399 |
| 1274 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, | 1400 BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 1275 BrowsingDataRemover::REMOVE_APPCACHE | | 1401 BrowsingDataRemover::REMOVE_APPCACHE | |
| 1276 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1402 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1277 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1403 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1278 BrowsingDataRemover::REMOVE_WEBSQL, false); | 1404 BrowsingDataRemover::REMOVE_WEBSQL, false); |
| 1279 | 1405 |
| 1280 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | | 1406 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 1281 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | | 1407 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 1282 BrowsingDataRemover::REMOVE_INDEXEDDB | | 1408 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 1283 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); | 1409 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
| 1284 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1410 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1285 | 1411 |
| 1286 // Check that extension and devtools data isn't removed. | 1412 // Verify storage partition related stuffs. |
| 1287 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary, | 1413 StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
| 1288 kClientFile)); | 1414 |
| 1289 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent, | 1415 EXPECT_EQ(removal_data.remove_mask, |
| 1290 kClientFile)); | 1416 static_cast<uint32>( |
| 1291 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary, | 1417 StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS | |
| 1292 kClientFile)); | 1418 StoragePartition::REMOVE_DATA_MASK_WEBSQL | |
| 1293 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent, | 1419 StoragePartition::REMOVE_DATA_MASK_APPCACHE | |
| 1294 kClientFile)); | 1420 StoragePartition::REMOVE_DATA_MASK_INDEXEDDB)); |
| 1421 EXPECT_EQ(removal_data.quota_storage_remove_mask, |
| 1422 static_cast<uint32>( |
| 1423 StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
| 1424 EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
| 1425 |
| 1426 // Check that extension and devtools data wouldn't be removed, that is, |
| 1427 // origin matcher would not match these origin. |
| 1428 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
| 1429 EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginDevTools, mock_policy)); |
| 1295 } | 1430 } |
| 1296 | 1431 |
| 1297 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { | 1432 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
| 1298 RemoveHistoryTester tester; | 1433 RemoveHistoryTester tester; |
| 1299 ASSERT_TRUE(tester.Init(GetProfile())); | 1434 ASSERT_TRUE(tester.Init(GetProfile())); |
| 1300 | 1435 |
| 1301 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 1436 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| 1302 | 1437 |
| 1303 tester.AddHistory(kOrigin1, base::Time::Now()); | 1438 tester.AddHistory(kOrigin1, base::Time::Now()); |
| 1304 tester.AddHistory(kOrigin2, two_hours_ago); | 1439 tester.AddHistory(kOrigin2, two_hours_ago); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1384 BlockUntilBrowsingDataRemoved( | 1519 BlockUntilBrowsingDataRemoved( |
| 1385 BrowsingDataRemover::LAST_HOUR, | 1520 BrowsingDataRemover::LAST_HOUR, |
| 1386 BrowsingDataRemover::REMOVE_HISTORY, false); | 1521 BrowsingDataRemover::REMOVE_HISTORY, false); |
| 1387 | 1522 |
| 1388 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 1523 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
| 1389 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); | 1524 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
| 1390 EXPECT_TRUE(tester.HasOrigin(std::string())); | 1525 EXPECT_TRUE(tester.HasOrigin(std::string())); |
| 1391 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); | 1526 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); |
| 1392 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); | 1527 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); |
| 1393 } | 1528 } |
| OLD | NEW |