Index: webkit/quota/quota_manager_unittest.cc |
diff --git a/webkit/quota/quota_manager_unittest.cc b/webkit/quota/quota_manager_unittest.cc |
index 7d09c3c947239fc34a16241e9fef3726d168d237..697b0d6dab4739ca8df313fc67cf1e422a32fc96 100644 |
--- a/webkit/quota/quota_manager_unittest.cc |
+++ b/webkit/quota/quota_manager_unittest.cc |
@@ -132,13 +132,21 @@ class QuotaManagerTest : public testing::Test { |
&QuotaManagerTest::DidGetUsageAndQuotaAdditional)); |
} |
- void DeleteOriginData(QuotaClient* client, |
+ void DeleteClientOriginData(QuotaClient* client, |
const GURL& origin, |
StorageType type) { |
quota_status_ = kQuotaStatusUnknown; |
client->DeleteOriginData(origin, type, |
callback_factory_.NewCallback( |
- &QuotaManagerTest::DidDelete)); |
+ &QuotaManagerTest::DidDeleteClientOriginData)); |
+ } |
+ |
+ void EvictOriginData(const GURL& origin, |
+ StorageType type) { |
+ quota_status_ = kQuotaStatusUnknown; |
+ quota_manager_->EvictOriginData(origin, type, |
+ callback_factory_.NewCallback( |
+ &QuotaManagerTest::DidEvictOriginData)); |
} |
void GetAvailableSpace() { |
@@ -175,7 +183,11 @@ class QuotaManagerTest : public testing::Test { |
usage_ = usage; |
} |
- void DidDelete(QuotaStatusCode status) { |
+ void DidDeleteClientOriginData(QuotaStatusCode status) { |
+ quota_status_ = status; |
+ } |
+ |
+ void DidEvictOriginData(QuotaStatusCode status) { |
quota_status_ = status; |
} |
@@ -711,7 +723,8 @@ TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) { |
MessageLoop::current()->RunAllPending(); |
int64 predelete_host_pers = usage(); |
- DeleteOriginData(client, GURL("http://foo.com/"), kStorageTypeTemporary); |
+ DeleteClientOriginData(client, GURL("http://foo.com/"), |
+ kStorageTypeTemporary); |
MessageLoop::current()->RunAllPending(); |
EXPECT_EQ(kQuotaStatusOk, status()); |
@@ -736,4 +749,52 @@ TEST_F(QuotaManagerTest, GetAvailableSpaceTest) { |
int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path()); |
EXPECT_EQ(direct_called, quota()); |
} |
+ |
+TEST_F(QuotaManagerTest, EvictOriginData) { |
+ static const MockOriginData kData1[] = { |
+ { "http://foo.com/", kStorageTypeTemporary, 1 }, |
+ { "http://foo.com:1/", kStorageTypeTemporary, 20 }, |
+ { "http://foo.com/", kStorageTypePersistent, 300 }, |
+ { "http://bar.com/", kStorageTypeTemporary, 4000 }, |
+ }; |
+ static const MockOriginData kData2[] = { |
+ { "http://foo.com/", kStorageTypeTemporary, 50000 }, |
+ { "http://foo.com:1/", kStorageTypeTemporary, 6000 }, |
+ { "http://foo.com/", kStorageTypePersistent, 700 }, |
+ { "https://foo.com/", kStorageTypeTemporary, 80 }, |
+ { "http://bar.com/", kStorageTypeTemporary, 9 }, |
+ }; |
+ MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); |
+ MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); |
+ RegisterClient(client1); |
+ RegisterClient(client2); |
+ |
+ GetGlobalUsage(kStorageTypeTemporary); |
+ MessageLoop::current()->RunAllPending(); |
+ int64 predelete_global_tmp = usage(); |
+ |
+ GetHostUsage("foo.com", kStorageTypeTemporary); |
+ MessageLoop::current()->RunAllPending(); |
+ int64 predelete_host_tmp = usage(); |
+ |
+ GetHostUsage("foo.com", kStorageTypePersistent); |
+ MessageLoop::current()->RunAllPending(); |
+ int64 predelete_host_pers = usage(); |
+ |
+ EvictOriginData(GURL("http://foo.com/"), kStorageTypeTemporary); |
+ MessageLoop::current()->RunAllPending(); |
+ |
+ GetGlobalUsage(kStorageTypeTemporary); |
+ MessageLoop::current()->RunAllPending(); |
+ EXPECT_EQ(predelete_global_tmp - (1 + 50000), usage()); |
+ |
+ GetHostUsage("foo.com", kStorageTypeTemporary); |
+ MessageLoop::current()->RunAllPending(); |
+ EXPECT_EQ(predelete_host_tmp - (1 + 50000), usage()); |
+ |
+ GetHostUsage("foo.com", kStorageTypePersistent); |
+ MessageLoop::current()->RunAllPending(); |
+ EXPECT_EQ(predelete_host_pers, usage()); |
+} |
+ |
} // namespace quota |