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

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

Issue 10413072: Teaching BrowsingDataRemover how to delete application data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Bernhard #2. Created 8 years, 6 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 | Annotate | Revision Log
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_remover.h" 5 #include "chrome/browser/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"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/file_path.h"
13 #include "base/file_util.h"
12 #include "base/message_loop.h" 14 #include "base/message_loop.h"
13 #include "base/platform_file.h" 15 #include "base/platform_file.h"
16 #include "base/utf_string_conversions.h"
17 #include "chrome/browser/browsing_data_helper.h"
14 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h" 18 #include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
15 #include "chrome/browser/history/history.h" 19 #include "chrome/browser/history/history.h"
16 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 20 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
17 #include "chrome/common/chrome_notification_types.h" 21 #include "chrome/common/chrome_notification_types.h"
18 #include "chrome/common/pref_names.h" 22 #include "chrome/common/pref_names.h"
19 #include "chrome/test/base/testing_browser_process.h" 23 #include "chrome/test/base/testing_browser_process.h"
20 #include "chrome/test/base/testing_pref_service.h" 24 #include "chrome/test/base/testing_pref_service.h"
21 #include "chrome/test/base/testing_profile.h" 25 #include "chrome/test/base/testing_profile.h"
26 #include "content/public/browser/dom_storage_context.h"
22 #include "content/public/browser/notification_service.h" 27 #include "content/public/browser/notification_service.h"
23 #include "content/test/test_browser_thread.h" 28 #include "content/test/test_browser_thread.h"
24 #include "net/base/server_bound_cert_service.h" 29 #include "net/base/server_bound_cert_service.h"
25 #include "net/base/server_bound_cert_store.h" 30 #include "net/base/server_bound_cert_store.h"
26 #include "net/base/ssl_client_cert_type.h" 31 #include "net/base/ssl_client_cert_type.h"
27 #include "net/cookies/cookie_monster.h" 32 #include "net/cookies/cookie_monster.h"
28 #include "net/url_request/url_request_context.h" 33 #include "net/url_request/url_request_context.h"
29 #include "net/url_request/url_request_context_getter.h" 34 #include "net/url_request/url_request_context_getter.h"
30 #include "testing/gtest/include/gtest/gtest.h" 35 #include "testing/gtest/include/gtest/gtest.h"
36 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h "
37 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
38 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
39 #include "webkit/glue/webkit_glue.h"
31 #include "webkit/quota/mock_quota_manager.h" 40 #include "webkit/quota/mock_quota_manager.h"
32 #include "webkit/quota/quota_manager.h" 41 #include "webkit/quota/quota_manager.h"
33 #include "webkit/quota/quota_types.h" 42 #include "webkit/quota/quota_types.h"
34 43
35 using content::BrowserThread; 44 using content::BrowserThread;
36 45
37 namespace { 46 namespace {
38 47
39 const char kTestOrigin1[] = "http://host1:1/"; 48 const char kTestOrigin1[] = "http://host1:1/";
40 const char kTestOrigin2[] = "http://host2:1/"; 49 const char kTestOrigin2[] = "http://host2:1/";
41 const char kTestOrigin3[] = "http://host3:1/"; 50 const char kTestOrigin3[] = "http://host3:1/";
42 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; 51 const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/";
43 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; 52 const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/";
44 53
45 const GURL kOrigin1(kTestOrigin1); 54 const GURL kOrigin1(kTestOrigin1);
46 const GURL kOrigin2(kTestOrigin2); 55 const GURL kOrigin2(kTestOrigin2);
47 const GURL kOrigin3(kTestOrigin3); 56 const GURL kOrigin3(kTestOrigin3);
48 const GURL kOriginExt(kTestOriginExt); 57 const GURL kOriginExt(kTestOriginExt);
49 const GURL kOriginDevTools(kTestOriginDevTools); 58 const GURL kOriginDevTools(kTestOriginDevTools);
50 59
60 const FilePath::CharType kDomStorageOrigin1[] =
61 FILE_PATH_LITERAL("http_host1_1.localstorage");
62
63 const FilePath::CharType kDomStorageOrigin2[] =
64 FILE_PATH_LITERAL("http_host2_1.localstorage");
65
66 const FilePath::CharType kDomStorageOrigin3[] =
67 FILE_PATH_LITERAL("http_host3_1.localstorage");
68
69 const FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL(
70 "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage");
71
51 const quota::StorageType kTemporary = quota::kStorageTypeTemporary; 72 const quota::StorageType kTemporary = quota::kStorageTypeTemporary;
52 const quota::StorageType kPersistent = quota::kStorageTypePersistent; 73 const quota::StorageType kPersistent = quota::kStorageTypePersistent;
53 74
54 const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; 75 const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem;
55 const quota::QuotaClient::ID kClientDB = quota::QuotaClient::kIndexedDatabase; 76 const quota::QuotaClient::ID kClientDB = quota::QuotaClient::kIndexedDatabase;
56 77
57 } // namespace 78 } // namespace
58 79
59 class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer { 80 class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer {
60 public: 81 public:
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 // For History requests. 302 // For History requests.
282 CancelableRequestConsumer consumer_; 303 CancelableRequestConsumer consumer_;
283 bool query_url_success_; 304 bool query_url_success_;
284 305
285 // TestingProfile owns the history service; we shouldn't delete it. 306 // TestingProfile owns the history service; we shouldn't delete it.
286 HistoryService* history_service_; 307 HistoryService* history_service_;
287 308
288 DISALLOW_COPY_AND_ASSIGN(RemoveHistoryTester); 309 DISALLOW_COPY_AND_ASSIGN(RemoveHistoryTester);
289 }; 310 };
290 311
312 class RemoveLocalStorageTester : public BrowsingDataRemoverTester {
313 public:
314 explicit RemoveLocalStorageTester(TestingProfile* profile)
315 : dom_storage_context_(NULL) {
316 dom_storage_context_ =
317 content::BrowserContext::GetDOMStorageContext(profile);
318 }
319
320 // Returns true, if the given URL exists.
321 bool DOMStorageExistsForOrigin(const GURL& url) {
322 GetLocalStorageFiles();
323 BlockUntilNotified();
324 for (size_t i = 0; i < files_->size(); ++i) {
325 FilePath file_path = (*files_)[i];
326 GURL origin(WebKit::WebSecurityOrigin::createFromDatabaseIdentifier(
327 webkit_glue::FilePathToWebString(file_path.BaseName())).toString());
328 if (origin == url)
329 return true;
330 }
331 return false;
332 }
333
334 void AddDOMStorageTestData() {
335 FilePath storage_path =
336 dom_storage_context_->GetFilePath(
337 ASCIIToUTF16("http_host1_1")).DirName();
338 file_util::CreateDirectory(storage_path);
339
340 // Write some files.
341 file_util::WriteFile(storage_path.Append(kDomStorageOrigin1), NULL, 0);
342 file_util::WriteFile(storage_path.Append(kDomStorageOrigin2), NULL, 0);
343 file_util::WriteFile(storage_path.Append(kDomStorageOrigin3), NULL, 0);
344 file_util::WriteFile(storage_path.Append(kDomStorageExt), NULL, 0);
345
346 // Tweak their dates.
347 file_util::SetLastModifiedTime(storage_path.Append(kDomStorageOrigin1),
348 base::Time::Now());
349 file_util::SetLastModifiedTime(storage_path.Append(kDomStorageOrigin2),
350 base::Time::Now() - base::TimeDelta::FromDays(1));
351 file_util::SetLastModifiedTime(storage_path.Append(kDomStorageOrigin3),
352 base::Time::Now() - base::TimeDelta::FromDays(60));
353 file_util::SetLastModifiedTime(storage_path.Append(kDomStorageExt),
354 base::Time::Now());
355 }
356
357 private:
358 void GetLocalStorageFiles() {
359 dom_storage_context_->GetAllStorageFiles(
360 base::Bind(&RemoveLocalStorageTester::OnGotLocalStorageFiles,
361 base::Unretained(this)));
362 }
363 void OnGotLocalStorageFiles(const std::vector<FilePath>& files) {
364 files_.reset(new std::vector<FilePath>(files));
365 Notify();
366 }
367
368 // TestingProfile owns the context; we shouldn't delete it.
369 content::DOMStorageContext* dom_storage_context_;
370
371 scoped_ptr<std::vector<FilePath> > files_;
372
373 DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester);
374 };
291 class RemoveQuotaManagedDataTester : public BrowsingDataRemoverTester { 375 class RemoveQuotaManagedDataTester : public BrowsingDataRemoverTester {
292 public: 376 public:
293 RemoveQuotaManagedDataTester() {} 377 RemoveQuotaManagedDataTester() {}
294 virtual ~RemoveQuotaManagedDataTester() {} 378 virtual ~RemoveQuotaManagedDataTester() {}
295 379
296 void PopulateTestQuotaManagedData(quota::MockQuotaManager* manager) { 380 void PopulateTestQuotaManagedData(quota::MockQuotaManager* manager) {
297 // Set up kOrigin1 with a temporary quota, kOrigin2 with a persistent 381 // Set up kOrigin1 with a temporary quota, kOrigin2 with a persistent
298 // quota, and kOrigin3 with both. kOrigin1 is modified now, kOrigin2 382 // quota, and kOrigin3 with both. kOrigin1 is modified now, kOrigin2
299 // is modified at the beginning of time, and kOrigin3 is modified one day 383 // is modified at the beginning of time, and kOrigin3 is modified one day
300 // ago. 384 // ago.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 // posts a message to the WEBKIT thread to delete some of its member 445 // posts a message to the WEBKIT thread to delete some of its member
362 // variables. We need to ensure that the profile is destroyed, and that 446 // variables. We need to ensure that the profile is destroyed, and that
363 // the message loop is cleared out, before destroying the threads and loop. 447 // the message loop is cleared out, before destroying the threads and loop.
364 // Otherwise we leak memory. 448 // Otherwise we leak memory.
365 profile_.reset(); 449 profile_.reset();
366 message_loop_.RunAllPending(); 450 message_loop_.RunAllPending();
367 } 451 }
368 452
369 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, 453 void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period,
370 int remove_mask, 454 int remove_mask,
455 bool include_protected_origins,
371 BrowsingDataRemoverTester* tester) { 456 BrowsingDataRemoverTester* tester) {
372 BrowsingDataRemover* remover = new BrowsingDataRemover( 457 BrowsingDataRemover* remover = new BrowsingDataRemover(
373 profile_.get(), period, 458 profile_.get(), period,
374 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); 459 base::Time::Now() + base::TimeDelta::FromMilliseconds(10));
375 remover->OverrideQuotaManagerForTesting(GetMockManager()); 460 remover->OverrideQuotaManagerForTesting(GetMockManager());
376 remover->AddObserver(tester); 461 remover->AddObserver(tester);
377 462
378 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); 463 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
379 464
380 // BrowsingDataRemover deletes itself when it completes. 465 // BrowsingDataRemover deletes itself when it completes.
381 remover->Remove(remove_mask); 466 int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB;
467 if (include_protected_origins)
468 origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB;
469 remover->Remove(remove_mask, origin_set_mask);
382 tester->BlockUntilNotified(); 470 tester->BlockUntilNotified();
383 } 471 }
384 472
385 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, 473 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period,
386 int remove_mask, 474 int remove_mask,
387 const GURL& remove_origin, 475 const GURL& remove_origin,
388 BrowsingDataRemoverTester* tester) { 476 BrowsingDataRemoverTester* tester) {
389 BrowsingDataRemover* remover = new BrowsingDataRemover( 477 BrowsingDataRemover* remover = new BrowsingDataRemover(
390 profile_.get(), period, 478 profile_.get(), period,
391 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); 479 base::Time::Now() + base::TimeDelta::FromMilliseconds(10));
392 remover->OverrideQuotaManagerForTesting(GetMockManager()); 480 remover->OverrideQuotaManagerForTesting(GetMockManager());
393 remover->AddObserver(tester); 481 remover->AddObserver(tester);
394 482
395 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); 483 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
396 484
397 // BrowsingDataRemover deletes itself when it completes. 485 // BrowsingDataRemover deletes itself when it completes.
398 remover->RemoveImpl(remove_mask, remove_origin, false); 486 remover->RemoveImpl(remove_mask, remove_origin,
487 BrowsingDataHelper::UNPROTECTED_WEB);
399 tester->BlockUntilNotified(); 488 tester->BlockUntilNotified();
400 } 489 }
401 490
402 TestingProfile* GetProfile() { 491 TestingProfile* GetProfile() {
403 return profile_.get(); 492 return profile_.get();
404 } 493 }
405 494
406 base::Time GetBeginTime() { 495 base::Time GetBeginTime() {
407 return called_with_details_->removal_begin; 496 return called_with_details_->removal_begin;
408 } 497 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 // Tests --------------------------------------------------------------------- 552 // Tests ---------------------------------------------------------------------
464 553
465 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { 554 TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) {
466 scoped_ptr<RemoveProfileCookieTester> tester( 555 scoped_ptr<RemoveProfileCookieTester> tester(
467 new RemoveProfileCookieTester(GetProfile())); 556 new RemoveProfileCookieTester(GetProfile()));
468 557
469 tester->AddCookie(); 558 tester->AddCookie();
470 ASSERT_TRUE(tester->ContainsCookie()); 559 ASSERT_TRUE(tester->ContainsCookie());
471 560
472 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 561 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
473 BrowsingDataRemover::REMOVE_COOKIES, tester.get()); 562 BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
474 563
475 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 564 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
476 EXPECT_FALSE(tester->ContainsCookie()); 565 EXPECT_FALSE(tester->ContainsCookie());
477 } 566 }
478 567
479 TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) { 568 TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) {
480 scoped_ptr<RemoveProfileCookieTester> tester( 569 scoped_ptr<RemoveProfileCookieTester> tester(
481 new RemoveProfileCookieTester(GetProfile())); 570 new RemoveProfileCookieTester(GetProfile()));
482 571
483 tester->AddCookie(); 572 tester->AddCookie();
484 ASSERT_TRUE(tester->ContainsCookie()); 573 ASSERT_TRUE(tester->ContainsCookie());
485 574
486 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, 575 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
487 BrowsingDataRemover::REMOVE_COOKIES, tester.get()); 576 BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
488 577
489 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 578 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
490 EXPECT_FALSE(tester->ContainsCookie()); 579 EXPECT_FALSE(tester->ContainsCookie());
491 } 580 }
492 581
493 #if defined(ENABLE_SAFE_BROWSING) 582 #if defined(ENABLE_SAFE_BROWSING)
494 TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieForever) { 583 TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieForever) {
495 scoped_ptr<RemoveSafeBrowsingCookieTester> tester( 584 scoped_ptr<RemoveSafeBrowsingCookieTester> tester(
496 new RemoveSafeBrowsingCookieTester()); 585 new RemoveSafeBrowsingCookieTester());
497 586
498 tester->AddCookie(); 587 tester->AddCookie();
499 ASSERT_TRUE(tester->ContainsCookie()); 588 ASSERT_TRUE(tester->ContainsCookie());
500 589
501 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 590 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
502 BrowsingDataRemover::REMOVE_COOKIES, tester.get()); 591 BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
503 592
504 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 593 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
505 EXPECT_FALSE(tester->ContainsCookie()); 594 EXPECT_FALSE(tester->ContainsCookie());
506 } 595 }
507 596
508 TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieLastHour) { 597 TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieLastHour) {
509 scoped_ptr<RemoveSafeBrowsingCookieTester> tester( 598 scoped_ptr<RemoveSafeBrowsingCookieTester> tester(
510 new RemoveSafeBrowsingCookieTester()); 599 new RemoveSafeBrowsingCookieTester());
511 600
512 tester->AddCookie(); 601 tester->AddCookie();
513 ASSERT_TRUE(tester->ContainsCookie()); 602 ASSERT_TRUE(tester->ContainsCookie());
514 603
515 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, 604 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
516 BrowsingDataRemover::REMOVE_COOKIES, tester.get()); 605 BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
517 606
518 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); 607 EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
519 // Removing with time period other than EVERYTHING should not clear safe 608 // Removing with time period other than EVERYTHING should not clear safe
520 // browsing cookies. 609 // browsing cookies.
521 EXPECT_TRUE(tester->ContainsCookie()); 610 EXPECT_TRUE(tester->ContainsCookie());
522 } 611 }
523 #endif 612 #endif
524 613
525 TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertForever) { 614 TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertForever) {
526 scoped_ptr<RemoveServerBoundCertTester> tester( 615 scoped_ptr<RemoveServerBoundCertTester> tester(
527 new RemoveServerBoundCertTester(GetProfile())); 616 new RemoveServerBoundCertTester(GetProfile()));
528 617
529 tester->AddServerBoundCert(kTestOrigin1); 618 tester->AddServerBoundCert(kTestOrigin1);
530 EXPECT_EQ(1, tester->ServerBoundCertCount()); 619 EXPECT_EQ(1, tester->ServerBoundCertCount());
531 620
532 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 621 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
533 BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, tester.get()); 622 BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, false, tester.get());
534 623
535 EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask()); 624 EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask());
536 EXPECT_EQ(0, tester->ServerBoundCertCount()); 625 EXPECT_EQ(0, tester->ServerBoundCertCount());
537 } 626 }
538 627
539 TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertLastHour) { 628 TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertLastHour) {
540 scoped_ptr<RemoveServerBoundCertTester> tester( 629 scoped_ptr<RemoveServerBoundCertTester> tester(
541 new RemoveServerBoundCertTester(GetProfile())); 630 new RemoveServerBoundCertTester(GetProfile()));
542 631
543 base::Time now = base::Time::Now(); 632 base::Time now = base::Time::Now();
544 tester->AddServerBoundCert(kTestOrigin1); 633 tester->AddServerBoundCert(kTestOrigin1);
545 tester->AddServerBoundCertWithTimes(kTestOrigin2, 634 tester->AddServerBoundCertWithTimes(kTestOrigin2,
546 now - base::TimeDelta::FromHours(2), 635 now - base::TimeDelta::FromHours(2),
547 now); 636 now);
548 EXPECT_EQ(2, tester->ServerBoundCertCount()); 637 EXPECT_EQ(2, tester->ServerBoundCertCount());
549 638
550 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, 639 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
551 BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, tester.get()); 640 BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, false, tester.get());
552 641
553 EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask()); 642 EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask());
554 EXPECT_EQ(1, tester->ServerBoundCertCount()); 643 EXPECT_EQ(1, tester->ServerBoundCertCount());
555 net::ServerBoundCertStore::ServerBoundCertList certs; 644 net::ServerBoundCertStore::ServerBoundCertList certs;
556 tester->GetCertStore()->GetAllServerBoundCerts(&certs); 645 tester->GetCertStore()->GetAllServerBoundCerts(&certs);
557 EXPECT_EQ(kTestOrigin2, certs.front().server_identifier()); 646 EXPECT_EQ(kTestOrigin2, certs.front().server_identifier());
558 } 647 }
559 648
649 TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) {
650 // Protect kOrigin1.
651 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
652 new MockExtensionSpecialStoragePolicy;
653 mock_policy->AddProtected(kOrigin1.GetOrigin());
654 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
655
656 scoped_ptr<RemoveLocalStorageTester> tester(
657 new RemoveLocalStorageTester(GetProfile()));
658
659 tester->AddDOMStorageTestData();
660 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin1));
661 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin2));
662 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin3));
663 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
664
665 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
666 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false, &tester_);
667
668 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
669 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin1));
670 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin2));
671 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin3));
672 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
673 }
674
675 TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) {
676 // Protect kOrigin1.
677 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
678 new MockExtensionSpecialStoragePolicy;
679 mock_policy->AddProtected(kOrigin1.GetOrigin());
680 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
681
682 scoped_ptr<RemoveLocalStorageTester> tester(
683 new RemoveLocalStorageTester(GetProfile()));
684
685 tester->AddDOMStorageTestData();
686 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin1));
687 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin2));
688 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin3));
689 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
690
691 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
692 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, true, &tester_);
693
694 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
695 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin1));
696 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin2));
697 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin3));
698 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
699 }
700
701 TEST_F(BrowsingDataRemoverTest, RemoveLocalStorageForLastWeek) {
702 scoped_ptr<RemoveLocalStorageTester> tester(
703 new RemoveLocalStorageTester(GetProfile()));
704
705 tester->AddDOMStorageTestData();
706 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin1));
707 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin2));
708 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin3));
709
710 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK,
711 BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false, &tester_);
712
713 EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
714 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin1));
715 EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin2));
716 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin3));
717 EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
718 }
719
560 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { 720 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) {
561 scoped_ptr<RemoveHistoryTester> tester( 721 scoped_ptr<RemoveHistoryTester> tester(
562 new RemoveHistoryTester(GetProfile())); 722 new RemoveHistoryTester(GetProfile()));
563 723
564 tester->AddHistory(kOrigin1, base::Time::Now()); 724 tester->AddHistory(kOrigin1, base::Time::Now());
565 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); 725 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1));
566 726
567 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 727 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
568 BrowsingDataRemover::REMOVE_HISTORY, tester.get()); 728 BrowsingDataRemover::REMOVE_HISTORY, false, tester.get());
569 729
570 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 730 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
571 EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1)); 731 EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1));
572 } 732 }
573 733
574 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) { 734 TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) {
575 scoped_ptr<RemoveHistoryTester> tester( 735 scoped_ptr<RemoveHistoryTester> tester(
576 new RemoveHistoryTester(GetProfile())); 736 new RemoveHistoryTester(GetProfile()));
577 737
578 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); 738 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2);
579 739
580 tester->AddHistory(kOrigin1, base::Time::Now()); 740 tester->AddHistory(kOrigin1, base::Time::Now());
581 tester->AddHistory(kOrigin2, two_hours_ago); 741 tester->AddHistory(kOrigin2, two_hours_ago);
582 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); 742 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1));
583 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); 743 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2));
584 744
585 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, 745 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
586 BrowsingDataRemover::REMOVE_HISTORY, tester.get()); 746 BrowsingDataRemover::REMOVE_HISTORY, false, tester.get());
587 747
588 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 748 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
589 EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1)); 749 EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1));
590 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); 750 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2));
591 } 751 }
592 752
593 TEST_F(BrowsingDataRemoverTest, QuotaClientMaskGeneration) { 753 TEST_F(BrowsingDataRemoverTest, QuotaClientMaskGeneration) {
594 EXPECT_EQ(quota::QuotaClient::kFileSystem, 754 EXPECT_EQ(quota::QuotaClient::kFileSystem,
595 BrowsingDataRemover::GenerateQuotaClientMask( 755 BrowsingDataRemover::GenerateQuotaClientMask(
596 BrowsingDataRemover::REMOVE_FILE_SYSTEMS)); 756 BrowsingDataRemover::REMOVE_FILE_SYSTEMS));
(...skipping 13 matching lines...) Expand all
610 BrowsingDataRemover::GenerateQuotaClientMask( 770 BrowsingDataRemover::GenerateQuotaClientMask(
611 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | 771 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
612 BrowsingDataRemover::REMOVE_WEBSQL | 772 BrowsingDataRemover::REMOVE_WEBSQL |
613 BrowsingDataRemover::REMOVE_APPCACHE | 773 BrowsingDataRemover::REMOVE_APPCACHE |
614 BrowsingDataRemover::REMOVE_INDEXEDDB)); 774 BrowsingDataRemover::REMOVE_INDEXEDDB));
615 } 775 }
616 776
617 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { 777 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) {
618 tester_.PopulateTestQuotaManagedData(GetMockManager()); 778 tester_.PopulateTestQuotaManagedData(GetMockManager());
619 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 779 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
620 BrowsingDataRemover::REMOVE_SITE_DATA & 780 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
621 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 781 BrowsingDataRemover::REMOVE_WEBSQL |
782 BrowsingDataRemover::REMOVE_APPCACHE |
783 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
622 784
623 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 785 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
624 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 786 BrowsingDataRemover::REMOVE_WEBSQL |
787 BrowsingDataRemover::REMOVE_APPCACHE |
788 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
625 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 789 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
626 kClientFile)); 790 kClientFile));
627 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 791 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
628 kClientFile)); 792 kClientFile));
629 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 793 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
630 kClientFile)); 794 kClientFile));
631 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 795 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
632 kClientFile)); 796 kClientFile));
633 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 797 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
634 kClientFile)); 798 kClientFile));
635 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 799 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
636 kClientFile)); 800 kClientFile));
637 } 801 }
638 802
639 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { 803 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) {
640 tester_.PopulateTestQuotaManagedTemporaryData(GetMockManager()); 804 tester_.PopulateTestQuotaManagedTemporaryData(GetMockManager());
641 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 805 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
642 BrowsingDataRemover::REMOVE_SITE_DATA & 806 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
643 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 807 BrowsingDataRemover::REMOVE_WEBSQL |
808 BrowsingDataRemover::REMOVE_APPCACHE |
809 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
644 810
645 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 811 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
646 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 812 BrowsingDataRemover::REMOVE_WEBSQL |
813 BrowsingDataRemover::REMOVE_APPCACHE |
814 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
647 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 815 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
648 kClientFile)); 816 kClientFile));
649 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 817 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
650 kClientFile)); 818 kClientFile));
651 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 819 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
652 kClientFile)); 820 kClientFile));
653 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 821 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
654 kClientFile)); 822 kClientFile));
655 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 823 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
656 kClientFile)); 824 kClientFile));
657 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 825 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
658 kClientFile)); 826 kClientFile));
659 } 827 }
660 828
661 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { 829 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) {
662 tester_.PopulateTestQuotaManagedPersistentData(GetMockManager()); 830 tester_.PopulateTestQuotaManagedPersistentData(GetMockManager());
663 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 831 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
664 BrowsingDataRemover::REMOVE_SITE_DATA & 832 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
665 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 833 BrowsingDataRemover::REMOVE_WEBSQL |
834 BrowsingDataRemover::REMOVE_APPCACHE |
835 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
666 836
667 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 837 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
668 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 838 BrowsingDataRemover::REMOVE_WEBSQL |
839 BrowsingDataRemover::REMOVE_APPCACHE |
840 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
669 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 841 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
670 kClientFile)); 842 kClientFile));
671 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 843 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
672 kClientFile)); 844 kClientFile));
673 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 845 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
674 kClientFile)); 846 kClientFile));
675 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 847 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
676 kClientFile)); 848 kClientFile));
677 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 849 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
678 kClientFile)); 850 kClientFile));
679 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 851 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
680 kClientFile)); 852 kClientFile));
681 } 853 }
682 854
683 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { 855 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) {
684 GetMockManager(); // Creates the QuotaManager instance. 856 GetMockManager(); // Creates the QuotaManager instance.
685 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 857 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
686 BrowsingDataRemover::REMOVE_SITE_DATA & 858 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
687 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 859 BrowsingDataRemover::REMOVE_WEBSQL |
860 BrowsingDataRemover::REMOVE_APPCACHE |
861 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
688 862
689 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 863 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
690 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 864 BrowsingDataRemover::REMOVE_WEBSQL |
865 BrowsingDataRemover::REMOVE_APPCACHE |
866 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
691 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 867 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
692 kClientFile)); 868 kClientFile));
693 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 869 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
694 kClientFile)); 870 kClientFile));
695 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 871 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
696 kClientFile)); 872 kClientFile));
697 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 873 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
698 kClientFile)); 874 kClientFile));
699 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 875 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
700 kClientFile)); 876 kClientFile));
(...skipping 26 matching lines...) Expand all
727 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 903 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
728 kClientFile)); 904 kClientFile));
729 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 905 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
730 kClientFile)); 906 kClientFile));
731 } 907 }
732 908
733 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { 909 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) {
734 tester_.PopulateTestQuotaManagedData(GetMockManager()); 910 tester_.PopulateTestQuotaManagedData(GetMockManager());
735 911
736 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, 912 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
737 BrowsingDataRemover::REMOVE_SITE_DATA & 913 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
738 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 914 BrowsingDataRemover::REMOVE_WEBSQL |
915 BrowsingDataRemover::REMOVE_APPCACHE |
916 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
739 917
740 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 918 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
741 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 919 BrowsingDataRemover::REMOVE_WEBSQL |
920 BrowsingDataRemover::REMOVE_APPCACHE |
921 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
742 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 922 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
743 kClientFile)); 923 kClientFile));
744 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 924 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
745 kClientFile)); 925 kClientFile));
746 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 926 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
747 kClientFile)); 927 kClientFile));
748 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 928 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
749 kClientFile)); 929 kClientFile));
750 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 930 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
751 kClientFile)); 931 kClientFile));
752 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 932 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
753 kClientFile)); 933 kClientFile));
754 } 934 }
755 935
756 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { 936 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) {
757 tester_.PopulateTestQuotaManagedData(GetMockManager()); 937 tester_.PopulateTestQuotaManagedData(GetMockManager());
758 938
759 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, 939 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK,
760 BrowsingDataRemover::REMOVE_SITE_DATA & 940 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
761 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 941 BrowsingDataRemover::REMOVE_WEBSQL |
942 BrowsingDataRemover::REMOVE_APPCACHE |
943 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
762 944
763 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 945 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
764 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 946 BrowsingDataRemover::REMOVE_WEBSQL |
947 BrowsingDataRemover::REMOVE_APPCACHE |
948 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
765 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 949 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
766 kClientFile)); 950 kClientFile));
767 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 951 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
768 kClientFile)); 952 kClientFile));
769 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 953 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
770 kClientFile)); 954 kClientFile));
771 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 955 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
772 kClientFile)); 956 kClientFile));
773 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 957 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
774 kClientFile)); 958 kClientFile));
775 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 959 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
776 kClientFile)); 960 kClientFile));
777 } 961 }
778 962
779 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { 963 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) {
780 // Protect kOrigin1. 964 // Protect kOrigin1.
781 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = 965 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
782 new MockExtensionSpecialStoragePolicy; 966 new MockExtensionSpecialStoragePolicy;
783 mock_policy->AddProtected(kOrigin1.GetOrigin()); 967 mock_policy->AddProtected(kOrigin1.GetOrigin());
784 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); 968 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
785 969
786 tester_.PopulateTestQuotaManagedData(GetMockManager()); 970 tester_.PopulateTestQuotaManagedData(GetMockManager());
787 971
788 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 972 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
789 BrowsingDataRemover::REMOVE_SITE_DATA & 973 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
790 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_); 974 BrowsingDataRemover::REMOVE_WEBSQL |
975 BrowsingDataRemover::REMOVE_APPCACHE |
976 BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
791 977
792 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & 978 EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
793 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask()); 979 BrowsingDataRemover::REMOVE_WEBSQL |
980 BrowsingDataRemover::REMOVE_APPCACHE |
981 BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
794 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, 982 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
795 kClientFile)); 983 kClientFile));
796 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, 984 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
797 kClientFile)); 985 kClientFile));
798 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 986 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
799 kClientFile)); 987 kClientFile));
800 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 988 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
801 kClientFile)); 989 kClientFile));
802 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 990 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
803 kClientFile)); 991 kClientFile));
(...skipping 28 matching lines...) Expand all
832 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, 1020 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
833 kClientFile)); 1021 kClientFile));
834 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, 1022 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
835 kClientFile)); 1023 kClientFile));
836 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, 1024 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
837 kClientFile)); 1025 kClientFile));
838 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, 1026 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
839 kClientFile)); 1027 kClientFile));
840 } 1028 }
841 1029
1030 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) {
1031 // Protect kOrigin1.
1032 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
1033 new MockExtensionSpecialStoragePolicy;
1034 mock_policy->AddProtected(kOrigin1.GetOrigin());
1035 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
1036
1037 tester_.PopulateTestQuotaManagedData(GetMockManager());
1038
1039 // Try to remove kOrigin1. Expect success.
1040 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
1041 BrowsingDataRemover::REMOVE_APPCACHE |
1042 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1043 BrowsingDataRemover::REMOVE_INDEXEDDB |
1044 BrowsingDataRemover::REMOVE_WEBSQL, true, &tester_);
1045
1046 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
1047 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
1048 BrowsingDataRemover::REMOVE_INDEXEDDB |
1049 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
1050 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
1051 kClientFile));
1052 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
1053 kClientFile));
1054 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
1055 kClientFile));
1056 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
1057 kClientFile));
1058 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
1059 kClientFile));
1060 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
1061 kClientFile));
1062 }
1063
842 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { 1064 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) {
843 tester_.PopulateTestQuotaManagedNonBrowsingData(GetMockManager()); 1065 tester_.PopulateTestQuotaManagedNonBrowsingData(GetMockManager());
844 1066
845 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, 1067 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
846 BrowsingDataRemover::REMOVE_APPCACHE | 1068 BrowsingDataRemover::REMOVE_APPCACHE |
847 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | 1069 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
848 BrowsingDataRemover::REMOVE_INDEXEDDB | 1070 BrowsingDataRemover::REMOVE_INDEXEDDB |
849 BrowsingDataRemover::REMOVE_WEBSQL, &tester_); 1071 BrowsingDataRemover::REMOVE_WEBSQL, false, &tester_);
850 1072
851 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | 1073 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
852 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | 1074 BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
853 BrowsingDataRemover::REMOVE_INDEXEDDB | 1075 BrowsingDataRemover::REMOVE_INDEXEDDB |
854 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); 1076 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
855 1077
856 // Check that extension and devtools data isn't removed. 1078 // Check that extension and devtools data isn't removed.
857 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary, 1079 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary,
858 kClientFile)); 1080 kClientFile));
859 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent, 1081 EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); 1116 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1));
895 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); 1117 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2));
896 1118
897 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, 1119 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR,
898 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); 1120 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get());
899 1121
900 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); 1122 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
901 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); 1123 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1));
902 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); 1124 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2));
903 } 1125 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698