summaryrefslogtreecommitdiffstats
path: root/webkit/quota/quota_manager_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/quota/quota_manager_unittest.cc')
-rw-r--r--webkit/quota/quota_manager_unittest.cc379
1 files changed, 13 insertions, 366 deletions
diff --git a/webkit/quota/quota_manager_unittest.cc b/webkit/quota/quota_manager_unittest.cc
index d931cab..eb0af8f 100644
--- a/webkit/quota/quota_manager_unittest.cc
+++ b/webkit/quota/quota_manager_unittest.cc
@@ -72,7 +72,7 @@ class QuotaManagerTest : public testing::Test {
}
void GetUsageAndQuota(const GURL& origin, StorageType type) {
- quota_status_ = kQuotaStatusUnknown;
+ status_ = kQuotaStatusUnknown;
usage_ = -1;
quota_ = -1;
quota_manager_->GetUsageAndQuota(origin, type,
@@ -80,52 +80,6 @@ class QuotaManagerTest : public testing::Test {
&QuotaManagerTest::DidGetUsageAndQuota));
}
- void GetTemporaryGlobalQuota() {
- quota_status_ = kQuotaStatusUnknown;
- quota_ = -1;
- quota_manager_->GetTemporaryGlobalQuota(
- callback_factory_.NewCallback(
- &QuotaManagerTest::DidGetQuota));
- }
-
- void SetTemporaryGlobalQuota(int64 new_quota) {
- quota_status_ = kQuotaStatusUnknown;
- quota_ = -1;
- quota_manager_->SetTemporaryGlobalQuota(new_quota,
- callback_factory_.NewCallback(
- &QuotaManagerTest::DidGetQuota));
- }
-
- void GetPersistentHostQuota(const std::string& host) {
- quota_status_ = kQuotaStatusUnknown;
- quota_ = -1;
- quota_manager_->GetPersistentHostQuota(host,
- callback_factory_.NewCallback(
- &QuotaManagerTest::DidGetHostQuota));
- }
-
- void SetPersistentHostQuota(const std::string& host, int64 new_quota) {
- quota_status_ = kQuotaStatusUnknown;
- quota_ = -1;
- quota_manager_->SetPersistentHostQuota(host, new_quota,
- callback_factory_.NewCallback(
- &QuotaManagerTest::DidGetHostQuota));
- }
-
- void GetGlobalUsage(StorageType type) {
- usage_ = -1;
- quota_manager_->GetGlobalUsage(type,
- callback_factory_.NewCallback(
- &QuotaManagerTest::DidGetGlobalUsage));
- }
-
- void GetHostUsage(const std::string& host, StorageType type) {
- usage_ = -1;
- quota_manager_->GetHostUsage(host, type,
- callback_factory_.NewCallback(
- &QuotaManagerTest::DidGetHostUsage));
- }
-
void RunAdditionalUsageAndQuotaTask(const GURL& origin, StorageType type) {
quota_manager_->GetUsageAndQuota(origin, type,
callback_factory_.NewCallback(
@@ -133,31 +87,11 @@ class QuotaManagerTest : public testing::Test {
}
void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) {
- quota_status_ = status;
+ status_ = status;
usage_ = usage;
quota_ = quota;
}
- void DidGetQuota(QuotaStatusCode status, int64 quota) {
- quota_status_ = status;
- quota_ = quota;
- }
-
- void DidGetHostQuota(QuotaStatusCode status,
- const std::string& host, int64 quota) {
- quota_status_ = status;
- host_ = host;
- quota_ = quota;
- }
-
- void DidGetGlobalUsage(int64 usage) {
- usage_ = usage;
- }
-
- void DidGetHostUsage(const std::string&, int64 usage) {
- usage_ = usage;
- }
-
void set_additional_callback_count(int c) { additional_callback_count_ = c; }
int additional_callback_count() const { return additional_callback_count_; }
void DidGetUsageAndQuotaAdditional(
@@ -170,7 +104,7 @@ class QuotaManagerTest : public testing::Test {
quota_manager_ = quota_manager;
}
- QuotaStatusCode status() const { return quota_status_; }
+ QuotaStatusCode status() const { return status_; }
int64 usage() const { return usage_; }
int64 quota() const { return quota_; }
@@ -180,8 +114,7 @@ class QuotaManagerTest : public testing::Test {
scoped_refptr<QuotaManager> quota_manager_;
- QuotaStatusCode quota_status_;
- std::string host_;
+ QuotaStatusCode status_;
int64 usage_;
int64 quota_;
@@ -190,25 +123,19 @@ class QuotaManagerTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest);
};
-TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) {
+TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Simple) {
const static MockOriginData kData[] = {
{ "http://foo.com/", kStorageTypeTemporary, 10 },
{ "http://foo.com/", kStorageTypePersistent, 80 },
};
RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(80, usage());
- EXPECT_EQ(0, quota());
-
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(10, usage());
- EXPECT_LE(0, quota());
- EXPECT_GE(QuotaManager::kTemporaryStorageQuotaMaxSize, quota());
+ EXPECT_GT(quota(), 0);
+ EXPECT_LE(quota(), QuotaManager::kTemporaryStorageQuotaMaxSize);
int64 quota_returned_for_foo = quota();
GetUsageAndQuota(GURL("http://bar.com/"), kStorageTypeTemporary);
@@ -218,61 +145,19 @@ TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) {
EXPECT_EQ(quota_returned_for_foo - 10, quota());
}
-TEST_F(QuotaManagerTest, GetUsage_NoClient) {
+TEST_F(QuotaManagerTest, GetTemporaryUsage_NoClient) {
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(0, usage());
-
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(0, usage());
-
- GetHostUsage("foo.com", kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
-
- GetHostUsage("foo.com", kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
-
- GetGlobalUsage(kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
-
- GetGlobalUsage(kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
}
-TEST_F(QuotaManagerTest, GetUsage_EmptyClient) {
+TEST_F(QuotaManagerTest, GetTemporaryUsage_EmptyClient) {
RegisterClient(CreateClient(NULL, 0));
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(0, usage());
-
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(0, usage());
-
- GetHostUsage("foo.com", kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
-
- GetHostUsage("foo.com", kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
-
- GetGlobalUsage(kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
-
- GetGlobalUsage(kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, usage());
}
TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) {
@@ -287,10 +172,7 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) {
RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
// This time explicitly sets a temporary global quota.
- SetTemporaryGlobalQuota(100);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(100, quota());
+ quota_manager()->SetTemporaryGlobalQuota(100);
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
MessageLoop::current()->RunAllPending();
@@ -307,11 +189,10 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) {
EXPECT_EQ(100 - (10 + 20 + 30), quota());
}
-TEST_F(QuotaManagerTest, GetUsage_MultipleClients) {
+TEST_F(QuotaManagerTest, GetTemporaryUsage_MultipleClients) {
const static MockOriginData kData1[] = {
{ "http://foo.com/", kStorageTypeTemporary, 10 },
{ "http://bar.com/", kStorageTypeTemporary, 20 },
- { "http://bar.com/", kStorageTypePersistent, 50 },
};
const static MockOriginData kData2[] = {
{ "https://foo.com/", kStorageTypeTemporary, 30 },
@@ -324,21 +205,6 @@ TEST_F(QuotaManagerTest, GetUsage_MultipleClients) {
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(10 + 30, usage());
-
- GetUsageAndQuota(GURL("http://bar.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(50, usage());
-
- GetGlobalUsage(kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(10 + 20 + 30, usage());
-
- GetGlobalUsage(kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(40 + 50, usage());
}
TEST_F(QuotaManagerTest, GetTemporaryUsage_WithModify) {
@@ -380,7 +246,7 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) {
{ "http://foo.com/", kStorageTypePersistent, 40 },
};
RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
- SetTemporaryGlobalQuota(100);
+ quota_manager()->SetTemporaryGlobalQuota(100);
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
@@ -411,7 +277,7 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) {
{ "http://foo.com/", kStorageTypePersistent, 40 },
};
RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
- SetTemporaryGlobalQuota(100);
+ quota_manager()->SetTemporaryGlobalQuota(100);
set_additional_callback_count(0);
GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypeTemporary);
@@ -426,223 +292,4 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) {
EXPECT_EQ(kQuotaErrorAbort, status());
}
-TEST_F(QuotaManagerTest, GetAndSetPerststentHostQuota) {
- RegisterClient(CreateClient(NULL, 0));
-
- GetPersistentHostQuota("foo.com");
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(0, quota());
-
- SetPersistentHostQuota("foo.com", 100);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(100, quota());
-
- GetPersistentHostQuota("foo.com");
- SetPersistentHostQuota("foo.com", 200);
- GetPersistentHostQuota("foo.com");
- SetPersistentHostQuota("foo.com", 300);
- GetPersistentHostQuota("foo.com");
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(300, quota());
-}
-
-TEST_F(QuotaManagerTest, GetAndSetPersistentUsageAndQuota) {
- RegisterClient(CreateClient(NULL, 0));
-
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(0, usage());
- EXPECT_EQ(0, quota());
-
- SetPersistentHostQuota("foo.com",100);
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(0, usage());
- EXPECT_EQ(100, quota());
-}
-
-TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_MultiOrigins) {
- const static MockOriginData kData[] = {
- { "http://foo.com/", kStorageTypePersistent, 10 },
- { "http://foo.com:8080/", kStorageTypePersistent, 20 },
- { "https://foo.com/", kStorageTypePersistent, 13 },
- { "https://foo.com:8081/", kStorageTypePersistent, 19 },
- { "http://bar.com/", kStorageTypePersistent, 5 },
- { "https://bar.com/", kStorageTypePersistent, 7 },
- { "http://baz.com/", kStorageTypePersistent, 30 },
- { "http://foo.com/", kStorageTypeTemporary, 40 },
- };
- RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
-
- SetPersistentHostQuota("foo.com", 100);
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(10 + 20 + 13 + 19, usage());
- EXPECT_EQ(100, quota());
-}
-
-TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) {
- const static MockOriginData kData[] = {
- { "http://foo.com/", kStorageTypePersistent, 10 },
- { "http://foo.com:1/", kStorageTypePersistent, 20 },
- };
- MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData));
- RegisterClient(client);
-
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(10 + 20, usage());
-
- client->ModifyMockOriginDataSize(
- GURL("http://foo.com/"), kStorageTypePersistent, 20);
- client->ModifyMockOriginDataSize(
- GURL("http://foo.com:1/"), kStorageTypePersistent, -5);
- client->ModifyMockOriginDataSize(
- GURL("http://bar.com/"), kStorageTypePersistent, 33);
-
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(10 + 20 + 20 - 5, usage());
-
- GetUsageAndQuota(GURL("http://bar.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(33, usage());
-}
-
-TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) {
- const static MockOriginData kData[] = {
- { "http://foo.com/", kStorageTypePersistent, 10 },
- { "http://foo.com:8080/", kStorageTypePersistent, 20 },
- { "http://bar.com/", kStorageTypePersistent, 13 },
- { "http://foo.com/", kStorageTypeTemporary, 40 },
- };
- RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
- SetPersistentHostQuota("foo.com",100);
-
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(10 + 20, usage());
- EXPECT_EQ(100, quota());
-
- set_additional_callback_count(0);
- RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"),
- kStorageTypePersistent);
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"),
- kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaStatusOk, status());
- EXPECT_EQ(10 + 20, usage());
- EXPECT_EQ(2, additional_callback_count());
-}
-
-TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) {
- const static MockOriginData kData[] = {
- { "http://foo.com/", kStorageTypePersistent, 10 },
- { "http://foo.com:8080/", kStorageTypePersistent, 20 },
- { "http://bar.com/", kStorageTypePersistent, 13 },
- { "http://foo.com/", kStorageTypeTemporary, 40 },
- };
- RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
- SetPersistentHostQuota("foo.com", 100);
-
- set_additional_callback_count(0);
- GetUsageAndQuota(GURL("http://foo.com/"), kStorageTypePersistent);
- RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"),
- kStorageTypePersistent);
- RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"),
- kStorageTypePersistent);
-
- // Nuke before waiting for callbacks.
- set_quota_manager(NULL);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(kQuotaErrorAbort, status());
-}
-
-TEST_F(QuotaManagerTest, GetUsage_Simple) {
- const static MockOriginData kData[] = {
- { "http://foo.com/", kStorageTypePersistent, 1 },
- { "http://foo.com:1/", kStorageTypePersistent, 20 },
- { "http://bar.com/", kStorageTypeTemporary, 300 },
- { "https://buz.com/", kStorageTypeTemporary, 4000 },
- { "http://buz.com/", kStorageTypeTemporary, 50000 },
- { "http://bar.com:1/", kStorageTypePersistent, 600000 },
- { "http://foo.com/", kStorageTypeTemporary, 7000000 },
- };
- RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
-
- GetGlobalUsage(kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 1 + 20 + 600000);
-
- GetGlobalUsage(kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000);
-
- GetHostUsage("foo.com", kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 1 + 20);
-
- GetHostUsage("buz.com", kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 4000 + 50000);
-}
-
-TEST_F(QuotaManagerTest, GetUsage_WithModification) {
- const static MockOriginData kData[] = {
- { "http://foo.com/", kStorageTypePersistent, 1 },
- { "http://foo.com:1/", kStorageTypePersistent, 20 },
- { "http://bar.com/", kStorageTypeTemporary, 300 },
- { "https://buz.com/", kStorageTypeTemporary, 4000 },
- { "http://buz.com/", kStorageTypeTemporary, 50000 },
- { "http://bar.com:1/", kStorageTypePersistent, 600000 },
- { "http://foo.com/", kStorageTypeTemporary, 7000000 },
- };
-
- MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData));
- RegisterClient(client);
-
- GetGlobalUsage(kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 1 + 20 + 600000);
-
- client->ModifyMockOriginDataSize(
- GURL("http://foo.com/"), kStorageTypePersistent, 80000000);
-
- GetGlobalUsage(kStorageTypePersistent);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 1 + 20 + 600000 + 80000000);
-
- GetGlobalUsage(kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000);
-
- client->ModifyMockOriginDataSize(
- GURL("http://foo.com/"), kStorageTypeTemporary, 1);
-
- GetGlobalUsage(kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000 + 1);
-
- GetHostUsage("buz.com", kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 4000 + 50000);
-
- client->ModifyMockOriginDataSize(
- GURL("http://buz.com/"), kStorageTypeTemporary, 900000000);
-
- GetHostUsage("buz.com", kStorageTypeTemporary);
- MessageLoop::current()->RunAllPending();
- EXPECT_EQ(usage(), 4000 + 50000 + 900000000);
-}
-
} // namespace quota