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

Side by Side Diff: net/reporting/reporting_browsing_data_remover_unittest.cc

Issue 2752523005: Reporting: Implement browsing data remover. (Closed)
Patch Set: Make requested change. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/reporting/reporting_browsing_data_remover.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/reporting/reporting_browsing_data_remover.h"
6
7 #include <string>
8
9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h"
11 #include "base/test/simple_test_tick_clock.h"
12 #include "net/reporting/reporting_cache.h"
13 #include "net/reporting/reporting_client.h"
14 #include "net/reporting/reporting_report.h"
15 #include "net/reporting/reporting_test_util.h"
16 #include "testing/gtest/include/gtest/gtest.h"
17
18 namespace net {
19 namespace {
20
21 class ReportingBrowsingDataRemoverTest : public ReportingTestBase {
22 protected:
23 void RemoveBrowsingData(bool remove_reports,
24 bool remove_clients,
25 std::string host) {
26 int data_type_mask = 0;
27 if (remove_reports)
28 data_type_mask |= ReportingBrowsingDataRemover::DATA_TYPE_REPORTS;
29 if (remove_clients)
30 data_type_mask |= ReportingBrowsingDataRemover::DATA_TYPE_CLIENTS;
31
32 base::Callback<bool(const GURL&)> origin_filter;
33 if (!host.empty()) {
34 origin_filter =
35 base::Bind(&ReportingBrowsingDataRemoverTest::HostIs, host);
36 }
37
38 ReportingBrowsingDataRemover::RemoveBrowsingData(context(), data_type_mask,
39 origin_filter);
40 }
41
42 static bool HostIs(std::string host, const GURL& url) {
43 return url.host() == host;
44 }
45
46 size_t report_count() {
47 std::vector<const ReportingReport*> reports;
48 cache()->GetReports(&reports);
49 return reports.size();
50 }
51
52 size_t client_count() {
53 std::vector<const ReportingClient*> clients;
54 cache()->GetClients(&clients);
55 return clients.size();
56 }
57
58 const GURL kUrl1_ = GURL("https://origin1/path");
59 const GURL kUrl2_ = GURL("https://origin2/path");
60 const url::Origin kOrigin1_ = url::Origin(kUrl1_);
61 const url::Origin kOrigin2_ = url::Origin(kUrl2_);
62 const GURL kEndpoint_ = GURL("https://endpoint/");
63 const std::string kGroup_ = "group";
64 const std::string kType_ = "default";
65 };
66
67 TEST_F(ReportingBrowsingDataRemoverTest, RemoveNothing) {
68 cache()->AddReport(kUrl1_, kGroup_, kType_,
69 base::MakeUnique<base::DictionaryValue>(),
70 tick_clock()->NowTicks(), 0);
71 cache()->AddReport(kUrl2_, kGroup_, kType_,
72 base::MakeUnique<base::DictionaryValue>(),
73 tick_clock()->NowTicks(), 0);
74 cache()->SetClient(kOrigin1_, kEndpoint_,
75 ReportingClient::Subdomains::EXCLUDE, kGroup_,
76 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
77 cache()->SetClient(kOrigin2_, kEndpoint_,
78 ReportingClient::Subdomains::EXCLUDE, kGroup_,
79 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
80
81 RemoveBrowsingData(/* remove_reports= */ false, /* remove_clients= */ false,
82 /* host= */ "");
83 EXPECT_EQ(2u, report_count());
84 EXPECT_EQ(2u, client_count());
85 }
86
87 TEST_F(ReportingBrowsingDataRemoverTest, RemoveAllReports) {
88 cache()->AddReport(kUrl1_, kGroup_, kType_,
89 base::MakeUnique<base::DictionaryValue>(),
90 tick_clock()->NowTicks(), 0);
91 cache()->AddReport(kUrl2_, kGroup_, kType_,
92 base::MakeUnique<base::DictionaryValue>(),
93 tick_clock()->NowTicks(), 0);
94 cache()->SetClient(kOrigin1_, kEndpoint_,
95 ReportingClient::Subdomains::EXCLUDE, kGroup_,
96 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
97 cache()->SetClient(kOrigin2_, kEndpoint_,
98 ReportingClient::Subdomains::EXCLUDE, kGroup_,
99 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
100
101 RemoveBrowsingData(/* remove_reports= */ true, /* remove_clients= */ false,
102 /* host= */ "");
103 EXPECT_EQ(0u, report_count());
104 EXPECT_EQ(2u, client_count());
105 }
106
107 TEST_F(ReportingBrowsingDataRemoverTest, RemoveAllClients) {
108 cache()->AddReport(kUrl1_, kGroup_, kType_,
109 base::MakeUnique<base::DictionaryValue>(),
110 tick_clock()->NowTicks(), 0);
111 cache()->AddReport(kUrl2_, kGroup_, kType_,
112 base::MakeUnique<base::DictionaryValue>(),
113 tick_clock()->NowTicks(), 0);
114 cache()->SetClient(kOrigin1_, kEndpoint_,
115 ReportingClient::Subdomains::EXCLUDE, kGroup_,
116 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
117 cache()->SetClient(kOrigin2_, kEndpoint_,
118 ReportingClient::Subdomains::EXCLUDE, kGroup_,
119 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
120
121 RemoveBrowsingData(/* remove_reports= */ false, /* remove_clients= */ true,
122 /* host= */ "");
123 EXPECT_EQ(2u, report_count());
124 EXPECT_EQ(0u, client_count());
125 }
126
127 TEST_F(ReportingBrowsingDataRemoverTest, RemoveAllReportsAndClients) {
128 cache()->AddReport(kUrl1_, kGroup_, kType_,
129 base::MakeUnique<base::DictionaryValue>(),
130 tick_clock()->NowTicks(), 0);
131 cache()->AddReport(kUrl2_, kGroup_, kType_,
132 base::MakeUnique<base::DictionaryValue>(),
133 tick_clock()->NowTicks(), 0);
134 cache()->SetClient(kOrigin1_, kEndpoint_,
135 ReportingClient::Subdomains::EXCLUDE, kGroup_,
136 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
137 cache()->SetClient(kOrigin2_, kEndpoint_,
138 ReportingClient::Subdomains::EXCLUDE, kGroup_,
139 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
140
141 RemoveBrowsingData(/* remove_reports= */ true, /* remove_clients= */ true,
142 /* host= */ "");
143 EXPECT_EQ(0u, report_count());
144 EXPECT_EQ(0u, client_count());
145 }
146
147 TEST_F(ReportingBrowsingDataRemoverTest, RemoveSomeReports) {
148 cache()->AddReport(kUrl1_, kGroup_, kType_,
149 base::MakeUnique<base::DictionaryValue>(),
150 tick_clock()->NowTicks(), 0);
151 cache()->AddReport(kUrl2_, kGroup_, kType_,
152 base::MakeUnique<base::DictionaryValue>(),
153 tick_clock()->NowTicks(), 0);
154 cache()->SetClient(kOrigin1_, kEndpoint_,
155 ReportingClient::Subdomains::EXCLUDE, kGroup_,
156 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
157 cache()->SetClient(kOrigin2_, kEndpoint_,
158 ReportingClient::Subdomains::EXCLUDE, kGroup_,
159 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
160
161 RemoveBrowsingData(/* remove_reports= */ true, /* remove_clients= */ false,
162 /* host= */ kUrl1_.host());
163 EXPECT_EQ(2u, client_count());
164
165 std::vector<const ReportingReport*> reports;
166 cache()->GetReports(&reports);
167 ASSERT_EQ(1u, reports.size());
168 EXPECT_EQ(kUrl2_, reports[0]->url);
169 }
170
171 TEST_F(ReportingBrowsingDataRemoverTest, RemoveSomeClients) {
172 cache()->AddReport(kUrl1_, kGroup_, kType_,
173 base::MakeUnique<base::DictionaryValue>(),
174 tick_clock()->NowTicks(), 0);
175 cache()->AddReport(kUrl2_, kGroup_, kType_,
176 base::MakeUnique<base::DictionaryValue>(),
177 tick_clock()->NowTicks(), 0);
178 cache()->SetClient(kOrigin1_, kEndpoint_,
179 ReportingClient::Subdomains::EXCLUDE, kGroup_,
180 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
181 cache()->SetClient(kOrigin2_, kEndpoint_,
182 ReportingClient::Subdomains::EXCLUDE, kGroup_,
183 tick_clock()->NowTicks() + base::TimeDelta::FromDays(7));
184
185 RemoveBrowsingData(/* remove_reports= */ false, /* remove_clients= */ true,
186 /* host= */ kUrl1_.host());
187 EXPECT_EQ(2u, report_count());
188 EXPECT_FALSE(FindClientInCache(cache(), kOrigin1_, kEndpoint_) != nullptr);
189 EXPECT_TRUE(FindClientInCache(cache(), kOrigin2_, kEndpoint_) != nullptr);
190 }
191
192 } // namespace
193 } // namespace net
OLDNEW
« no previous file with comments | « net/reporting/reporting_browsing_data_remover.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698