| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/browsing_data_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" |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 tester->BlockUntilNotified(); | 329 tester->BlockUntilNotified(); |
| 330 } | 330 } |
| 331 | 331 |
| 332 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, | 332 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
| 333 int remove_mask, | 333 int remove_mask, |
| 334 const GURL& remove_origin, | 334 const GURL& remove_origin, |
| 335 BrowsingDataRemoverTester* tester) { | 335 BrowsingDataRemoverTester* tester) { |
| 336 BrowsingDataRemover* remover = new BrowsingDataRemover( | 336 BrowsingDataRemover* remover = new BrowsingDataRemover( |
| 337 profile_.get(), period, | 337 profile_.get(), period, |
| 338 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); | 338 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); |
| 339 remover->OverrideQuotaManagerForTesting(GetMockManager()); |
| 339 remover->AddObserver(tester); | 340 remover->AddObserver(tester); |
| 340 | 341 |
| 341 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 342 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| 342 | 343 |
| 343 // BrowsingDataRemover deletes itself when it completes. | 344 // BrowsingDataRemover deletes itself when it completes. |
| 344 remover->RemoveImpl(remove_mask, remove_origin, false); | 345 remover->RemoveImpl(remove_mask, remove_origin, false); |
| 345 tester->BlockUntilNotified(); | 346 tester->BlockUntilNotified(); |
| 346 } | 347 } |
| 347 | 348 |
| 348 TestingProfile* GetProfile() { | 349 TestingProfile* GetProfile() { |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 604 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 605 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, |
| 605 kClientFile)); | 606 kClientFile)); |
| 606 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 607 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, |
| 607 kClientFile)); | 608 kClientFile)); |
| 608 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 609 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, |
| 609 kClientFile)); | 610 kClientFile)); |
| 610 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 611 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
| 611 kClientFile)); | 612 kClientFile)); |
| 612 } | 613 } |
| 613 | 614 |
| 615 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { |
| 616 scoped_ptr<RemoveQuotaManagedDataTester> tester( |
| 617 new RemoveQuotaManagedDataTester()); |
| 618 tester->PopulateTestQuotaManagedData(GetMockManager()); |
| 619 |
| 620 // Remove Origin 1. |
| 621 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 622 BrowsingDataRemover::REMOVE_APPCACHE | |
| 623 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 624 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 625 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1, tester.get()); |
| 626 |
| 627 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 628 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 629 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 630 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
| 631 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, |
| 632 kClientFile)); |
| 633 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, |
| 634 kClientFile)); |
| 635 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, |
| 636 kClientFile)); |
| 637 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, |
| 638 kClientFile)); |
| 639 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, |
| 640 kClientFile)); |
| 641 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
| 642 kClientFile)); |
| 643 } |
| 644 |
| 614 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { | 645 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { |
| 615 scoped_ptr<RemoveQuotaManagedDataTester> tester( | 646 scoped_ptr<RemoveQuotaManagedDataTester> tester( |
| 616 new RemoveQuotaManagedDataTester()); | 647 new RemoveQuotaManagedDataTester()); |
| 617 tester->PopulateTestQuotaManagedData(GetMockManager()); | 648 tester->PopulateTestQuotaManagedData(GetMockManager()); |
| 618 | 649 |
| 619 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, | 650 BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
| 620 BrowsingDataRemover::REMOVE_SITE_DATA & | 651 BrowsingDataRemover::REMOVE_SITE_DATA & |
| 621 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, tester.get()); | 652 ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, tester.get()); |
| 622 | 653 |
| 623 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & | 654 EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA & |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 716 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, |
| 686 kClientFile)); | 717 kClientFile)); |
| 687 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 718 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, |
| 688 kClientFile)); | 719 kClientFile)); |
| 689 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 720 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, |
| 690 kClientFile)); | 721 kClientFile)); |
| 691 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 722 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
| 692 kClientFile)); | 723 kClientFile)); |
| 693 } | 724 } |
| 694 | 725 |
| 726 TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
| 727 // Protect kOrigin1. |
| 728 scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
| 729 new MockExtensionSpecialStoragePolicy; |
| 730 mock_policy->AddProtected(kOrigin1.GetOrigin()); |
| 731 GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); |
| 732 |
| 733 scoped_ptr<RemoveQuotaManagedDataTester> tester( |
| 734 new RemoveQuotaManagedDataTester()); |
| 735 tester->PopulateTestQuotaManagedData(GetMockManager()); |
| 736 |
| 737 // Try to remove kOrigin1. Expect failure. |
| 738 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
| 739 BrowsingDataRemover::REMOVE_APPCACHE | |
| 740 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 741 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 742 BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1, tester.get()); |
| 743 |
| 744 EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
| 745 BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
| 746 BrowsingDataRemover::REMOVE_INDEXEDDB | |
| 747 BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask()); |
| 748 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary, |
| 749 kClientFile)); |
| 750 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary, |
| 751 kClientFile)); |
| 752 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, |
| 753 kClientFile)); |
| 754 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, |
| 755 kClientFile)); |
| 756 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, |
| 757 kClientFile)); |
| 758 EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
| 759 kClientFile)); |
| 760 } |
| 761 |
| 695 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { | 762 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
| 696 scoped_ptr<RemoveHistoryTester> tester( | 763 scoped_ptr<RemoveHistoryTester> tester( |
| 697 new RemoveHistoryTester(GetProfile())); | 764 new RemoveHistoryTester(GetProfile())); |
| 698 | 765 |
| 699 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | 766 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| 700 | 767 |
| 701 tester->AddHistory(kOrigin1, base::Time::Now()); | 768 tester->AddHistory(kOrigin1, base::Time::Now()); |
| 702 tester->AddHistory(kOrigin2, two_hours_ago); | 769 tester->AddHistory(kOrigin2, two_hours_ago); |
| 703 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); | 770 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| 704 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); | 771 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 722 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); | 789 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| 723 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); | 790 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
| 724 | 791 |
| 725 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, | 792 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, |
| 726 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); | 793 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); |
| 727 | 794 |
| 728 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | 795 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
| 729 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); | 796 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| 730 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); | 797 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
| 731 } | 798 } |
| OLD | NEW |