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

Unified Diff: webkit/quota/quota_database_unittest.cc

Issue 7057006: Add Dump{Quota,LastAccessTime}Table (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 7 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
« webkit/quota/quota_database.cc ('K') | « webkit/quota/quota_database.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/quota/quota_database_unittest.cc
diff --git a/webkit/quota/quota_database_unittest.cc b/webkit/quota/quota_database_unittest.cc
index 6e80c851555619ac1025fff2c8c6d43ded08aad4..69fca69607585deed10d7a9f27401c23fd3b00aa 100644
--- a/webkit/quota/quota_database_unittest.cc
+++ b/webkit/quota/quota_database_unittest.cc
@@ -7,6 +7,8 @@
#include <set>
#include "app/sql/connection.h"
+#include "base/bind.h"
+#include "base/callback.h"
#include "base/file_util.h"
#include "base/scoped_temp_dir.h"
#include "googleurl/src/gurl.h"
@@ -192,6 +194,62 @@ class QuotaDatabaseTest : public testing::Test {
&used_count));
EXPECT_EQ(1, used_count);
}
+
+ template<typename T>
+ struct EntryVerifier {
+ std::set<T>* xs;
+ bool Run(const T& x) {
+ EXPECT_EQ(1u, xs->erase(x));
+ return true;
+ }
+ };
+
+ void DumpQuotaTable(const FilePath& kDbFile) {
+ typedef QuotaDatabase::QuotaTableEntry QuotaTableEntry;
+ typedef QuotaDatabase::QuotaTableCallback QuotaTableCallback;
+
+ QuotaTableEntry kQuotaTable[] = {
+ {"http://go/", kStorageTypeTemporary, 1},
+ {"http://oo/", kStorageTypeTemporary, 2},
+ {"http://gle/", kStorageTypePersistent, 3}
+ };
+
+ std::set<QuotaTableEntry> quota_table(
+ kQuotaTable, kQuotaTable + ARRAYSIZE_UNSAFE(kQuotaTable));
+ QuotaDatabase db(kDbFile);
+ EXPECT_TRUE(db.AssignQuotaTable(quota_table));
+
+ typedef EntryVerifier<QuotaTableEntry> Verifier;
+ Verifier verifier = {&quota_table};
+ QuotaTableCallback callback = base::Bind(&Verifier::Run,
+ base::Unretained(&verifier));
+ EXPECT_TRUE(db.DumpQuotaTable(&callback));
+ EXPECT_TRUE(quota_table.empty());
+ }
+
+ void DumpAccessTable(const FilePath& kDbFile) {
+ typedef QuotaDatabase::AccessTableEntry AccessTableEntry;
+ typedef QuotaDatabase::AccessTableCallback AccessTableCallback;
+
+ base::Time now(base::Time::Now());
+ AccessTableEntry kAccessTable[] = {
+ {GURL("http://go/"), kStorageTypeTemporary, 2147483647, now},
+ {GURL("http://oo/"), kStorageTypeTemporary, 0, now},
+ {GURL("http://gle/"), kStorageTypeTemporary, 1, now},
+ };
+
+ std::set<AccessTableEntry> access_table(
+ kAccessTable, kAccessTable + ARRAYSIZE_UNSAFE(kAccessTable));
+ QuotaDatabase db(kDbFile);
+ EXPECT_TRUE(db.AssignAccessTable(access_table));
+
+ typedef EntryVerifier<AccessTableEntry> Verifier;
+ Verifier verifier = {&access_table};
+ AccessTableCallback callback = base::Bind(&Verifier::Run,
+ base::Unretained(&verifier));
+ EXPECT_TRUE(db.DumpAccessTable(&callback));
+ EXPECT_TRUE(access_table.empty());
+ }
};
TEST_F(QuotaDatabaseTest, LazyOpen) {
@@ -247,4 +305,20 @@ TEST_F(QuotaDatabaseTest, RegisterOrigins) {
RegisterOrigins(kDbFile);
RegisterOrigins(FilePath());
}
+
+TEST_F(QuotaDatabaseTest, DumpQuotaTable) {
+ ScopedTempDir data_dir;
+ ASSERT_TRUE(data_dir.CreateUniqueTempDir());
+ const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db");
+ DumpQuotaTable(kDbFile);
+ DumpQuotaTable(FilePath());
+}
+
+TEST_F(QuotaDatabaseTest, DumpAccessTable) {
+ ScopedTempDir data_dir;
+ ASSERT_TRUE(data_dir.CreateUniqueTempDir());
+ const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db");
+ DumpAccessTable(kDbFile);
+ DumpAccessTable(FilePath());
+}
} // namespace quota
« webkit/quota/quota_database.cc ('K') | « webkit/quota/quota_database.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698