Index: chrome/browser/browsing_data/cache_counter_browsertest.cc |
diff --git a/chrome/browser/browsing_data/cache_counter_browsertest.cc b/chrome/browser/browsing_data/cache_counter_browsertest.cc |
index a48f7215dcdccfce279d8f7e26fab5fb9193fc7a..aeb9656223b8657f5409d6a4cccad01ca1de78e6 100644 |
--- a/chrome/browser/browsing_data/cache_counter_browsertest.cc |
+++ b/chrome/browser/browsing_data/cache_counter_browsertest.cc |
@@ -257,10 +257,7 @@ IN_PROC_BROWSER_TEST_F(CacheCounterTest, PrefIsFalse) { |
EXPECT_FALSE(counter.Pending()); |
} |
-// Tests that the counting is restarted when the time period changes. Currently, |
-// the results should be the same for every period. This is because the counter |
-// always counts the size of the entire cache, and it is up to the UI |
-// to interpret it as exact value or upper bound. |
+// Tests that the counting is restarted when the time period changes. |
IN_PROC_BROWSER_TEST_F(CacheCounterTest, PeriodChanged) { |
CreateCacheEntry(); |
@@ -273,22 +270,22 @@ IN_PROC_BROWSER_TEST_F(CacheCounterTest, PeriodChanged) { |
SetDeletionPeriodPref(browsing_data::LAST_HOUR); |
WaitForIOThread(); |
browsing_data::BrowsingDataCounter::ResultInt result = GetResult(); |
- EXPECT_TRUE(IsUpperLimit()); |
+ EXPECT_FALSE(IsUpperLimit()); |
SetDeletionPeriodPref(browsing_data::LAST_DAY); |
WaitForIOThread(); |
EXPECT_EQ(result, GetResult()); |
- EXPECT_TRUE(IsUpperLimit()); |
+ EXPECT_FALSE(IsUpperLimit()); |
SetDeletionPeriodPref(browsing_data::LAST_WEEK); |
WaitForIOThread(); |
EXPECT_EQ(result, GetResult()); |
- EXPECT_TRUE(IsUpperLimit()); |
+ EXPECT_FALSE(IsUpperLimit()); |
SetDeletionPeriodPref(browsing_data::FOUR_WEEKS); |
WaitForIOThread(); |
EXPECT_EQ(result, GetResult()); |
- EXPECT_TRUE(IsUpperLimit()); |
+ EXPECT_FALSE(IsUpperLimit()); |
SetDeletionPeriodPref(browsing_data::ALL_TIME); |
WaitForIOThread(); |
@@ -296,4 +293,27 @@ IN_PROC_BROWSER_TEST_F(CacheCounterTest, PeriodChanged) { |
EXPECT_FALSE(IsUpperLimit()); |
} |
+// Tests the cache size is estimated if the timeout runs out. |
+IN_PROC_BROWSER_TEST_F(CacheCounterTest, Timeout) { |
+ CreateCacheEntry(); |
+ |
+ Profile* profile = browser()->profile(); |
+ CacheCounter counter(profile); |
+ counter.SetTimeout(base::TimeDelta()); |
+ counter.Init( |
+ profile->GetPrefs(), |
+ base::Bind(&CacheCounterTest::CountingCallback, base::Unretained(this))); |
+ |
+ SetDeletionPeriodPref(browsing_data::LAST_DAY); |
+ WaitForIOThread(); |
+ EXPECT_GT(GetResult(), 0); |
+ EXPECT_TRUE(IsUpperLimit()); |
+ |
+ // Even with a timeout of 0, ALL_TIME shouldn't be returned as upper limit. |
+ SetDeletionPeriodPref(browsing_data::ALL_TIME); |
+ WaitForIOThread(); |
+ EXPECT_GT(GetResult(), 0); |
+ EXPECT_FALSE(IsUpperLimit()); |
+} |
+ |
} // namespace |