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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
45 const GURL kOrigin1(kTestkOrigin1); | 45 const GURL kOrigin1(kTestkOrigin1); |
46 const GURL kOrigin2(kTestkOrigin2); | 46 const GURL kOrigin2(kTestkOrigin2); |
47 const GURL kOrigin3(kTestkOrigin3); | 47 const GURL kOrigin3(kTestkOrigin3); |
48 | 48 |
49 const quota::StorageType kTemporary = quota::kStorageTypeTemporary; | 49 const quota::StorageType kTemporary = quota::kStorageTypeTemporary; |
50 const quota::StorageType kPersistent = quota::kStorageTypePersistent; | 50 const quota::StorageType kPersistent = quota::kStorageTypePersistent; |
51 | 51 |
52 const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; | 52 const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; |
53 const quota::QuotaClient::ID kClientDB = quota::QuotaClient::kIndexedDatabase; | 53 const quota::QuotaClient::ID kClientDB = quota::QuotaClient::kIndexedDatabase; |
54 | 54 |
55 } // Namespace | |
Bernhard Bauer
2012/02/16 17:23:30
Nit: two spaces before //, and namespace in lowerc
| |
56 | |
55 class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer { | 57 class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer { |
56 public: | 58 public: |
57 BrowsingDataRemoverTester() | 59 BrowsingDataRemoverTester() |
58 : start_(false), | 60 : start_(false), |
59 already_quit_(false) {} | 61 already_quit_(false) {} |
60 virtual ~BrowsingDataRemoverTester() {} | 62 virtual ~BrowsingDataRemoverTester() {} |
61 | 63 |
62 void BlockUntilNotified() { | 64 void BlockUntilNotified() { |
63 if (!already_quit_) { | 65 if (!already_quit_) { |
64 DCHECK(!start_); | 66 DCHECK(!start_); |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
317 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); | 319 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); |
318 remover->AddObserver(tester); | 320 remover->AddObserver(tester); |
319 | 321 |
320 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | 322 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
321 | 323 |
322 // BrowsingDataRemover deletes itself when it completes. | 324 // BrowsingDataRemover deletes itself when it completes. |
323 remover->Remove(remove_mask); | 325 remover->Remove(remove_mask); |
324 tester->BlockUntilNotified(); | 326 tester->BlockUntilNotified(); |
325 } | 327 } |
326 | 328 |
329 void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, | |
330 int remove_mask, | |
331 const GURL& remove_origin, | |
332 BrowsingDataRemoverTester* tester) { | |
333 BrowsingDataRemover* remover = new BrowsingDataRemover( | |
334 profile_.get(), period, | |
335 base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); | |
336 remover->AddObserver(tester); | |
337 | |
338 called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); | |
339 | |
340 // BrowsingDataRemover deletes itself when it completes. | |
341 remover->RemoveImpl(remove_mask, remove_origin, false); | |
342 tester->BlockUntilNotified(); | |
343 } | |
344 | |
327 TestingProfile* GetProfile() { | 345 TestingProfile* GetProfile() { |
328 return profile_.get(); | 346 return profile_.get(); |
329 } | 347 } |
330 | 348 |
331 base::Time GetBeginTime() { | 349 base::Time GetBeginTime() { |
332 return called_with_details_->removal_begin; | 350 return called_with_details_->removal_begin; |
333 } | 351 } |
334 | 352 |
335 int GetRemovalMask() { | 353 int GetRemovalMask() { |
336 return called_with_details_->removal_mask; | 354 return called_with_details_->removal_mask; |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
662 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, | 680 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary, |
663 kClientFile)); | 681 kClientFile)); |
664 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, | 682 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent, |
665 kClientFile)); | 683 kClientFile)); |
666 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, | 684 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent, |
667 kClientFile)); | 685 kClientFile)); |
668 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, | 686 EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent, |
669 kClientFile)); | 687 kClientFile)); |
670 } | 688 } |
671 | 689 |
672 } // namespace | 690 TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
691 scoped_ptr<RemoveHistoryTester> tester( | |
692 new RemoveHistoryTester(GetProfile())); | |
693 | |
694 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | |
695 | |
696 tester->AddHistory(kOrigin1, base::Time::Now()); | |
697 tester->AddHistory(kOrigin2, two_hours_ago); | |
698 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); | |
699 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); | |
700 | |
701 BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, | |
702 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); | |
703 | |
704 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | |
705 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); | |
706 EXPECT_FALSE(tester->HistoryContainsURL(kOrigin2)); | |
707 } | |
708 | |
709 TEST_F(BrowsingDataRemoverTest, OriginAndTimeBasedHistoryRemoval) { | |
710 scoped_ptr<RemoveHistoryTester> tester( | |
711 new RemoveHistoryTester(GetProfile())); | |
712 | |
713 base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); | |
714 | |
715 tester->AddHistory(kOrigin1, base::Time::Now()); | |
716 tester->AddHistory(kOrigin2, two_hours_ago); | |
717 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); | |
718 ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); | |
719 | |
720 BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, | |
721 BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); | |
722 | |
723 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); | |
724 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); | |
725 EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); | |
726 } | |
OLD | NEW |