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

Unified Diff: webkit/quota/quota_database_unittest.cc

Issue 7168019: Implement QM::GetOriginsModifiedSince for browser data deleter support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' 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_database_unittest.cc
diff --git a/webkit/quota/quota_database_unittest.cc b/webkit/quota/quota_database_unittest.cc
index f126f31dda0ad4bc8beb2fc679c9e95ae76db2e6..4b9aaa28e807bfdb518f4b48e75b36623680e436 100644
--- a/webkit/quota/quota_database_unittest.cc
+++ b/webkit/quota/quota_database_unittest.cc
@@ -38,9 +38,9 @@ class QuotaDatabaseTest : public testing::Test {
protected:
typedef QuotaDatabase::QuotaTableEntry QuotaTableEntry;
typedef QuotaDatabase::QuotaTableCallback QuotaTableCallback;
- typedef QuotaDatabase::LastAccessTimeTableEntry LastAccessTimeTableEntry;
- typedef QuotaDatabase::LastAccessTimeTableCallback
- LastAccessTimeTableCallback;
+ typedef QuotaDatabase::OriginInfoTableEntry OriginInfoTableEntry;
+ typedef QuotaDatabase::OriginInfoTableCallback
+ OriginInfoTableCallback;
template <typename Iterator>
bool AssignQuotaTable(
@@ -71,16 +71,16 @@ class QuotaDatabaseTest : public testing::Test {
}
template <typename Iterator>
- bool AssignLastAccessTimeTable(
+ bool AssignOriginInfoTable(
QuotaDatabase* quota_database, Iterator itr, Iterator end) {
if (!quota_database->LazyOpen(true))
return false;
for (; itr != end; ++itr) {
const char* kSql =
- "INSERT INTO OriginLastAccessTable"
- " (origin, type, used_count, last_access_time)"
- " VALUES (?, ?, ?, ?)";
+ "INSERT INTO OriginInfoTable"
+ " (origin, type, used_count, last_access_time, last_modified_time)"
+ " VALUES (?, ?, ?, ?, ?)";
sql::Statement statement;
statement.Assign(
quota_database->db_->GetCachedStatement(
@@ -91,6 +91,7 @@ class QuotaDatabaseTest : public testing::Test {
statement.BindInt(1, static_cast<int>(itr->type));
statement.BindInt(2, itr->used_count);
statement.BindInt64(3, itr->last_access_time.ToInternalValue());
+ statement.BindInt64(4, itr->last_modified_time.ToInternalValue());
if (!statement.Run())
return false;
}
@@ -223,7 +224,7 @@ class QuotaDatabaseTest : public testing::Test {
kOrigin1, kStorageTypeTemporary, base::Time::Now()));
// Delete origin/type last access time information.
- EXPECT_TRUE(db.DeleteOriginLastAccessTime(kOrigin3, kStorageTypeTemporary));
+ EXPECT_TRUE(db.DeleteOriginInfo(kOrigin3, kStorageTypeTemporary));
// Querying again to see if the deletion has worked.
exceptions.clear();
@@ -238,6 +239,58 @@ class QuotaDatabaseTest : public testing::Test {
EXPECT_TRUE(origin.is_empty());
}
+ void OriginLastModifiedSince(const FilePath& kDbFile) {
+ QuotaDatabase db(kDbFile);
+ ASSERT_TRUE(db.LazyOpen(true));
+
+ std::set<GURL> origins;
+ EXPECT_TRUE(db.GetOriginsModifiedSince(
+ kStorageTypeTemporary, &origins, base::Time()));
+ EXPECT_TRUE(origins.empty());
+
+ const GURL kOrigin1("http://a/");
+ const GURL kOrigin2("http://b/");
+ const GURL kOrigin3("http://c/");
+
+ // Report last mod time for the test origins.
+ EXPECT_TRUE(db.SetOriginLastModifiedTime(
+ kOrigin1, kStorageTypeTemporary, base::Time::FromInternalValue(10)));
+ EXPECT_TRUE(db.SetOriginLastModifiedTime(
+ kOrigin2, kStorageTypeTemporary, base::Time::FromInternalValue(20)));
+ EXPECT_TRUE(db.SetOriginLastModifiedTime(
+ kOrigin3, kStorageTypeTemporary, base::Time::FromInternalValue(30)));
+
+ EXPECT_TRUE(db.GetOriginsModifiedSince(
+ kStorageTypeTemporary, &origins, base::Time::FromInternalValue(15)));
+ EXPECT_EQ(2U, origins.size());
+ EXPECT_EQ(0U, origins.count(kOrigin1));
+ EXPECT_EQ(1U, origins.count(kOrigin2));
+ EXPECT_EQ(1U, origins.count(kOrigin3));
+
+ EXPECT_TRUE(db.GetOriginsModifiedSince(
+ kStorageTypeTemporary, &origins, base::Time::FromInternalValue(25)));
+ EXPECT_EQ(1U, origins.size());
+ EXPECT_EQ(0U, origins.count(kOrigin1));
+ EXPECT_EQ(0U, origins.count(kOrigin2));
+ EXPECT_EQ(1U, origins.count(kOrigin3));
+
+ EXPECT_TRUE(db.GetOriginsModifiedSince(
+ kStorageTypeTemporary, &origins, base::Time::FromInternalValue(35)));
+ EXPECT_TRUE(origins.empty());
+
+ // Update origin1's mod time but for persistent storage.
+ EXPECT_TRUE(db.SetOriginLastModifiedTime(
+ kOrigin1, kStorageTypePersistent, base::Time::FromInternalValue(40)));
Mike West 2011/06/16 09:39:33 This is the only place you do anything with persis
kinuko 2011/06/16 12:09:06 Done.
+
+ // Must have no effects on temporary origins info.
+ EXPECT_TRUE(db.GetOriginsModifiedSince(
+ kStorageTypeTemporary, &origins, base::Time::FromInternalValue(15)));
+ EXPECT_EQ(2U, origins.size());
+ EXPECT_EQ(0U, origins.count(kOrigin1));
+ EXPECT_EQ(1U, origins.count(kOrigin2));
+ EXPECT_EQ(1U, origins.count(kOrigin3));
+ }
+
void RegisterOrigins(const FilePath& kDbFile) {
QuotaDatabase db(kDbFile);
@@ -312,24 +365,23 @@ class QuotaDatabaseTest : public testing::Test {
EXPECT_TRUE(verifier.table.empty());
}
- void DumpLastAccessTimeTable(const FilePath& kDbFile) {
+ void DumpOriginInfoTable(const FilePath& kDbFile) {
base::Time now(base::Time::Now());
- LastAccessTimeTableEntry kTableEntries[] = {
- {GURL("http://go/"), kStorageTypeTemporary, 2147483647, now},
- {GURL("http://oo/"), kStorageTypeTemporary, 0, now},
- {GURL("http://gle/"), kStorageTypeTemporary, 1, now},
+ OriginInfoTableEntry kTableEntries[] = {
+ {GURL("http://go/"), kStorageTypeTemporary, 2147483647, now, now},
+ {GURL("http://oo/"), kStorageTypeTemporary, 0, now, now},
+ {GURL("http://gle/"), kStorageTypeTemporary, 1, now, now},
};
- LastAccessTimeTableEntry* begin = kTableEntries;
- LastAccessTimeTableEntry* end = kTableEntries +
- ARRAYSIZE_UNSAFE(kTableEntries);
+ OriginInfoTableEntry* begin = kTableEntries;
+ OriginInfoTableEntry* end = kTableEntries + ARRAYSIZE_UNSAFE(kTableEntries);
QuotaDatabase db(kDbFile);
- EXPECT_TRUE(AssignLastAccessTimeTable(&db, begin, end));
+ EXPECT_TRUE(AssignOriginInfoTable(&db, begin, end));
- typedef EntryVerifier<LastAccessTimeTableEntry> Verifier;
+ typedef EntryVerifier<OriginInfoTableEntry> Verifier;
Verifier verifier(begin, end);
- EXPECT_TRUE(db.DumpLastAccessTimeTable(
- new LastAccessTimeTableCallback(
+ EXPECT_TRUE(db.DumpOriginInfoTable(
+ new OriginInfoTableCallback(
base::Bind(&Verifier::Run,
base::Unretained(&verifier)))));
EXPECT_TRUE(verifier.table.empty());
@@ -368,6 +420,14 @@ TEST_F(QuotaDatabaseTest, OriginLastAccessTimeLRU) {
OriginLastAccessTimeLRU(FilePath());
}
+TEST_F(QuotaDatabaseTest, OriginLastModifiedSince) {
+ ScopedTempDir data_dir;
+ ASSERT_TRUE(data_dir.CreateUniqueTempDir());
+ const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db");
+ OriginLastModifiedSince(kDbFile);
+ OriginLastModifiedSince(FilePath());
+}
+
TEST_F(QuotaDatabaseTest, BootstrapFlag) {
ScopedTempDir data_dir;
ASSERT_TRUE(data_dir.CreateUniqueTempDir());
@@ -398,11 +458,11 @@ TEST_F(QuotaDatabaseTest, DumpQuotaTable) {
DumpQuotaTable(FilePath());
}
-TEST_F(QuotaDatabaseTest, DumpLastAccessTimeTable) {
+TEST_F(QuotaDatabaseTest, DumpOriginInfoTable) {
ScopedTempDir data_dir;
ASSERT_TRUE(data_dir.CreateUniqueTempDir());
const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db");
- DumpLastAccessTimeTable(kDbFile);
- DumpLastAccessTimeTable(FilePath());
+ DumpOriginInfoTable(kDbFile);
+ DumpOriginInfoTable(FilePath());
}
} // namespace quota

Powered by Google App Engine
This is Rietveld 408576698