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()); |