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

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

Issue 37843003: BrowsingDataRemover, (re)use StoragePartition deletion code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments from miket@ Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/browsing_data/browsing_data_remover.h" 5 #include "chrome/browser/browsing_data/browsing_data_remover.h"
6 6
7 #include <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
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;
52 49
53 namespace { 50 namespace {
54 51
55 const char kTestOrigin1[] = "http://host1:1/"; 52 const char kTestOrigin1[] = "http://host1:1/";
56 const char kTestOrigin2[] = "http://host2:1/"; 53 const char kTestOrigin2[] = "http://host2:1/";
57 const char kTestOrigin3[] = "http://host3:1/"; 54 const char kTestOrigin3[] = "http://host3:1/";
58 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; 55 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
59 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
60 56
61 // For Autofill. 57 // For Autofill.
62 const char kChromeOrigin[] = "Chrome settings"; 58 const char kChromeOrigin[] = "Chrome settings";
63 const char kWebOrigin[] = "https://www.example.com/"; 59 const char kWebOrigin[] = "https://www.example.com/";
64 60
65 const GURL kOrigin1(kTestOrigin1); 61 const GURL kOrigin1(kTestOrigin1);
66 const GURL kOrigin2(kTestOrigin2); 62 const GURL kOrigin2(kTestOrigin2);
67 const GURL kOrigin3(kTestOrigin3); 63 const GURL kOrigin3(kTestOrigin3);
68 const GURL kOriginExt(kTestOriginExt); 64 const GURL kOriginExt(kTestOriginExt);
69 const GURL kOriginDevTools(kTestOriginDevTools);
70 65
71 const base::FilePath::CharType kDomStorageOrigin1[] = 66 const base::FilePath::CharType kDomStorageOrigin1[] =
72 FILE_PATH_LITERAL("http_host1_1.localstorage"); 67 FILE_PATH_LITERAL("http_host1_1.localstorage");
73 68
74 const base::FilePath::CharType kDomStorageOrigin2[] = 69 const base::FilePath::CharType kDomStorageOrigin2[] =
75 FILE_PATH_LITERAL("http_host2_1.localstorage"); 70 FILE_PATH_LITERAL("http_host2_1.localstorage");
76 71
77 const base::FilePath::CharType kDomStorageOrigin3[] = 72 const base::FilePath::CharType kDomStorageOrigin3[] =
78 FILE_PATH_LITERAL("http_host3_1.localstorage"); 73 FILE_PATH_LITERAL("http_host3_1.localstorage");
79 74
80 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL( 75 const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL(
81 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage"); 76 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage");
82 77
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 { 78 class AwaitCompletionHelper : public BrowsingDataRemover::Observer {
125 public: 79 public:
126 AwaitCompletionHelper() : start_(false), already_quit_(false) {} 80 AwaitCompletionHelper() : start_(false), already_quit_(false) {}
127 virtual ~AwaitCompletionHelper() {} 81 virtual ~AwaitCompletionHelper() {}
128 82
129 void BlockUntilNotified() { 83 void BlockUntilNotified() {
130 if (!already_quit_) { 84 if (!already_quit_) {
131 DCHECK(!start_); 85 DCHECK(!start_);
132 start_ = true; 86 start_ = true;
133 base::MessageLoop::current()->Run(); 87 base::MessageLoop::current()->Run();
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 // Otherwise we leak memory. 513 // Otherwise we leak memory.
560 profile_.reset(); 514 profile_.reset();
561 base::MessageLoop::current()->RunUntilIdle(); 515 base::MessageLoop::current()->RunUntilIdle();
562 } 516 }
563 517
564 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, 518 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period,
565 int remove_mask, 519 int remove_mask,
566 bool include_protected_origins) { 520 bool include_protected_origins) {
567 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( 521 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod(
568 profile_.get(), period); 522 profile_.get(), period);
569 remover->OverrideQuotaManagerForTesting(GetMockManager());
570 523
571 AwaitCompletionHelper await_completion; 524 AwaitCompletionHelper await_completion;
572 remover->AddObserver(&await_completion); 525 remover->AddObserver(&await_completion);
573 526
574 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); 527 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
575 528
576 // BrowsingDataRemover deletes itself when it completes. 529 // BrowsingDataRemover deletes itself when it completes.
577 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB; 530 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB;
578 if (include_protected_origins) 531 if (include_protected_origins)
579 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB; 532 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB;
580 remover->Remove(remove_mask, origin_set_mask); 533 remover->Remove(remove_mask, origin_set_mask);
581 await_completion.BlockUntilNotified(); 534 await_completion.BlockUntilNotified();
582 } 535 }
583 536
584 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, 537 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period,
585 int remove_mask, 538 int remove_mask,
586 const GURL& remove_origin) { 539 const GURL& remove_origin) {
587 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( 540 BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod(
588 profile_.get(), period); 541 profile_.get(), period);
589 remover->OverrideQuotaManagerForTesting(GetMockManager());
590 542
591 AwaitCompletionHelper await_completion; 543 AwaitCompletionHelper await_completion;
592 remover->AddObserver(&await_completion); 544 remover->AddObserver(&await_completion);
593 545
594 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); 546 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
595 547
596 // BrowsingDataRemover deletes itself when it completes. 548 // BrowsingDataRemover deletes itself when it completes.
597 remover->RemoveImpl(remove_mask, remove_origin, 549 remover->RemoveImpl(remove_mask, remove_origin,
598 BrowsingDataHelper::UNPROTECTED_WEB); 550 BrowsingDataHelper::UNPROTECTED_WEB);
599 await_completion.BlockUntilNotified(); 551 await_completion.BlockUntilNotified();
600 } 552 }
601 553
602 TestingProfile* GetProfile() { 554 TestingProfile* GetProfile() {
603 return profile_.get(); 555 return profile_.get();
604 } 556 }
605 557
606 base::Time GetBeginTime() { 558 base::Time GetBeginTime() {
607 return called_with_details_->removal_begin; 559 return called_with_details_->removal_begin;
608 } 560 }
609 561
610 int GetRemovalMask() { 562 int GetRemovalMask() {
611 return called_with_details_->removal_mask; 563 return called_with_details_->removal_mask;
612 } 564 }
613 565
614 int GetOriginSetMask() { 566 int GetOriginSetMask() {
615 return called_with_details_->origin_set_mask; 567 return called_with_details_->origin_set_mask;
616 } 568 }
617 569
618 quota::MockQuotaManager* GetMockManager() {
619 if (!quota_manager_.get()) {
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 }
629
630 // content::NotificationObserver implementation. 570 // content::NotificationObserver implementation.
631 virtual void Observe(int type, 571 virtual void Observe(int type,
632 const content::NotificationSource& source, 572 const content::NotificationSource& source,
633 const content::NotificationDetails& details) OVERRIDE { 573 const content::NotificationDetails& details) OVERRIDE {
634 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); 574 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED);
635 575
636 // We're not taking ownership of the details object, but storing a copy of 576 // We're not taking ownership of the details object, but storing a copy of
637 // it locally. 577 // it locally.
638 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( 578 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails(
639 *content::Details<BrowsingDataRemover::NotificationDetails>( 579 *content::Details<BrowsingDataRemover::NotificationDetails>(
640 details).ptr())); 580 details).ptr()));
641 581
642 registrar_.RemoveAll(); 582 registrar_.RemoveAll();
643 } 583 }
644 584
645 private: 585 private:
646 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; 586 scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_;
647 content::NotificationRegistrar registrar_; 587 content::NotificationRegistrar registrar_;
648 588
649 content::TestBrowserThreadBundle thread_bundle_; 589 content::TestBrowserThreadBundle thread_bundle_;
650 scoped_ptr<TestingProfile> profile_; 590 scoped_ptr<TestingProfile> profile_;
651 scoped_refptr<quota::MockQuotaManager> quota_manager_;
652 591
653 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); 592 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest);
654 }; 593 };
655 594
656 // Tests --------------------------------------------------------------------- 595 // Tests ---------------------------------------------------------------------
657 596
658 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { 597 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) {
659 RemoveProfileCookieTester tester(GetProfile()); 598 RemoveProfileCookieTester tester(GetProfile());
660 599
661 tester.AddCookie(); 600 tester.AddCookie();
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 removal_mask, false); 877 removal_mask, false);
939 EXPECT_EQ(removal_mask, GetRemovalMask()); 878 EXPECT_EQ(removal_mask, GetRemovalMask());
940 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); 879 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
941 880
942 // Cookie should be gone; history should remain. 881 // Cookie should be gone; history should remain.
943 EXPECT_FALSE(cookie_tester.ContainsCookie()); 882 EXPECT_FALSE(cookie_tester.ContainsCookie());
944 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); 883 EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1));
945 } 884 }
946 #endif 885 #endif
947 886
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) {
Mike West 2013/10/29 11:14:32 Why remove all these tests? I think you can certai
lazyboy 2013/10/30 00:33:23 Good point, I was hesitant translating and moving
973 PopulateTestQuotaManagedData(GetMockManager());
974 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
975 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
976 BrowsingDataRemover::REMOVE_WEBSQL |
977 BrowsingDataRemover::REMOVE_APPCACHE |
978 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
979
980 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
981 BrowsingDataRemover::REMOVE_WEBSQL |
982 BrowsingDataRemover::REMOVE_APPCACHE |
983 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
984 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
985 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
986 kClientFile));
987 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
988 kClientFile));
989 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
990 kClientFile));
991 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
992 kClientFile));
993 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
994 kClientFile));
995 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
996 kClientFile));
997 }
998
999 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) {
1000 PopulateTestQuotaManagedTemporaryData(GetMockManager());
1001 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1002 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1003 BrowsingDataRemover::REMOVE_WEBSQL |
1004 BrowsingDataRemover::REMOVE_APPCACHE |
1005 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
1006
1007 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1008 BrowsingDataRemover::REMOVE_WEBSQL |
1009 BrowsingDataRemover::REMOVE_APPCACHE |
1010 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
1011 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1012 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1013 kClientFile));
1014 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1015 kClientFile));
1016 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1017 kClientFile));
1018 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1019 kClientFile));
1020 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1021 kClientFile));
1022 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1023 kClientFile));
1024 }
1025
1026 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) {
1027 PopulateTestQuotaManagedPersistentData(GetMockManager());
1028 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1029 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1030 BrowsingDataRemover::REMOVE_WEBSQL |
1031 BrowsingDataRemover::REMOVE_APPCACHE |
1032 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
1033
1034 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1035 BrowsingDataRemover::REMOVE_WEBSQL |
1036 BrowsingDataRemover::REMOVE_APPCACHE |
1037 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
1038 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1039 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1040 kClientFile));
1041 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1042 kClientFile));
1043 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1044 kClientFile));
1045 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1046 kClientFile));
1047 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1048 kClientFile));
1049 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1050 kClientFile));
1051 }
1052
1053 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) {
1054 GetMockManager(); // Creates the QuotaManager instance.
1055
1056 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1057 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1058 BrowsingDataRemover::REMOVE_WEBSQL |
1059 BrowsingDataRemover::REMOVE_APPCACHE |
1060 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
1061
1062 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1063 BrowsingDataRemover::REMOVE_WEBSQL |
1064 BrowsingDataRemover::REMOVE_APPCACHE |
1065 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
1066 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1067 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1068 kClientFile));
1069 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1070 kClientFile));
1071 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1072 kClientFile));
1073 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1074 kClientFile));
1075 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1076 kClientFile));
1077 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1078 kClientFile));
1079 }
1080
1081 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) {
1082 PopulateTestQuotaManagedData(GetMockManager());
1083
1084 // Remove Origin 1.
1085 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING,
1086 BrowsingDataRemover::REMOVE_APPCACHE |
1087 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1088 BrowsingDataRemover::REMOVE_INDEXEDDB |
1089 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1);
1090
1091 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
1092 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1093 BrowsingDataRemover::REMOVE_INDEXEDDB |
1094 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
1095 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1096 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1097 kClientFile));
1098 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1099 kClientFile));
1100 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1101 kClientFile));
1102 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1103 kClientFile));
1104 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1105 kClientFile));
1106 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1107 kClientFile));
1108 }
1109
1110 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) {
1111 PopulateTestQuotaManagedData(GetMockManager());
1112
1113 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
1114 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1115 BrowsingDataRemover::REMOVE_WEBSQL |
1116 BrowsingDataRemover::REMOVE_APPCACHE |
1117 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
1118
1119 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1120 BrowsingDataRemover::REMOVE_WEBSQL |
1121 BrowsingDataRemover::REMOVE_APPCACHE |
1122 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
1123 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1124 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1125 kClientFile));
1126 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1127 kClientFile));
1128 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1129 kClientFile));
1130 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1131 kClientFile));
1132 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1133 kClientFile));
1134 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1135 kClientFile));
1136 }
1137
1138 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) {
1139 PopulateTestQuotaManagedData(GetMockManager());
1140
1141 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK,
1142 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1143 BrowsingDataRemover::REMOVE_WEBSQL |
1144 BrowsingDataRemover::REMOVE_APPCACHE |
1145 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
1146
1147 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1148 BrowsingDataRemover::REMOVE_WEBSQL |
1149 BrowsingDataRemover::REMOVE_APPCACHE |
1150 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
1151 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1152 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1153 kClientFile));
1154 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1155 kClientFile));
1156 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1157 kClientFile));
1158 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1159 kClientFile));
1160 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1161 kClientFile));
1162 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1163 kClientFile));
1164 }
1165
1166 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) {
1167 // Protect kOrigin1.
1168 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
1169 new MockExtensionSpecialStoragePolicy;
1170 mock_policy->AddProtected(kOrigin1.GetOrigin());
1171 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
1172
1173 PopulateTestQuotaManagedData(GetMockManager());
1174
1175 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1176 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1177 BrowsingDataRemover::REMOVE_WEBSQL |
1178 BrowsingDataRemover::REMOVE_APPCACHE |
1179 BrowsingDataRemover::REMOVE_INDEXEDDB, false);
1180
1181 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1182 BrowsingDataRemover::REMOVE_WEBSQL |
1183 BrowsingDataRemover::REMOVE_APPCACHE |
1184 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
1185 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1186 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1187 kClientFile));
1188 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1189 kClientFile));
1190 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1191 kClientFile));
1192 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1193 kClientFile));
1194 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1195 kClientFile));
1196 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1197 kClientFile));
1198 }
1199
1200 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) {
1201 // Protect kOrigin1.
1202 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
1203 new MockExtensionSpecialStoragePolicy;
1204 mock_policy->AddProtected(kOrigin1.GetOrigin());
1205 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
1206
1207 PopulateTestQuotaManagedData(GetMockManager());
1208
1209 // Try to remove kOrigin1. Expect failure.
1210 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING,
1211 BrowsingDataRemover::REMOVE_APPCACHE |
1212 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1213 BrowsingDataRemover::REMOVE_INDEXEDDB |
1214 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1);
1215
1216 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
1217 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1218 BrowsingDataRemover::REMOVE_INDEXEDDB |
1219 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
1220 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1221 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1222 kClientFile));
1223 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1224 kClientFile));
1225 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1226 kClientFile));
1227 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1228 kClientFile));
1229 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1230 kClientFile));
1231 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1232 kClientFile));
1233 }
1234
1235 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) {
1236 // Protect kOrigin1.
1237 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
1238 new MockExtensionSpecialStoragePolicy;
1239 mock_policy->AddProtected(kOrigin1.GetOrigin());
1240 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
1241
1242 PopulateTestQuotaManagedData(GetMockManager());
1243
1244 // Try to remove kOrigin1. Expect success.
1245 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1246 BrowsingDataRemover::REMOVE_APPCACHE |
1247 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1248 BrowsingDataRemover::REMOVE_INDEXEDDB |
1249 BrowsingDataRemover::REMOVE_WEBSQL, true);
1250
1251 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
1252 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1253 BrowsingDataRemover::REMOVE_INDEXEDDB |
1254 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
1255 EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB |
1256 BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1257 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1258 kClientFile));
1259 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1260 kClientFile));
1261 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1262 kClientFile));
1263 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1264 kClientFile));
1265 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1266 kClientFile));
1267 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1268 kClientFile));
1269 }
1270
1271 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) {
1272 PopulateTestQuotaManagedNonBrowsingData(GetMockManager());
1273
1274 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1275 BrowsingDataRemover::REMOVE_APPCACHE |
1276 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1277 BrowsingDataRemover::REMOVE_INDEXEDDB |
1278 BrowsingDataRemover::REMOVE_WEBSQL, false);
1279
1280 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
1281 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1282 BrowsingDataRemover::REMOVE_INDEXEDDB |
1283 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
1284 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1285
1286 // Check that extension and devtools data isn't removed.
1287 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary,
1288 kClientFile));
1289 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent,
1290 kClientFile));
1291 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary,
1292 kClientFile));
1293 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent,
1294 kClientFile));
1295 }
1296
1297 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { 887 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) {
1298 RemoveHistoryTester tester; 888 RemoveHistoryTester tester;
1299 ASSERT_TRUE(tester.Init(GetProfile())); 889 ASSERT_TRUE(tester.Init(GetProfile()));
1300 890
1301 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 891 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
1302 892
1303 tester.AddHistory(kOrigin1, base::Time::Now()); 893 tester.AddHistory(kOrigin1, base::Time::Now());
1304 tester.AddHistory(kOrigin2, two_hours_ago); 894 tester.AddHistory(kOrigin2, two_hours_ago);
1305 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1)); 895 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin1));
1306 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2)); 896 ASSERT_TRUE(tester.HistoryContainsURL(kOrigin2));
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1384 BlockUntilBrowsingDataRemoved( 974 BlockUntilBrowsingDataRemoved(
1385 BrowsingDataRemover::LAST_HOUR, 975 BrowsingDataRemover::LAST_HOUR,
1386 BrowsingDataRemover::REMOVE_HISTORY, false); 976 BrowsingDataRemover::REMOVE_HISTORY, false);
1387 977
1388 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 978 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
1389 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); 979 EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
1390 EXPECT_TRUE(tester.HasOrigin(std::string())); 980 EXPECT_TRUE(tester.HasOrigin(std::string()));
1391 EXPECT_FALSE(tester.HasOrigin(kWebOrigin)); 981 EXPECT_FALSE(tester.HasOrigin(kWebOrigin));
1392 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin)); 982 EXPECT_TRUE(tester.HasOrigin(kChromeOrigin));
1393 } 983 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698