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

Unified Diff: content/browser/quota/quota_temporary_storage_evictor_unittest.cc

Issue 1782053004: Change how the quota system computes the total poolsize for temporary storage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 2 months 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: content/browser/quota/quota_temporary_storage_evictor_unittest.cc
diff --git a/content/browser/quota/quota_temporary_storage_evictor_unittest.cc b/content/browser/quota/quota_temporary_storage_evictor_unittest.cc
index 989c63df3d64f962a8c9d495f8992f6d9a2c42cc..78c7c26476cb99f12bc9d5cfc0f37eee0704c438 100644
--- a/content/browser/quota/quota_temporary_storage_evictor_unittest.cc
+++ b/content/browser/quota/quota_temporary_storage_evictor_unittest.cc
@@ -21,7 +21,6 @@
using storage::QuotaTemporaryStorageEvictor;
using storage::StorageType;
-using storage::UsageAndQuota;
namespace content {
@@ -32,14 +31,13 @@ namespace {
class MockQuotaEvictionHandler : public storage::QuotaEvictionHandler {
public:
explicit MockQuotaEvictionHandler(QuotaTemporaryStorageEvictorTest *test)
- : quota_(0),
- available_space_(0),
+ : available_space_(0),
error_on_evict_origin_data_(false),
error_on_get_usage_and_quota_(false) {}
void EvictOriginData(const GURL& origin,
StorageType type,
- const EvictOriginDataCallback& callback) override {
+ const storage::StatusCallback& callback) override {
if (error_on_evict_origin_data_) {
callback.Run(storage::kQuotaErrorInvalidModification);
return;
@@ -50,22 +48,21 @@ class MockQuotaEvictionHandler : public storage::QuotaEvictionHandler {
callback.Run(storage::kQuotaStatusOk);
}
- void AsyncGetVolumeInfo(const VolumeInfoCallback& callback) override {
- uint64_t available = static_cast<uint64_t>(available_space_);
- uint64_t total = (1024 * 1024 * 1024) + (2 * available); // 1G plus some.
- callback.Run(true, available, total);
- }
-
- void GetUsageAndQuotaForEviction(
- const UsageAndQuotaCallback& callback) override {
+ void GetEvictionRoundInfo(
+ const EvictionRoundInfoCallback& callback) override {
if (error_on_get_usage_and_quota_) {
- callback.Run(storage::kQuotaErrorInvalidAccess, UsageAndQuota());
+ callback.Run(
+ storage::kQuotaErrorAbort,
+ storage::TemporaryStorageConfiguration(), 0, 0,
+ 0, false);
return;
}
if (!task_for_get_usage_and_quota_.is_null())
task_for_get_usage_and_quota_.Run();
- UsageAndQuota quota_and_usage(-1, GetUsage(), quota_, available_space_);
- callback.Run(storage::kQuotaStatusOk, quota_and_usage);
+ callback.Run(
+ storage::kQuotaStatusOk,
+ config_, available_space_, available_space_ * 2,
+ GetUsage(), true);
}
void GetEvictionOrigin(StorageType type,
@@ -86,7 +83,12 @@ class MockQuotaEvictionHandler : public storage::QuotaEvictionHandler {
return total_usage;
}
- void set_quota(int64_t quota) { quota_ = quota; }
+ void SetPoolSize(int64_t pool_size) {
+ config_.pool_size = pool_size;
+ config_.per_host_quota = pool_size / 5;
+ config_.must_remain_available = pool_size / 5;
+ config_.refresh_interval = base::TimeDelta::Max();
+ }
void set_available_space(int64_t available_space) {
available_space_ = available_space;
}
@@ -130,7 +132,7 @@ class MockQuotaEvictionHandler : public storage::QuotaEvictionHandler {
return origin_usage;
}
- int64_t quota_;
+ storage::TemporaryStorageConfiguration config_;
int64_t available_space_;
std::list<GURL> origin_order_;
std::map<GURL, int64_t> origins_;
@@ -169,20 +171,20 @@ class QuotaTemporaryStorageEvictorTest : public testing::Test {
int expected_usage_after_second) {
EXPECT_GE(4, num_get_usage_and_quota_for_eviction_);
switch (num_get_usage_and_quota_for_eviction_) {
- case 2:
- EXPECT_EQ(expected_usage_after_first,
- quota_eviction_handler()->GetUsage());
- if (!origin_to_be_added.first.is_empty())
- quota_eviction_handler()->AddOrigin(origin_to_be_added.first,
- origin_to_be_added.second);
- if (!origin_to_be_accessed.is_empty())
- quota_eviction_handler()->AccessOrigin(origin_to_be_accessed);
- break;
- case 3:
- EXPECT_EQ(expected_usage_after_second,
- quota_eviction_handler()->GetUsage());
- temporary_storage_evictor()->set_repeated_eviction(false);
- break;
+ case 2:
+ EXPECT_EQ(expected_usage_after_first,
+ quota_eviction_handler()->GetUsage());
+ if (!origin_to_be_added.first.is_empty())
+ quota_eviction_handler()->AddOrigin(origin_to_be_added.first,
+ origin_to_be_added.second);
+ if (!origin_to_be_accessed.is_empty())
+ quota_eviction_handler()->AccessOrigin(origin_to_be_accessed);
+ break;
+ case 3:
+ EXPECT_EQ(expected_usage_after_second,
+ quota_eviction_handler()->GetUsage());
+ temporary_storage_evictor()->timer_disabled_for_testing_ = true;
+ break;
}
++num_get_usage_and_quota_for_eviction_;
}
@@ -201,8 +203,8 @@ class QuotaTemporaryStorageEvictorTest : public testing::Test {
return temporary_storage_evictor()->statistics_;
}
- void set_repeated_eviction(bool repeated_eviction) const {
- return temporary_storage_evictor_->set_repeated_eviction(repeated_eviction);
+ void disable_timer_for_testing() const {
+ temporary_storage_evictor_->timer_disabled_for_testing_ = true;
}
int num_get_usage_and_quota_for_eviction() const {
@@ -214,13 +216,13 @@ class QuotaTemporaryStorageEvictorTest : public testing::Test {
}
void set_min_available_disk_space_to_start_eviction(int64_t value) const {
- temporary_storage_evictor_->set_min_available_disk_space_to_start_eviction(
- value);
+ //temporary_storage_evictor_->set_min_available_disk_space_to_start_eviction(
+ // value);
}
void reset_min_available_disk_space_to_start_eviction() const {
- temporary_storage_evictor_->
- reset_min_available_disk_space_to_start_eviction();
+ //temporary_storage_evictor_->
+ // reset_min_available_disk_space_to_start_eviction();
}
base::MessageLoop message_loop_;
@@ -238,10 +240,10 @@ TEST_F(QuotaTemporaryStorageEvictorTest, SimpleEvictionTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.z.com"), 3000);
quota_eviction_handler()->AddOrigin(GURL("http://www.y.com"), 200);
quota_eviction_handler()->AddOrigin(GURL("http://www.x.com"), 500);
- quota_eviction_handler()->set_quota(4000);
+ quota_eviction_handler()->SetPoolSize(4000);
quota_eviction_handler()->set_available_space(1000000000);
EXPECT_EQ(3000 + 200 + 500, quota_eviction_handler()->GetUsage());
- set_repeated_eviction(false);
+ disable_timer_for_testing();
temporary_storage_evictor()->Start();
base::RunLoop().RunUntilIdle();
EXPECT_EQ(200 + 500, quota_eviction_handler()->GetUsage());
@@ -258,10 +260,10 @@ TEST_F(QuotaTemporaryStorageEvictorTest, MultipleEvictionTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.y.com"), 2900);
quota_eviction_handler()->AddOrigin(GURL("http://www.x.com"), 450);
quota_eviction_handler()->AddOrigin(GURL("http://www.w.com"), 400);
- quota_eviction_handler()->set_quota(4000);
+ quota_eviction_handler()->SetPoolSize(4000);
quota_eviction_handler()->set_available_space(1000000000);
EXPECT_EQ(20 + 2900 + 450 + 400, quota_eviction_handler()->GetUsage());
- set_repeated_eviction(false);
+ disable_timer_for_testing();
temporary_storage_evictor()->Start();
base::RunLoop().RunUntilIdle();
EXPECT_EQ(450 + 400, quota_eviction_handler()->GetUsage());
@@ -285,7 +287,7 @@ TEST_F(QuotaTemporaryStorageEvictorTest, RepeatedEvictionTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.c.com"), c_size);
quota_eviction_handler()->AddOrigin(GURL("http://www.b.com"), b_size);
quota_eviction_handler()->AddOrigin(GURL("http://www.a.com"), a_size);
- quota_eviction_handler()->set_quota(1000);
+ quota_eviction_handler()->SetPoolSize(1000);
quota_eviction_handler()->set_available_space(1000000000);
quota_eviction_handler()->set_task_for_get_usage_and_quota(
base::Bind(&QuotaTemporaryStorageEvictorTest::TaskForRepeatedEvictionTest,
@@ -318,14 +320,14 @@ TEST_F(QuotaTemporaryStorageEvictorTest, RepeatedEvictionSkippedTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.c.com"), c_size);
quota_eviction_handler()->AddOrigin(GURL("http://www.b.com"), b_size);
quota_eviction_handler()->AddOrigin(GURL("http://www.a.com"), a_size);
- quota_eviction_handler()->set_quota(1000);
+ quota_eviction_handler()->SetPoolSize(1000);
quota_eviction_handler()->set_available_space(1000000000);
quota_eviction_handler()->set_task_for_get_usage_and_quota(
base::Bind(&QuotaTemporaryStorageEvictorTest::TaskForRepeatedEvictionTest,
weak_factory_.GetWeakPtr(), std::make_pair(GURL(), 0), GURL(),
initial_total_size - d_size, initial_total_size - d_size));
EXPECT_EQ(initial_total_size, quota_eviction_handler()->GetUsage());
- set_repeated_eviction(true);
+ //disable_timer_for_testing();
temporary_storage_evictor()->Start();
base::RunLoop().RunUntilIdle();
EXPECT_EQ(initial_total_size - d_size, quota_eviction_handler()->GetUsage());
@@ -350,7 +352,7 @@ TEST_F(QuotaTemporaryStorageEvictorTest, RepeatedEvictionWithAccessOriginTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.c.com"), c_size);
quota_eviction_handler()->AddOrigin(GURL("http://www.b.com"), b_size);
quota_eviction_handler()->AddOrigin(GURL("http://www.a.com"), a_size);
- quota_eviction_handler()->set_quota(1000);
+ quota_eviction_handler()->SetPoolSize(1000);
quota_eviction_handler()->set_available_space(1000000000);
quota_eviction_handler()->set_task_for_get_usage_and_quota(
base::Bind(&QuotaTemporaryStorageEvictorTest::TaskForRepeatedEvictionTest,
@@ -376,12 +378,12 @@ TEST_F(QuotaTemporaryStorageEvictorTest, RepeatedEvictionWithAccessOriginTest) {
TEST_F(QuotaTemporaryStorageEvictorTest, DiskSpaceNonEvictionTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.z.com"), 414);
quota_eviction_handler()->AddOrigin(GURL("http://www.x.com"), 450);
- quota_eviction_handler()->set_quota(10000);
+ quota_eviction_handler()->SetPoolSize(10000);
quota_eviction_handler()->set_available_space(
default_min_available_disk_space_to_start_eviction() - 350);
EXPECT_EQ(414 + 450, quota_eviction_handler()->GetUsage());
reset_min_available_disk_space_to_start_eviction();
- set_repeated_eviction(false);
+ disable_timer_for_testing();
temporary_storage_evictor()->Start();
base::RunLoop().RunUntilIdle();
EXPECT_EQ(414 + 450, quota_eviction_handler()->GetUsage());
@@ -398,13 +400,13 @@ TEST_F(QuotaTemporaryStorageEvictorTest, DiskSpaceEvictionTest) {
quota_eviction_handler()->AddOrigin(GURL("http://www.y.com"), 120);
quota_eviction_handler()->AddOrigin(GURL("http://www.x.com"), 150);
quota_eviction_handler()->AddOrigin(GURL("http://www.w.com"), 300);
- quota_eviction_handler()->set_quota(10000);
+ quota_eviction_handler()->SetPoolSize(10000);
quota_eviction_handler()->set_available_space(
default_min_available_disk_space_to_start_eviction() - 350);
EXPECT_EQ(294 + 120 + 150 + 300, quota_eviction_handler()->GetUsage());
set_min_available_disk_space_to_start_eviction(
default_min_available_disk_space_to_start_eviction());
- set_repeated_eviction(false);
+ disable_timer_for_testing();
temporary_storage_evictor()->Start();
base::RunLoop().RunUntilIdle();
EXPECT_EQ(150 + 300, quota_eviction_handler()->GetUsage());

Powered by Google App Engine
This is Rietveld 408576698