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

Side by Side Diff: chrome/browser/extensions/api/browsing_data/browsing_data_test.cc

Issue 2827523003: Move BrowsingDataRemover to content/ (Closed)
Patch Set: Rebase over codereview.chromium.org/2815913005 Created 3 years, 7 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
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 <memory> 5 #include <memory>
6 #include <string> 6 #include <string>
7 7
8 #include "base/json/json_string_value_serializer.h" 8 #include "base/json/json_string_value_serializer.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/strings/pattern.h" 10 #include "base/strings/pattern.h"
11 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chrome/browser/browsing_data/browsing_data_helper.h" 13 #include "chrome/browser/browsing_data/browsing_data_helper.h"
14 #include "chrome/browser/browsing_data/browsing_data_remover.h" 14
15 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
16 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" 15 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
17 #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h" 16 #include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h"
18 #include "chrome/browser/extensions/extension_function_test_utils.h" 17 #include "chrome/browser/extensions/extension_function_test_utils.h"
19 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
20 #include "chrome/browser/ui/browser.h" 19 #include "chrome/browser/ui/browser.h"
21 #include "chrome/common/pref_names.h" 20 #include "chrome/common/pref_names.h"
22 #include "chrome/test/base/in_process_browser_test.h" 21 #include "chrome/test/base/in_process_browser_test.h"
23 #include "components/browsing_data/core/browsing_data_utils.h" 22 #include "components/browsing_data/core/browsing_data_utils.h"
24 #include "components/browsing_data/core/pref_names.h" 23 #include "components/browsing_data/core/pref_names.h"
25 #include "components/prefs/pref_service.h" 24 #include "components/prefs/pref_service.h"
25 #include "content/public/browser/browsing_data_remover.h"
26 26
27 using extension_function_test_utils::RunFunctionAndReturnError; 27 using extension_function_test_utils::RunFunctionAndReturnError;
28 using extension_function_test_utils::RunFunctionAndReturnSingleResult; 28 using extension_function_test_utils::RunFunctionAndReturnSingleResult;
29 29
30 namespace { 30 namespace {
31 31
32 enum OriginTypeMask { 32 enum OriginTypeMask {
33 UNPROTECTED_WEB = BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, 33 UNPROTECTED_WEB = content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB,
34 PROTECTED_WEB = BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB, 34 PROTECTED_WEB = content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
35 EXTENSION = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION 35 EXTENSION = ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EXTENSION
36 }; 36 };
37 37
38 const char kRemoveEverythingArguments[] = 38 const char kRemoveEverythingArguments[] =
39 "[{\"since\": 1000}, {" 39 "[{\"since\": 1000}, {"
40 "\"appcache\": true, \"cache\": true, \"cookies\": true, " 40 "\"appcache\": true, \"cache\": true, \"cookies\": true, "
41 "\"downloads\": true, \"fileSystems\": true, \"formData\": true, " 41 "\"downloads\": true, \"fileSystems\": true, \"formData\": true, "
42 "\"history\": true, \"indexedDB\": true, \"localStorage\": true, " 42 "\"history\": true, \"indexedDB\": true, \"localStorage\": true, "
43 "\"serverBoundCertificates\": true, \"passwords\": true, " 43 "\"serverBoundCertificates\": true, \"passwords\": true, "
44 "\"pluginData\": true, \"serviceWorkers\": true, \"cacheStorage\": true, " 44 "\"pluginData\": true, \"serviceWorkers\": true, \"cacheStorage\": true, "
(...skipping 10 matching lines...) Expand all
55 return remover_->GetLastUsedRemovalMask(); 55 return remover_->GetLastUsedRemovalMask();
56 } 56 }
57 57
58 int GetOriginTypeMask() { 58 int GetOriginTypeMask() {
59 return remover_->GetLastUsedOriginTypeMask(); 59 return remover_->GetLastUsedOriginTypeMask();
60 } 60 }
61 61
62 protected: 62 protected:
63 void SetUpOnMainThread() override { 63 void SetUpOnMainThread() override {
64 remover_ = 64 remover_ =
65 BrowsingDataRemoverFactory::GetForBrowserContext(browser()->profile()); 65 content::BrowserContext::GetBrowsingDataRemover(browser()->profile());
66 } 66 }
67 67
68 int GetAsMask(const base::DictionaryValue* dict, std::string path, 68 int GetAsMask(const base::DictionaryValue* dict, std::string path,
69 int mask_value) { 69 int mask_value) {
70 bool result; 70 bool result;
71 EXPECT_TRUE(dict->GetBoolean(path, &result)) << "for " << path; 71 EXPECT_TRUE(dict->GetBoolean(path, &result)) << "for " << path;
72 return result ? mask_value : 0; 72 return result ? mask_value : 0;
73 } 73 }
74 74
75 void RunBrowsingDataRemoveFunctionAndCompareRemovalMask( 75 void RunBrowsingDataRemoveFunctionAndCompareRemovalMask(
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 // sufficient. 149 // sufficient.
150 EXPECT_LE(expected_since, since + 10.0 * 1000.0); 150 EXPECT_LE(expected_since, since + 10.0 * 1000.0);
151 } 151 }
152 152
153 void SetPrefsAndVerifySettings(int data_type_flags, 153 void SetPrefsAndVerifySettings(int data_type_flags,
154 int expected_origin_type_mask, 154 int expected_origin_type_mask,
155 int expected_removal_mask) { 155 int expected_removal_mask) {
156 PrefService* prefs = browser()->profile()->GetPrefs(); 156 PrefService* prefs = browser()->profile()->GetPrefs();
157 prefs->SetBoolean( 157 prefs->SetBoolean(
158 browsing_data::prefs::kDeleteCache, 158 browsing_data::prefs::kDeleteCache,
159 !!(data_type_flags & BrowsingDataRemover::DATA_TYPE_CACHE)); 159 !!(data_type_flags & content::BrowsingDataRemover::DATA_TYPE_CACHE));
160 prefs->SetBoolean( 160 prefs->SetBoolean(
161 browsing_data::prefs::kDeleteCookies, 161 browsing_data::prefs::kDeleteCookies,
162 !!(data_type_flags & BrowsingDataRemover::DATA_TYPE_COOKIES)); 162 !!(data_type_flags & content::BrowsingDataRemover::DATA_TYPE_COOKIES));
163 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, 163 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory,
164 !!(data_type_flags & 164 !!(data_type_flags &
165 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY)); 165 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY));
166 prefs->SetBoolean( 166 prefs->SetBoolean(
167 browsing_data::prefs::kDeleteFormData, 167 browsing_data::prefs::kDeleteFormData,
168 !!(data_type_flags & 168 !!(data_type_flags &
169 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA)); 169 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA));
170 prefs->SetBoolean( 170 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory,
171 browsing_data::prefs::kDeleteDownloadHistory, 171 !!(data_type_flags &
172 !!(data_type_flags & BrowsingDataRemover::DATA_TYPE_DOWNLOADS)); 172 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS));
173 prefs->SetBoolean( 173 prefs->SetBoolean(
174 browsing_data::prefs::kDeleteHostedAppsData, 174 browsing_data::prefs::kDeleteHostedAppsData,
175 !!(data_type_flags & ChromeBrowsingDataRemoverDelegate:: 175 !!(data_type_flags & ChromeBrowsingDataRemoverDelegate::
176 DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY)); 176 DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY));
177 prefs->SetBoolean( 177 prefs->SetBoolean(
178 browsing_data::prefs::kDeletePasswords, 178 browsing_data::prefs::kDeletePasswords,
179 !!(data_type_flags & 179 !!(data_type_flags &
180 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS)); 180 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS));
181 prefs->SetBoolean( 181 prefs->SetBoolean(
182 prefs::kClearPluginLSODataEnabled, 182 prefs::kClearPluginLSODataEnabled,
(...skipping 17 matching lines...) Expand all
200 UNPROTECTED_WEB) | 200 UNPROTECTED_WEB) |
201 GetAsMask(origin_types, "protectedWeb", 201 GetAsMask(origin_types, "protectedWeb",
202 PROTECTED_WEB) | 202 PROTECTED_WEB) |
203 GetAsMask(origin_types, "extension", EXTENSION); 203 GetAsMask(origin_types, "extension", EXTENSION);
204 EXPECT_EQ(expected_origin_type_mask, origin_type_mask); 204 EXPECT_EQ(expected_origin_type_mask, origin_type_mask);
205 205
206 base::DictionaryValue* data_to_remove; 206 base::DictionaryValue* data_to_remove;
207 EXPECT_TRUE(result->GetDictionary("dataToRemove", &data_to_remove)); 207 EXPECT_TRUE(result->GetDictionary("dataToRemove", &data_to_remove));
208 int removal_mask = 208 int removal_mask =
209 GetAsMask(data_to_remove, "appcache", 209 GetAsMask(data_to_remove, "appcache",
210 BrowsingDataRemover::DATA_TYPE_APP_CACHE) | 210 content::BrowsingDataRemover::DATA_TYPE_APP_CACHE) |
211 GetAsMask(data_to_remove, "cache", 211 GetAsMask(data_to_remove, "cache",
212 BrowsingDataRemover::DATA_TYPE_CACHE) | 212 content::BrowsingDataRemover::DATA_TYPE_CACHE) |
213 GetAsMask(data_to_remove, "cookies", 213 GetAsMask(data_to_remove, "cookies",
214 BrowsingDataRemover::DATA_TYPE_COOKIES) | 214 content::BrowsingDataRemover::DATA_TYPE_COOKIES) |
215 GetAsMask(data_to_remove, "downloads", 215 GetAsMask(data_to_remove, "downloads",
216 BrowsingDataRemover::DATA_TYPE_DOWNLOADS) | 216 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS) |
217 GetAsMask(data_to_remove, "fileSystems", 217 GetAsMask(data_to_remove, "fileSystems",
218 BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS) | 218 content::BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS) |
219 GetAsMask(data_to_remove, "formData", 219 GetAsMask(data_to_remove, "formData",
220 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA) | 220 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA) |
221 GetAsMask(data_to_remove, "history", 221 GetAsMask(data_to_remove, "history",
222 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) | 222 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY) |
223 GetAsMask(data_to_remove, "indexedDB", 223 GetAsMask(data_to_remove, "indexedDB",
224 BrowsingDataRemover::DATA_TYPE_INDEXED_DB) | 224 content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB) |
225 GetAsMask(data_to_remove, "localStorage", 225 GetAsMask(data_to_remove, "localStorage",
226 BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE) | 226 content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE) |
227 GetAsMask(data_to_remove, "pluginData", 227 GetAsMask(data_to_remove, "pluginData",
228 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) | 228 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA) |
229 GetAsMask(data_to_remove, "passwords", 229 GetAsMask(data_to_remove, "passwords",
230 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) | 230 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) |
231 GetAsMask(data_to_remove, "serviceWorkers", 231 GetAsMask(data_to_remove, "serviceWorkers",
232 BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS) | 232 content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS) |
233 GetAsMask(data_to_remove, "cacheStorage", 233 GetAsMask(data_to_remove, "cacheStorage",
234 BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE) | 234 content::BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE) |
235 GetAsMask(data_to_remove, "webSQL", 235 GetAsMask(data_to_remove, "webSQL",
236 BrowsingDataRemover::DATA_TYPE_WEB_SQL) | 236 content::BrowsingDataRemover::DATA_TYPE_WEB_SQL) |
237 GetAsMask(data_to_remove, "serverBoundCertificates", 237 GetAsMask(data_to_remove, "serverBoundCertificates",
238 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS); 238 content::BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS);
239 239
240 EXPECT_EQ(expected_removal_mask, removal_mask); 240 EXPECT_EQ(expected_removal_mask, removal_mask);
241 } 241 }
242 242
243 // The kAllowDeletingBrowserHistory pref must be set to false before this 243 // The kAllowDeletingBrowserHistory pref must be set to false before this
244 // is called. 244 // is called.
245 void CheckRemovalPermitted(const std::string& data_types, bool permitted) { 245 void CheckRemovalPermitted(const std::string& data_types, bool permitted) {
246 scoped_refptr<BrowsingDataRemoveFunction> function = 246 scoped_refptr<BrowsingDataRemoveFunction> function =
247 new BrowsingDataRemoveFunction(); 247 new BrowsingDataRemoveFunction();
248 std::string args = "[{\"since\": 1}," + data_types + "]"; 248 std::string args = "[{\"since\": 1}," + data_types + "]";
249 249
250 if (permitted) { 250 if (permitted) {
251 EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult( 251 EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(
252 function.get(), args, browser())) << " for " << args; 252 function.get(), args, browser())) << " for " << args;
253 } else { 253 } else {
254 EXPECT_TRUE(base::MatchPattern( 254 EXPECT_TRUE(base::MatchPattern(
255 RunFunctionAndReturnError(function.get(), args, browser()), 255 RunFunctionAndReturnError(function.get(), args, browser()),
256 extension_browsing_data_api_constants::kDeleteProhibitedError)) 256 extension_browsing_data_api_constants::kDeleteProhibitedError))
257 << " for " << args; 257 << " for " << args;
258 } 258 }
259 } 259 }
260 260
261 private: 261 private:
262 // Cached pointer to BrowsingDataRemover for access to testing methods. 262 // Cached pointer to BrowsingDataRemover for access to testing methods.
263 BrowsingDataRemover* remover_; 263 content::BrowsingDataRemover* remover_;
264 }; 264 };
265 265
266 } // namespace 266 } // namespace
267 267
268 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, RemovalProhibited) { 268 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, RemovalProhibited) {
269 PrefService* prefs = browser()->profile()->GetPrefs(); 269 PrefService* prefs = browser()->profile()->GetPrefs();
270 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false); 270 prefs->SetBoolean(prefs::kAllowDeletingBrowserHistory, false);
271 271
272 CheckRemovalPermitted("{\"appcache\": true}", true); 272 CheckRemovalPermitted("{\"appcache\": true}", true);
273 CheckRemovalPermitted("{\"cache\": true}", true); 273 CheckRemovalPermitted("{\"cache\": true}", true);
(...skipping 24 matching lines...) Expand all
298 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, RemoveBrowsingDataAll) { 298 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, RemoveBrowsingDataAll) {
299 scoped_refptr<BrowsingDataRemoveFunction> function = 299 scoped_refptr<BrowsingDataRemoveFunction> function =
300 new BrowsingDataRemoveFunction(); 300 new BrowsingDataRemoveFunction();
301 EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(function.get(), 301 EXPECT_EQ(NULL, RunFunctionAndReturnSingleResult(function.get(),
302 kRemoveEverythingArguments, 302 kRemoveEverythingArguments,
303 browser())); 303 browser()));
304 304
305 EXPECT_EQ(base::Time::FromDoubleT(1.0), GetBeginTime()); 305 EXPECT_EQ(base::Time::FromDoubleT(1.0), GetBeginTime());
306 EXPECT_EQ( 306 EXPECT_EQ(
307 (ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA | 307 (ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA |
308 BrowsingDataRemover::DATA_TYPE_CACHE | 308 content::BrowsingDataRemover::DATA_TYPE_CACHE |
309 BrowsingDataRemover::DATA_TYPE_DOWNLOADS | 309 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
310 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA | 310 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA |
311 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | 311 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
312 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) & 312 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS) &
313 // TODO(benwells): implement clearing of site usage data via the 313 // TODO(benwells): implement clearing of site usage data via the
314 // browsing data API. https://crbug.com/500801. 314 // browsing data API. https://crbug.com/500801.
315 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA & 315 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA &
316 // TODO(dmurph): implement clearing of durable storage permission 316 // TODO(dmurph): implement clearing of durable storage permission
317 // via the browsing data API. https://crbug.com/500801. 317 // via the browsing data API. https://crbug.com/500801.
318 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION & 318 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION &
319 // We can't remove plugin data inside a test profile. 319 // We can't remove plugin data inside a test profile.
(...skipping 26 matching lines...) Expand all
346 346
347 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask( 347 RunBrowsingDataRemoveFunctionAndCompareOriginTypeMask(
348 ("{\"unprotectedWeb\": true, \"protectedWeb\": true, " 348 ("{\"unprotectedWeb\": true, \"protectedWeb\": true, "
349 "\"extension\": true}"), 349 "\"extension\": true}"),
350 UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION); 350 UNPROTECTED_WEB | PROTECTED_WEB | EXTENSION);
351 } 351 }
352 352
353 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, 353 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest,
354 BrowsingDataRemovalMask) { 354 BrowsingDataRemovalMask) {
355 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 355 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
356 "appcache", BrowsingDataRemover::DATA_TYPE_APP_CACHE); 356 "appcache", content::BrowsingDataRemover::DATA_TYPE_APP_CACHE);
357 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 357 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
358 "cache", BrowsingDataRemover::DATA_TYPE_CACHE); 358 "cache", content::BrowsingDataRemover::DATA_TYPE_CACHE);
359 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 359 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
360 "cookies", BrowsingDataRemover::DATA_TYPE_COOKIES); 360 "cookies", content::BrowsingDataRemover::DATA_TYPE_COOKIES);
361 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 361 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
362 "downloads", BrowsingDataRemover::DATA_TYPE_DOWNLOADS); 362 "downloads", content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
363 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 363 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
364 "fileSystems", BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS); 364 "fileSystems", content::BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS);
365 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 365 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
366 "formData", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA); 366 "formData", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA);
367 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 367 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
368 "history", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); 368 "history", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
369 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 369 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
370 "indexedDB", BrowsingDataRemover::DATA_TYPE_INDEXED_DB); 370 "indexedDB", content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB);
371 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 371 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
372 "localStorage", BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE); 372 "localStorage", content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE);
373 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 373 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
374 "serverBoundCertificates", BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS); 374 "serverBoundCertificates",
375 content::BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS);
375 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 376 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
376 "passwords", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); 377 "passwords", ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
377 // We can't remove plugin data inside a test profile. 378 // We can't remove plugin data inside a test profile.
378 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 379 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
379 "serviceWorkers", BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS); 380 "serviceWorkers",
381 content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS);
380 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 382 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
381 "cacheStorage", BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE); 383 "cacheStorage", content::BrowsingDataRemover::DATA_TYPE_CACHE_STORAGE);
382 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask( 384 RunBrowsingDataRemoveWithKeyAndCompareRemovalMask(
383 "webSQL", BrowsingDataRemover::DATA_TYPE_WEB_SQL); 385 "webSQL", content::BrowsingDataRemover::DATA_TYPE_WEB_SQL);
384 } 386 }
385 387
386 // Test an arbitrary combination of data types. 388 // Test an arbitrary combination of data types.
387 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, 389 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest,
388 BrowsingDataRemovalMaskCombination) { 390 BrowsingDataRemovalMaskCombination) {
389 RunBrowsingDataRemoveFunctionAndCompareRemovalMask( 391 RunBrowsingDataRemoveFunctionAndCompareRemovalMask(
390 "{\"appcache\": true, \"cookies\": true, \"history\": true}", 392 "{\"appcache\": true, \"cookies\": true, \"history\": true}",
391 BrowsingDataRemover::DATA_TYPE_APP_CACHE | 393 content::BrowsingDataRemover::DATA_TYPE_APP_CACHE |
392 BrowsingDataRemover::DATA_TYPE_COOKIES | 394 content::BrowsingDataRemover::DATA_TYPE_COOKIES |
393 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); 395 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
394 } 396 }
395 397
396 // Make sure the remove() function accepts the format produced by settings(). 398 // Make sure the remove() function accepts the format produced by settings().
397 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, 399 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest,
398 BrowsingDataRemovalInputFromSettings) { 400 BrowsingDataRemovalInputFromSettings) {
399 PrefService* prefs = browser()->profile()->GetPrefs(); 401 PrefService* prefs = browser()->profile()->GetPrefs();
400 prefs->SetBoolean(browsing_data::prefs::kDeleteCache, true); 402 prefs->SetBoolean(browsing_data::prefs::kDeleteCache, true);
401 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, true); 403 prefs->SetBoolean(browsing_data::prefs::kDeleteBrowsingHistory, true);
402 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, true); 404 prefs->SetBoolean(browsing_data::prefs::kDeleteDownloadHistory, true);
403 prefs->SetBoolean(browsing_data::prefs::kDeleteCookies, false); 405 prefs->SetBoolean(browsing_data::prefs::kDeleteCookies, false);
404 prefs->SetBoolean(browsing_data::prefs::kDeleteFormData, false); 406 prefs->SetBoolean(browsing_data::prefs::kDeleteFormData, false);
405 prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, false); 407 prefs->SetBoolean(browsing_data::prefs::kDeleteHostedAppsData, false);
406 prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, false); 408 prefs->SetBoolean(browsing_data::prefs::kDeletePasswords, false);
407 prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, false); 409 prefs->SetBoolean(prefs::kClearPluginLSODataEnabled, false);
408 int expected_mask = BrowsingDataRemover::DATA_TYPE_CACHE | 410 int expected_mask = content::BrowsingDataRemover::DATA_TYPE_CACHE |
409 BrowsingDataRemover::DATA_TYPE_DOWNLOADS | 411 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS |
410 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY; 412 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY;
411 std::string json; 413 std::string json;
412 // Scoping for the traces. 414 // Scoping for the traces.
413 { 415 {
414 scoped_refptr<BrowsingDataSettingsFunction> settings_function = 416 scoped_refptr<BrowsingDataSettingsFunction> settings_function =
415 new BrowsingDataSettingsFunction(); 417 new BrowsingDataSettingsFunction();
416 SCOPED_TRACE("settings_json"); 418 SCOPED_TRACE("settings_json");
417 std::unique_ptr<base::Value> result_value(RunFunctionAndReturnSingleResult( 419 std::unique_ptr<base::Value> result_value(RunFunctionAndReturnSingleResult(
418 settings_function.get(), std::string("[]"), browser())); 420 settings_function.get(), std::string("[]"), browser()));
419 421
(...skipping 13 matching lines...) Expand all
433 remove_function.get(), 435 remove_function.get(),
434 std::string("[{\"since\": 1},") + json + "]", 436 std::string("[{\"since\": 1},") + json + "]",
435 browser())); 437 browser()));
436 EXPECT_EQ(expected_mask, GetRemovalMask()); 438 EXPECT_EQ(expected_mask, GetRemovalMask());
437 EXPECT_EQ(UNPROTECTED_WEB, GetOriginTypeMask()); 439 EXPECT_EQ(UNPROTECTED_WEB, GetOriginTypeMask());
438 } 440 }
439 } 441 }
440 442
441 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, ShortcutFunctionRemovalMask) { 443 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, ShortcutFunctionRemovalMask) {
442 RunAndCompareRemovalMask<BrowsingDataRemoveAppcacheFunction>( 444 RunAndCompareRemovalMask<BrowsingDataRemoveAppcacheFunction>(
443 BrowsingDataRemover::DATA_TYPE_APP_CACHE); 445 content::BrowsingDataRemover::DATA_TYPE_APP_CACHE);
444 RunAndCompareRemovalMask<BrowsingDataRemoveCacheFunction>( 446 RunAndCompareRemovalMask<BrowsingDataRemoveCacheFunction>(
445 BrowsingDataRemover::DATA_TYPE_CACHE); 447 content::BrowsingDataRemover::DATA_TYPE_CACHE);
446 RunAndCompareRemovalMask<BrowsingDataRemoveCookiesFunction>( 448 RunAndCompareRemovalMask<BrowsingDataRemoveCookiesFunction>(
447 BrowsingDataRemover::DATA_TYPE_COOKIES | 449 content::BrowsingDataRemover::DATA_TYPE_COOKIES |
448 BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS); 450 content::BrowsingDataRemover::DATA_TYPE_CHANNEL_IDS);
449 RunAndCompareRemovalMask<BrowsingDataRemoveDownloadsFunction>( 451 RunAndCompareRemovalMask<BrowsingDataRemoveDownloadsFunction>(
450 BrowsingDataRemover::DATA_TYPE_DOWNLOADS); 452 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
451 RunAndCompareRemovalMask<BrowsingDataRemoveFileSystemsFunction>( 453 RunAndCompareRemovalMask<BrowsingDataRemoveFileSystemsFunction>(
452 BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS); 454 content::BrowsingDataRemover::DATA_TYPE_FILE_SYSTEMS);
453 RunAndCompareRemovalMask<BrowsingDataRemoveFormDataFunction>( 455 RunAndCompareRemovalMask<BrowsingDataRemoveFormDataFunction>(
454 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA); 456 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA);
455 RunAndCompareRemovalMask<BrowsingDataRemoveHistoryFunction>( 457 RunAndCompareRemovalMask<BrowsingDataRemoveHistoryFunction>(
456 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); 458 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
457 RunAndCompareRemovalMask<BrowsingDataRemoveIndexedDBFunction>( 459 RunAndCompareRemovalMask<BrowsingDataRemoveIndexedDBFunction>(
458 BrowsingDataRemover::DATA_TYPE_INDEXED_DB); 460 content::BrowsingDataRemover::DATA_TYPE_INDEXED_DB);
459 RunAndCompareRemovalMask<BrowsingDataRemoveLocalStorageFunction>( 461 RunAndCompareRemovalMask<BrowsingDataRemoveLocalStorageFunction>(
460 BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE); 462 content::BrowsingDataRemover::DATA_TYPE_LOCAL_STORAGE);
461 // We can't remove plugin data inside a test profile. 463 // We can't remove plugin data inside a test profile.
462 RunAndCompareRemovalMask<BrowsingDataRemovePasswordsFunction>( 464 RunAndCompareRemovalMask<BrowsingDataRemovePasswordsFunction>(
463 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); 465 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
464 RunAndCompareRemovalMask<BrowsingDataRemoveServiceWorkersFunction>( 466 RunAndCompareRemovalMask<BrowsingDataRemoveServiceWorkersFunction>(
465 BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS); 467 content::BrowsingDataRemover::DATA_TYPE_SERVICE_WORKERS);
466 RunAndCompareRemovalMask<BrowsingDataRemoveWebSQLFunction>( 468 RunAndCompareRemovalMask<BrowsingDataRemoveWebSQLFunction>(
467 BrowsingDataRemover::DATA_TYPE_WEB_SQL); 469 content::BrowsingDataRemover::DATA_TYPE_WEB_SQL);
468 } 470 }
469 471
470 // Test the processing of the 'delete since' preference. 472 // Test the processing of the 'delete since' preference.
471 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSince) { 473 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSince) {
472 SetSinceAndVerify(browsing_data::TimePeriod::ALL_TIME); 474 SetSinceAndVerify(browsing_data::TimePeriod::ALL_TIME);
473 SetSinceAndVerify(browsing_data::TimePeriod::LAST_HOUR); 475 SetSinceAndVerify(browsing_data::TimePeriod::LAST_HOUR);
474 SetSinceAndVerify(browsing_data::TimePeriod::LAST_DAY); 476 SetSinceAndVerify(browsing_data::TimePeriod::LAST_DAY);
475 SetSinceAndVerify(browsing_data::TimePeriod::LAST_WEEK); 477 SetSinceAndVerify(browsing_data::TimePeriod::LAST_WEEK);
476 SetSinceAndVerify(browsing_data::TimePeriod::FOUR_WEEKS); 478 SetSinceAndVerify(browsing_data::TimePeriod::FOUR_WEEKS);
477 } 479 }
478 480
479 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionEmpty) { 481 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionEmpty) {
480 SetPrefsAndVerifySettings(0, 0, 0); 482 SetPrefsAndVerifySettings(0, 0, 0);
481 } 483 }
482 484
483 // Test straightforward settings, mapped 1:1 to data types. 485 // Test straightforward settings, mapped 1:1 to data types.
484 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSimple) { 486 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSimple) {
485 SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_CACHE, 0, 487 SetPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_CACHE, 0,
486 BrowsingDataRemover::DATA_TYPE_CACHE); 488 content::BrowsingDataRemover::DATA_TYPE_CACHE);
487 SetPrefsAndVerifySettings( 489 SetPrefsAndVerifySettings(
488 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, 0, 490 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY, 0,
489 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY); 491 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY);
490 SetPrefsAndVerifySettings( 492 SetPrefsAndVerifySettings(
491 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, 0, 493 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA, 0,
492 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA); 494 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_FORM_DATA);
493 SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_DOWNLOADS, 0, 495 SetPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
494 BrowsingDataRemover::DATA_TYPE_DOWNLOADS); 496 0,
497 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
495 SetPrefsAndVerifySettings( 498 SetPrefsAndVerifySettings(
496 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, 0, 499 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS, 0,
497 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS); 500 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PASSWORDS);
498 } 501 }
499 502
500 // Test cookie and app data settings. 503 // Test cookie and app data settings.
501 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSiteData) { 504 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionSiteData) {
502 int site_data_no_durable_or_usage_or_external = 505 int site_data_no_durable_or_usage_or_external =
503 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA & 506 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
504 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA & 507 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA &
505 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION & 508 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION &
506 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA; 509 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA;
507 int site_data_no_plugins_durable_usage_external = 510 int site_data_no_plugins_durable_usage_external =
508 site_data_no_durable_or_usage_or_external & 511 site_data_no_durable_or_usage_or_external &
509 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA; 512 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA;
510 513
511 SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_COOKIES, 514 SetPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_COOKIES,
512 UNPROTECTED_WEB, 515 UNPROTECTED_WEB,
513 site_data_no_plugins_durable_usage_external); 516 site_data_no_plugins_durable_usage_external);
514 SetPrefsAndVerifySettings( 517 SetPrefsAndVerifySettings(
515 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY, 518 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY,
516 PROTECTED_WEB, site_data_no_plugins_durable_usage_external); 519 PROTECTED_WEB, site_data_no_plugins_durable_usage_external);
517 SetPrefsAndVerifySettings(BrowsingDataRemover::DATA_TYPE_COOKIES | 520 SetPrefsAndVerifySettings(content::BrowsingDataRemover::DATA_TYPE_COOKIES |
518 ChromeBrowsingDataRemoverDelegate:: 521 ChromeBrowsingDataRemoverDelegate::
519 DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY, 522 DATA_TYPE_HOSTED_APP_DATA_TEST_ONLY,
520 PROTECTED_WEB | UNPROTECTED_WEB, 523 PROTECTED_WEB | UNPROTECTED_WEB,
521 site_data_no_plugins_durable_usage_external); 524 site_data_no_plugins_durable_usage_external);
522 SetPrefsAndVerifySettings( 525 SetPrefsAndVerifySettings(
523 BrowsingDataRemover::DATA_TYPE_COOKIES | 526 content::BrowsingDataRemover::DATA_TYPE_COOKIES |
524 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA, 527 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA,
525 UNPROTECTED_WEB, site_data_no_durable_or_usage_or_external); 528 UNPROTECTED_WEB, site_data_no_durable_or_usage_or_external);
526 } 529 }
527 530
528 // Test an arbitrary assortment of settings. 531 // Test an arbitrary assortment of settings.
529 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionAssorted) { 532 IN_PROC_BROWSER_TEST_F(ExtensionBrowsingDataTest, SettingsFunctionAssorted) {
530 int site_data_no_plugins_durable_usage_external = 533 int site_data_no_plugins_durable_usage_external =
531 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA & 534 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_DATA &
532 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION & 535 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_DURABLE_PERMISSION &
533 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA & 536 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_SITE_USAGE_DATA &
534 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA & 537 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_PLUGIN_DATA &
535 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA; 538 ~ChromeBrowsingDataRemoverDelegate::DATA_TYPE_EXTERNAL_PROTOCOL_DATA;
536 539
537 SetPrefsAndVerifySettings( 540 SetPrefsAndVerifySettings(
538 BrowsingDataRemover::DATA_TYPE_COOKIES | 541 content::BrowsingDataRemover::DATA_TYPE_COOKIES |
539 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | 542 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
540 BrowsingDataRemover::DATA_TYPE_DOWNLOADS, 543 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS,
541 UNPROTECTED_WEB, 544 UNPROTECTED_WEB,
542 site_data_no_plugins_durable_usage_external | 545 site_data_no_plugins_durable_usage_external |
543 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY | 546 ChromeBrowsingDataRemoverDelegate::DATA_TYPE_HISTORY |
544 BrowsingDataRemover::DATA_TYPE_DOWNLOADS); 547 content::BrowsingDataRemover::DATA_TYPE_DOWNLOADS);
545 } 548 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/browsing_data/browsing_data_api.cc ('k') | chrome/browser/net/errorpage_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698