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

Unified Diff: chrome/browser/browsing_data/cache_counter_browsertest.cc

Issue 2556363003: Refactor cache counting into a separate helper class (Closed)
Patch Set: extract cache_test_util and fixes Created 4 years 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 side-by-side diff with in-line comments
Download patch
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 a953f7fb4a0f0cbd1953107c68704e0f9e78c9e9..aeb9656223b8657f5409d6a4cccad01ca1de78e6 100644
--- a/chrome/browser/browsing_data/cache_counter_browsertest.cc
+++ b/chrome/browser/browsing_data/cache_counter_browsertest.cc
@@ -138,10 +138,9 @@ class CacheCounterTest : public InProcessBrowserTest {
finished_ = result->Finished();
if (finished_) {
- result_ =
- static_cast<browsing_data::BrowsingDataCounter::FinishedResult*>(
- result.get())
- ->Value();
+ auto cache_result = static_cast<CacheCounter::CacheResult*>(result.get());
+ result_ = cache_result->cache_size();
+ is_upper_limit_ = cache_result->is_upper_limit();
}
if (run_loop_ && finished_)
@@ -153,6 +152,11 @@ class CacheCounterTest : public InProcessBrowserTest {
return result_;
}
+ bool IsUpperLimit() {
+ DCHECK(finished_);
+ return is_upper_limit_;
+ }
+
private:
enum CacheEntryCreationStep {
GET_CACHE,
@@ -169,6 +173,7 @@ class CacheCounterTest : public InProcessBrowserTest {
bool finished_;
browsing_data::BrowsingDataCounter::ResultInt result_;
+ bool is_upper_limit_;
};
// Tests that for the empty cache, the result is zero.
@@ -252,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();
@@ -268,22 +270,50 @@ IN_PROC_BROWSER_TEST_F(CacheCounterTest, PeriodChanged) {
SetDeletionPeriodPref(browsing_data::LAST_HOUR);
WaitForIOThread();
browsing_data::BrowsingDataCounter::ResultInt result = GetResult();
+ EXPECT_FALSE(IsUpperLimit());
SetDeletionPeriodPref(browsing_data::LAST_DAY);
WaitForIOThread();
EXPECT_EQ(result, GetResult());
+ EXPECT_FALSE(IsUpperLimit());
SetDeletionPeriodPref(browsing_data::LAST_WEEK);
WaitForIOThread();
EXPECT_EQ(result, GetResult());
+ EXPECT_FALSE(IsUpperLimit());
SetDeletionPeriodPref(browsing_data::FOUR_WEEKS);
WaitForIOThread();
EXPECT_EQ(result, GetResult());
+ EXPECT_FALSE(IsUpperLimit());
SetDeletionPeriodPref(browsing_data::ALL_TIME);
WaitForIOThread();
EXPECT_EQ(result, GetResult());
+ 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

Powered by Google App Engine
This is Rietveld 408576698