diff options
author | mkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-05 08:39:54 +0000 |
---|---|---|
committer | mkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-05 08:39:54 +0000 |
commit | 4ac23ad25a6467cc360cc10bd05946a0936cac5c (patch) | |
tree | 6a9fd5641ce5143ddb891a3ca16bf558afb4736f /webkit/quota | |
parent | 90a47480a17322e3c095b9cc7eefd5498224f1a4 (diff) | |
download | chromium_src-4ac23ad25a6467cc360cc10bd05946a0936cac5c.zip chromium_src-4ac23ad25a6467cc360cc10bd05946a0936cac5c.tar.gz chromium_src-4ac23ad25a6467cc360cc10bd05946a0936cac5c.tar.bz2 |
Quota: Add quota::StorageType to the GetOriginsCallback definition.
BUG=90996
TEST=test_shell_tests
Review URL: http://codereview.chromium.org/7533013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95591 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/quota')
-rw-r--r-- | webkit/quota/mock_quota_manager.cc | 9 | ||||
-rw-r--r-- | webkit/quota/mock_quota_manager_unittest.cc | 95 | ||||
-rw-r--r-- | webkit/quota/mock_storage_client.cc | 4 | ||||
-rw-r--r-- | webkit/quota/quota_client.h | 3 | ||||
-rw-r--r-- | webkit/quota/quota_manager.cc | 4 | ||||
-rw-r--r-- | webkit/quota/quota_manager_unittest.cc | 10 | ||||
-rw-r--r-- | webkit/quota/quota_types.h | 2 | ||||
-rw-r--r-- | webkit/quota/usage_tracker.cc | 2 |
8 files changed, 75 insertions, 54 deletions
diff --git a/webkit/quota/mock_quota_manager.cc b/webkit/quota/mock_quota_manager.cc index 9df3c6b..67f1ee3 100644 --- a/webkit/quota/mock_quota_manager.cc +++ b/webkit/quota/mock_quota_manager.cc @@ -22,24 +22,27 @@ class MockQuotaManager::GetModifiedSinceTask : public QuotaThreadTask { public: GetModifiedSinceTask(MockQuotaManager* manager, const std::set<GURL>& origins, + StorageType type, GetOriginsCallback* callback) : QuotaThreadTask(manager, manager->io_thread_), origins_(origins), + type_(type), callback_(callback) {} protected: virtual void RunOnTargetThread() OVERRIDE {} virtual void Completed() OVERRIDE { - callback_->Run(origins_); + callback_->Run(origins_, type_); } virtual void Aborted() OVERRIDE { - callback_->Run(std::set<GURL>()); + callback_->Run(std::set<GURL>(), type_); } private: std::set<GURL> origins_; + StorageType type_; scoped_ptr<GetOriginsCallback> callback_; DISALLOW_COPY_AND_ASSIGN(GetModifiedSinceTask); @@ -116,7 +119,7 @@ void MockQuotaManager::GetOriginsModifiedSince(StorageType type, if (current->type == type && current->modified >= modified_since) origins_to_return.insert(current->origin); } - make_scoped_refptr(new GetModifiedSinceTask(this, origins_to_return, + make_scoped_refptr(new GetModifiedSinceTask(this, origins_to_return, type, callback))->Start(); } diff --git a/webkit/quota/mock_quota_manager_unittest.cc b/webkit/quota/mock_quota_manager_unittest.cc index ee6a101..3416d5a 100644 --- a/webkit/quota/mock_quota_manager_unittest.cc +++ b/webkit/quota/mock_quota_manager_unittest.cc @@ -56,8 +56,9 @@ class MockQuotaManagerTest : public testing::Test { &MockQuotaManagerTest::GotModifiedOrigins)); } - void GotModifiedOrigins(const std::set<GURL>& origins) { + void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) { origins_ = origins; + type_ = type; } void DeleteOriginData(const GURL& origin, StorageType type) { @@ -71,18 +72,22 @@ class MockQuotaManagerTest : public testing::Test { EXPECT_EQ(quota::kQuotaStatusOk, status); } - int GetDeletionCallbackCount() { + int deletion_callback_count() const { return deletion_callback_count_; } - MockQuotaManager* GetManager() { + MockQuotaManager* manager() const { return manager_.get(); } - const std::set<GURL> GetOrigins() { + const std::set<GURL>& origins() const { return origins_; } + const StorageType type() const { + return type_; + } + private: ScopedTempDir data_dir_; base::ScopedCallbackFactory<MockQuotaManagerTest> callback_factory_; @@ -92,45 +97,46 @@ class MockQuotaManagerTest : public testing::Test { int deletion_callback_count_; std::set<GURL> origins_; + StorageType type_; DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest); }; TEST_F(MockQuotaManagerTest, BasicOriginManipulation) { - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent)); - - GetManager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent)); - - GetManager()->AddOrigin(kOrigin1, kStorageTypePersistent, base::Time::Now()); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent)); - - GetManager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); + + manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); + EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); + + manager()->AddOrigin(kOrigin1, kStorageTypePersistent, base::Time::Now()); + EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); + EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); + + manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); + EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); + EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); + EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); } TEST_F(MockQuotaManagerTest, OriginDeletion) { - GetManager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); - GetManager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); + manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); + manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); DeleteOriginData(kOrigin2, kStorageTypeTemporary); MessageLoop::current()->RunAllPending(); - EXPECT_EQ(1, GetDeletionCallbackCount()); - EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); - EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); + EXPECT_EQ(1, deletion_callback_count()); + EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); + EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); } TEST_F(MockQuotaManagerTest, ModifiedOrigins) { @@ -141,31 +147,34 @@ TEST_F(MockQuotaManagerTest, ModifiedOrigins) { GetModifiedOrigins(kStorageTypeTemporary, then); MessageLoop::current()->RunAllPending(); - EXPECT_TRUE(GetOrigins().empty()); + EXPECT_TRUE(origins().empty()); - GetManager()->AddOrigin(kOrigin1, kStorageTypeTemporary, now - an_hour); + manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, now - an_hour); GetModifiedOrigins(kStorageTypeTemporary, then); MessageLoop::current()->RunAllPending(); - EXPECT_EQ(1UL, GetOrigins().size()); - EXPECT_EQ(1UL, GetOrigins().count(kOrigin1)); - EXPECT_EQ(0UL, GetOrigins().count(kOrigin2)); + EXPECT_EQ(kStorageTypeTemporary, type()); + EXPECT_EQ(1UL, origins().size()); + EXPECT_EQ(1UL, origins().count(kOrigin1)); + EXPECT_EQ(0UL, origins().count(kOrigin2)); - GetManager()->AddOrigin(kOrigin2, kStorageTypeTemporary, now); + manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, now); GetModifiedOrigins(kStorageTypeTemporary, then); MessageLoop::current()->RunAllPending(); - EXPECT_EQ(2UL, GetOrigins().size()); - EXPECT_EQ(1UL, GetOrigins().count(kOrigin1)); - EXPECT_EQ(1UL, GetOrigins().count(kOrigin2)); + EXPECT_EQ(kStorageTypeTemporary, type()); + EXPECT_EQ(2UL, origins().size()); + EXPECT_EQ(1UL, origins().count(kOrigin1)); + EXPECT_EQ(1UL, origins().count(kOrigin2)); GetModifiedOrigins(kStorageTypeTemporary, now - a_minute); MessageLoop::current()->RunAllPending(); - EXPECT_EQ(1UL, GetOrigins().size()); - EXPECT_EQ(0UL, GetOrigins().count(kOrigin1)); - EXPECT_EQ(1UL, GetOrigins().count(kOrigin2)); + EXPECT_EQ(kStorageTypeTemporary, type()); + EXPECT_EQ(1UL, origins().size()); + EXPECT_EQ(0UL, origins().count(kOrigin1)); + EXPECT_EQ(1UL, origins().count(kOrigin2)); } } // Namespace quota diff --git a/webkit/quota/mock_storage_client.cc b/webkit/quota/mock_storage_client.cc index 0ba4468..897f100 100644 --- a/webkit/quota/mock_storage_client.cc +++ b/webkit/quota/mock_storage_client.cc @@ -163,7 +163,7 @@ void MockStorageClient::RunGetOriginsForType( if (type == iter->first.second) origins.insert(iter->first.first); } - callback->Run(origins); + callback->Run(origins, type); } void MockStorageClient::RunGetOriginsForHost( @@ -178,7 +178,7 @@ void MockStorageClient::RunGetOriginsForHost( if (type == iter->first.second && host == host_or_spec) origins.insert(iter->first.first); } - callback->Run(origins); + callback->Run(origins, type); } void MockStorageClient::RunDeleteOriginData( diff --git a/webkit/quota/quota_client.h b/webkit/quota/quota_client.h index f3ebbad..312e5d0 100644 --- a/webkit/quota/quota_client.h +++ b/webkit/quota/quota_client.h @@ -23,7 +23,8 @@ namespace quota { class QuotaClient { public: typedef Callback1<int64>::Type GetUsageCallback; - typedef Callback1<const std::set<GURL>&>::Type GetOriginsCallback; + typedef Callback2<const std::set<GURL>&, StorageType>::Type + GetOriginsCallback; typedef Callback1<QuotaStatusCode>::Type DeletionCallback; virtual ~QuotaClient() {} diff --git a/webkit/quota/quota_manager.cc b/webkit/quota/quota_manager.cc index d75daa5..b94a352 100644 --- a/webkit/quota/quota_manager.cc +++ b/webkit/quota/quota_manager.cc @@ -835,11 +835,11 @@ class QuotaManager::GetModifiedSinceTask } virtual void DatabaseTaskCompleted() OVERRIDE { - callback_->Run(origins_); + callback_->Run(origins_, type_); } virtual void Aborted() OVERRIDE { - callback_->Run(std::set<GURL>()); + callback_->Run(std::set<GURL>(), type_); } private: diff --git a/webkit/quota/quota_manager_unittest.cc b/webkit/quota/quota_manager_unittest.cc index df1aba7..f43bd64 100644 --- a/webkit/quota/quota_manager_unittest.cc +++ b/webkit/quota/quota_manager_unittest.cc @@ -225,6 +225,7 @@ class QuotaManagerTest : public testing::Test { void GetOriginsModifiedSince(StorageType type, base::Time modified_since) { modified_origins_.clear(); + modified_origins_type_ = kStorageTypeUnknown; quota_manager_->GetOriginsModifiedSince(type, modified_since, callback_factory_.NewCallback( &QuotaManagerTest::DidGetModifiedOrigins)); @@ -306,8 +307,9 @@ class QuotaManagerTest : public testing::Test { lru_origin_ = origin; } - void DidGetModifiedOrigins(const std::set<GURL>& origins) { + void DidGetModifiedOrigins(const std::set<GURL>& origins, StorageType type) { modified_origins_ = origins; + modified_origins_type_ = type; } void DidDumpQuotaTable(const QuotaTableEntries& entries) { @@ -345,6 +347,7 @@ class QuotaManagerTest : public testing::Test { int64 available_space() const { return available_space_; } const GURL& lru_origin() const { return lru_origin_; } const std::set<GURL>& modified_origins() const { return modified_origins_; } + StorageType modified_origins_type() const { return modified_origins_type_; } const QuotaTableEntries& quota_entries() const { return quota_entries_; } const OriginInfoTableEntries& origin_info_entries() const { return origin_info_entries_; @@ -374,6 +377,7 @@ class QuotaManagerTest : public testing::Test { int64 available_space_; GURL lru_origin_; std::set<GURL> modified_origins_; + StorageType modified_origins_type_; QuotaTableEntries quota_entries_; OriginInfoTableEntries origin_info_entries_; int status_callback_count_; @@ -1435,6 +1439,7 @@ TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { GetOriginsModifiedSince(kTemp, base::Time()); MessageLoop::current()->RunAllPending(); EXPECT_TRUE(modified_origins().empty()); + EXPECT_EQ(modified_origins_type(), kTemp); base::Time time1 = client->IncrementMockTime(); client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); @@ -1448,6 +1453,7 @@ TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { GetOriginsModifiedSince(kTemp, time1); MessageLoop::current()->RunAllPending(); EXPECT_EQ(4U, modified_origins().size()); + EXPECT_EQ(modified_origins_type(), kTemp); for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData); ++i) { if (kData[i].type == kTemp) EXPECT_EQ(1U, modified_origins().count(GURL(kData[i].origin))); @@ -1460,6 +1466,7 @@ TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { GetOriginsModifiedSince(kTemp, time3); MessageLoop::current()->RunAllPending(); EXPECT_TRUE(modified_origins().empty()); + EXPECT_EQ(modified_origins_type(), kTemp); client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); @@ -1467,6 +1474,7 @@ TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { MessageLoop::current()->RunAllPending(); EXPECT_EQ(1U, modified_origins().size()); EXPECT_EQ(1U, modified_origins().count(GURL("http://a.com/"))); + EXPECT_EQ(modified_origins_type(), kTemp); } TEST_F(QuotaManagerTest, DumpQuotaTable) { diff --git a/webkit/quota/quota_types.h b/webkit/quota/quota_types.h index d8aeb88..455925d 100644 --- a/webkit/quota/quota_types.h +++ b/webkit/quota/quota_types.h @@ -52,7 +52,7 @@ typedef Callback4<QuotaStatusCode, typedef Callback2<QuotaStatusCode, int64>::Type AvailableSpaceCallback; typedef Callback1<QuotaStatusCode>::Type StatusCallback; -typedef Callback1<const std::set<GURL>&>::Type GetOriginsCallback; +typedef Callback2<const std::set<GURL>&, StorageType>::Type GetOriginsCallback; // Simple template wrapper for a callback queue. template <typename CallbackType> diff --git a/webkit/quota/usage_tracker.cc b/webkit/quota/usage_tracker.cc index 0c4a050..3f99df7 100644 --- a/webkit/quota/usage_tracker.cc +++ b/webkit/quota/usage_tracker.cc @@ -34,7 +34,7 @@ class ClientUsageTracker::GatherUsageTaskBase : public QuotaTask { virtual ~GatherUsageTaskBase() {} // Get total usage for the given |origins|. - void GetUsageForOrigins(const std::set<GURL>& origins) { + void GetUsageForOrigins(const std::set<GURL>& origins, StorageType type) { DCHECK(original_message_loop()->BelongsToCurrentThread()); std::set<GURL> origins_to_process; // We do not get usage for origins for which we have valid usage cache. |