diff options
Diffstat (limited to 'webkit/quota/quota_manager_unittest.cc')
-rw-r--r-- | webkit/quota/quota_manager_unittest.cc | 379 |
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 |