diff options
author | michaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-21 02:39:40 +0000 |
---|---|---|
committer | michaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-21 02:39:40 +0000 |
commit | 9b7a0c551268395816959eb8df1c44086583824e (patch) | |
tree | 2be7bdf092e8776b0161b0eff83c0122626dc5bf /webkit/appcache/appcache_database_unittest.cc | |
parent | 6f526b9ac1ec6fb252d3cfe1f625a694d76f643f (diff) | |
download | chromium_src-9b7a0c551268395816959eb8df1c44086583824e.zip chromium_src-9b7a0c551268395816959eb8df1c44086583824e.tar.gz chromium_src-9b7a0c551268395816959eb8df1c44086583824e.tar.bz2 |
Enforce a hard coded 5MB per origin quota for appcache storage.
TEST=yes
BUG=none
Review URL: http://codereview.chromium.org/554008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36723 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_database_unittest.cc')
-rw-r--r-- | webkit/appcache/appcache_database_unittest.cc | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/webkit/appcache/appcache_database_unittest.cc b/webkit/appcache/appcache_database_unittest.cc index b2a35c5..763cd9a 100644 --- a/webkit/appcache/appcache_database_unittest.cc +++ b/webkit/appcache/appcache_database_unittest.cc @@ -517,4 +517,72 @@ TEST(AppCacheDatabaseTest, DeletableResponseIds) { EXPECT_EQ(i + 5, ids[i]); } +TEST(AppCacheDatabaseTest, Quotas) { + const GURL kManifestUrl("http://blah/manifest"); + const GURL kManifestUrl2("http://blah/manifest2"); + const GURL kOrigin(kManifestUrl.GetOrigin()); + const GURL kOtherOriginManifestUrl("http://other/manifest"); + const GURL kOtherOrigin(kOtherOriginManifestUrl.GetOrigin()); + + const FilePath kEmptyPath; + AppCacheDatabase db(kEmptyPath); + EXPECT_TRUE(db.LazyOpen(true)); + + scoped_refptr<TestErrorDelegate> error_delegate(new TestErrorDelegate); + db.db_->set_error_delegate(error_delegate); + + std::vector<AppCacheDatabase::CacheRecord> cache_records; + EXPECT_EQ(db.GetDefaultOriginQuota(), db.GetOriginQuota(kOrigin)); + EXPECT_EQ(0, db.GetOriginUsage(kOrigin)); + EXPECT_TRUE(db.FindCachesForOrigin(kOrigin, &cache_records)); + EXPECT_TRUE(cache_records.empty()); + + AppCacheDatabase::GroupRecord group_record; + group_record.group_id = 1; + group_record.manifest_url = kManifestUrl; + group_record.origin = kOrigin; + EXPECT_TRUE(db.InsertGroup(&group_record)); + AppCacheDatabase::CacheRecord cache_record; + cache_record.cache_id = 1; + cache_record.group_id = 1; + cache_record.online_wildcard = true; + cache_record.update_time = kZeroTimeTicks; + cache_record.cache_size = 100; + EXPECT_TRUE(db.InsertCache(&cache_record)); + + EXPECT_EQ(100, db.GetOriginUsage(kOrigin)); + + group_record.group_id = 2; + group_record.manifest_url = kManifestUrl2; + group_record.origin = kOrigin; + EXPECT_TRUE(db.InsertGroup(&group_record)); + cache_record.cache_id = 2; + cache_record.group_id = 2; + cache_record.online_wildcard = true; + cache_record.update_time = kZeroTimeTicks; + cache_record.cache_size = 1000; + EXPECT_TRUE(db.InsertCache(&cache_record)); + + EXPECT_EQ(1100, db.GetOriginUsage(kOrigin)); + + group_record.group_id = 3; + group_record.manifest_url = kOtherOriginManifestUrl; + group_record.origin = kOtherOrigin; + EXPECT_TRUE(db.InsertGroup(&group_record)); + cache_record.cache_id = 3; + cache_record.group_id = 3; + cache_record.online_wildcard = true; + cache_record.update_time = kZeroTimeTicks; + cache_record.cache_size = 5000; + EXPECT_TRUE(db.InsertCache(&cache_record)); + + EXPECT_EQ(5000, db.GetOriginUsage(kOtherOrigin)); + + EXPECT_TRUE(db.FindCachesForOrigin(kOrigin, &cache_records)); + EXPECT_EQ(2U, cache_records.size()); + cache_records.clear(); + EXPECT_TRUE(db.FindCachesForOrigin(kOtherOrigin, &cache_records)); + EXPECT_EQ(1U, cache_records.size()); +} + } // namespace appcache |