Chromium Code Reviews| Index: chrome/browser/browsing_data_remover_unittest.cc |
| diff --git a/chrome/browser/browsing_data_remover_unittest.cc b/chrome/browser/browsing_data_remover_unittest.cc |
| index f983c184d4605ac596d5ff3434ba2adb578df338..4951d2174bf81a9b64d8c01846beab3fba292334 100644 |
| --- a/chrome/browser/browsing_data_remover_unittest.cc |
| +++ b/chrome/browser/browsing_data_remover_unittest.cc |
| @@ -52,6 +52,8 @@ const quota::StorageType kPersistent = quota::kStorageTypePersistent; |
| const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; |
| const quota::QuotaClient::ID kClientDB = quota::QuotaClient::kIndexedDatabase; |
| +} // Namespace |
|
Bernhard Bauer
2012/02/16 17:23:30
Nit: two spaces before //, and namespace in lowerc
|
| + |
| class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer { |
| public: |
| BrowsingDataRemoverTester() |
| @@ -324,6 +326,22 @@ class BrowsingDataRemoverTest : public testing::Test, |
| tester->BlockUntilNotified(); |
| } |
| + void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
| + int remove_mask, |
| + const GURL& remove_origin, |
| + BrowsingDataRemoverTester* tester) { |
| + BrowsingDataRemover* remover = new BrowsingDataRemover( |
| + profile_.get(), period, |
| + base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); |
| + remover->AddObserver(tester); |
| + |
| + called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
| + |
| + // BrowsingDataRemover deletes itself when it completes. |
| + remover->RemoveImpl(remove_mask, remove_origin, false); |
| + tester->BlockUntilNotified(); |
| + } |
| + |
| TestingProfile* GetProfile() { |
| return profile_.get(); |
| } |
| @@ -669,4 +687,40 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
| kClientFile)); |
| } |
| -} // namespace |
| +TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
| + scoped_ptr<RemoveHistoryTester> tester( |
| + new RemoveHistoryTester(GetProfile())); |
| + |
| + base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| + |
| + tester->AddHistory(kOrigin1, base::Time::Now()); |
| + tester->AddHistory(kOrigin2, two_hours_ago); |
| + ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| + ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
| + |
| + BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
| + BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); |
| + |
| + EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
| + EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| + EXPECT_FALSE(tester->HistoryContainsURL(kOrigin2)); |
| +} |
| + |
| +TEST_F(BrowsingDataRemoverTest, OriginAndTimeBasedHistoryRemoval) { |
| + scoped_ptr<RemoveHistoryTester> tester( |
| + new RemoveHistoryTester(GetProfile())); |
| + |
| + base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
| + |
| + tester->AddHistory(kOrigin1, base::Time::Now()); |
| + tester->AddHistory(kOrigin2, two_hours_ago); |
| + ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| + ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
| + |
| + BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, |
| + BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); |
| + |
| + EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
| + EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
| + EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
| +} |