Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1016)

Unified Diff: webkit/quota/quota_manager_unittest.cc

Issue 7168019: Implement QM::GetOriginsModifiedSince for browser data deleter support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes + upgradeschema Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/quota/quota_manager_unittest.cc
diff --git a/webkit/quota/quota_manager_unittest.cc b/webkit/quota/quota_manager_unittest.cc
index 92b69896b770aaf77f05462b4c391cdcb442e55c..22707cff93114279281a1aba3ff0a632c366e055 100644
--- a/webkit/quota/quota_manager_unittest.cc
+++ b/webkit/quota/quota_manager_unittest.cc
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <set>
#include <sstream>
#include <vector>
@@ -37,8 +38,8 @@ class QuotaManagerTest : public testing::Test {
protected:
typedef QuotaManager::QuotaTableEntry QuotaTableEntry;
typedef QuotaManager::QuotaTableEntries QuotaTableEntries;
- typedef QuotaManager::LastAccessTimeTableEntry LastAccessTimeTableEntry;
- typedef QuotaManager::LastAccessTimeTableEntries LastAccessTimeTableEntries;
+ typedef QuotaManager::OriginInfoTableEntry OriginInfoTableEntry;
+ typedef QuotaManager::OriginInfoTableEntries OriginInfoTableEntries;
public:
QuotaManagerTest()
@@ -215,6 +216,13 @@ class QuotaManagerTest : public testing::Test {
quota_manager_->NotifyOriginNoLongerInUse(origin);
}
+ void GetOriginsModifiedSince(StorageType type, base::Time modified_since) {
+ modified_origins_.clear();
+ quota_manager_->GetOriginsModifiedSince(type, modified_since,
+ callback_factory_.NewCallback(
+ &QuotaManagerTest::DidGetModifiedOrigins));
+ }
+
void DumpQuotaTable() {
quota_table_.clear();
quota_manager_->DumpQuotaTable(
@@ -222,11 +230,11 @@ class QuotaManagerTest : public testing::Test {
&QuotaManagerTest::DidDumpQuotaTable));
}
- void DumpLastAccessTimeTable() {
+ void DumpOriginInfoTable() {
last_access_time_table_.clear();
- quota_manager_->DumpLastAccessTimeTable(
+ quota_manager_->DumpOriginInfoTable(
callback_factory_.NewCallback(
- &QuotaManagerTest::DidDumpLastAccessTimeTable));
+ &QuotaManagerTest::DidDumpOriginInfoTable));
}
void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) {
@@ -294,11 +302,15 @@ class QuotaManagerTest : public testing::Test {
lru_origin_ = origin;
}
+ void DidGetModifiedOrigins(const std::set<GURL>& origins) {
+ modified_origins_.insert(origins.begin(), origins.end());
michaeln 2011/07/01 00:17:39 would an assignment work here?
kinuko 2011/07/04 07:43:52 Done.
+ }
+
void DidDumpQuotaTable(const QuotaTableEntries& entries) {
quota_table_ = entries;
}
- void DidDumpLastAccessTimeTable(const LastAccessTimeTableEntries& entries) {
+ void DidDumpOriginInfoTable(const OriginInfoTableEntries& entries) {
last_access_time_table_ = entries;
}
@@ -328,8 +340,9 @@ class QuotaManagerTest : public testing::Test {
int64 quota() const { return quota_; }
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_; }
const QuotaTableEntries& quota_table() const { return quota_table_; }
- const LastAccessTimeTableEntries& last_access_time_table() const {
+ const OriginInfoTableEntries& last_access_time_table() const {
return last_access_time_table_;
}
FilePath profile_path() const { return data_dir_.path(); }
@@ -354,8 +367,9 @@ class QuotaManagerTest : public testing::Test {
int64 quota_;
int64 available_space_;
GURL lru_origin_;
+ std::set<GURL> modified_origins_;
QuotaTableEntries quota_table_;
- LastAccessTimeTableEntries last_access_time_table_;
+ OriginInfoTableEntries last_access_time_table_;
int additional_callback_count_;
@@ -1040,10 +1054,10 @@ TEST_F(QuotaManagerTest, EvictOriginData) {
EvictOriginData(GURL("http://foo.com/"), kTemp);
MessageLoop::current()->RunAllPending();
- DumpLastAccessTimeTable();
+ DumpOriginInfoTable();
MessageLoop::current()->RunAllPending();
- typedef LastAccessTimeTableEntries::const_iterator iterator;
+ typedef OriginInfoTableEntries::const_iterator iterator;
for (iterator itr(last_access_time_table().begin()),
end(last_access_time_table().end());
itr != end; ++itr) {
@@ -1101,11 +1115,11 @@ TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) {
EXPECT_EQ(kQuotaErrorInvalidModification, status());
}
- DumpLastAccessTimeTable();
+ DumpOriginInfoTable();
MessageLoop::current()->RunAllPending();
bool found_origin_in_database = false;
- typedef LastAccessTimeTableEntries::const_iterator iterator;
+ typedef OriginInfoTableEntries::const_iterator iterator;
for (iterator itr(last_access_time_table().begin()),
end(last_access_time_table().end());
itr != end; ++itr) {
@@ -1306,6 +1320,53 @@ TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) {
EXPECT_EQ("http://a.com/", lru_origin().spec());
}
+TEST_F(QuotaManagerTest, GetOriginsModifiedSince) {
+ static const MockOriginData kData[] = {
+ { "http://a.com/", kTemp, 0 },
+ { "http://a.com:1/", kTemp, 0 },
+ { "https://a.com/", kTemp, 0 },
+ { "http://b.com/", kPerm, 0 }, // persistent
+ { "http://c.com/", kTemp, 0 },
+ };
+ MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData));
+ RegisterClient(client);
+
+ GetOriginsModifiedSince(kTemp, base::Time());
+ MessageLoop::current()->RunAllPending();
+ EXPECT_TRUE(modified_origins().empty());
+
+ base::Time time1 = client->GetCurrentMockTime();
+ client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10);
+ client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10);
michaeln 2011/07/01 00:17:39 maybe modify the kPerm origin here to ensure it do
kinuko 2011/07/04 07:43:52 Done.
+ base::Time time2 = client->GetCurrentMockTime();
+ client->ModifyOriginAndNotify(GURL("https://a.com/"), kTemp, 10);
+ client->ModifyOriginAndNotify(GURL("http://c.com/"), kTemp, 10);
+ base::Time time3 = client->GetCurrentMockTime();
+
+ GetOriginsModifiedSince(kTemp, time1);
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(4U, modified_origins().size());
+ 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)));
+ }
+
+ GetOriginsModifiedSince(kTemp, time2);
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(2U, modified_origins().size());
+
+ GetOriginsModifiedSince(kTemp, time3);
+ MessageLoop::current()->RunAllPending();
+ EXPECT_TRUE(modified_origins().empty());
+
+ client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10);
+
+ GetOriginsModifiedSince(kTemp, time3);
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(1U, modified_origins().size());
+ EXPECT_EQ(1U, modified_origins().count(GURL("http://a.com/")));
+}
+
TEST_F(QuotaManagerTest, DumpQuotaTable) {
SetPersistentHostQuota("example1.com", 1);
SetPersistentHostQuota("example2.com", 20);
@@ -1334,7 +1395,7 @@ TEST_F(QuotaManagerTest, DumpQuotaTable) {
EXPECT_TRUE(entries.empty());
}
-TEST_F(QuotaManagerTest, DumpLastAccessTimeTable) {
+TEST_F(QuotaManagerTest, DumpOriginInfoTable) {
using std::make_pair;
quota_manager()->NotifyStorageAccessed(
@@ -1351,7 +1412,7 @@ TEST_F(QuotaManagerTest, DumpLastAccessTimeTable) {
kPerm);
MessageLoop::current()->RunAllPending();
- DumpLastAccessTimeTable();
+ DumpOriginInfoTable();
MessageLoop::current()->RunAllPending();
typedef std::pair<GURL, StorageType> TypedOrigin;
@@ -1363,7 +1424,7 @@ TEST_F(QuotaManagerTest, DumpLastAccessTimeTable) {
std::set<Entry> entries
(kEntries, kEntries + ARRAYSIZE_UNSAFE(kEntries));
- typedef LastAccessTimeTableEntries::const_iterator iterator;
+ typedef OriginInfoTableEntries::const_iterator iterator;
for (iterator itr(last_access_time_table().begin()),
end(last_access_time_table().end());
itr != end; ++itr) {

Powered by Google App Engine
This is Rietveld 408576698