summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_unittest.cc
diff options
context:
space:
mode:
authorjennb@chromium.org <jennb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-02 23:17:33 +0000
committerjennb@chromium.org <jennb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-02 23:17:33 +0000
commiteaa0885f7f32060ea7313e25dc1104d5a9b6b3ba (patch)
treee81482931ebf2e92e2e3302d45c6b5470820752b /webkit/appcache/appcache_unittest.cc
parent900950e1a35c75ad3089e1f78c03e8c497cdb6f0 (diff)
downloadchromium_src-eaa0885f7f32060ea7313e25dc1104d5a9b6b3ba.zip
chromium_src-eaa0885f7f32060ea7313e25dc1104d5a9b6b3ba.tar.gz
chromium_src-eaa0885f7f32060ea7313e25dc1104d5a9b6b3ba.tar.bz2
Change AppCache and AppCacheGroup to be ref counted classes.Adjusted API of framework classes accordingly.Added unittests for appcache framework classes.TEST=verify objects are cleaned up properly, verify api implBUG=none
Review URL: http://codereview.chromium.org/179071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25264 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_unittest.cc')
-rw-r--r--webkit/appcache/appcache_unittest.cc55
1 files changed, 55 insertions, 0 deletions
diff --git a/webkit/appcache/appcache_unittest.cc b/webkit/appcache/appcache_unittest.cc
new file mode 100644
index 0000000..951cb8b
--- /dev/null
+++ b/webkit/appcache/appcache_unittest.cc
@@ -0,0 +1,55 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "webkit/appcache/appcache.h"
+#include "webkit/appcache/appcache_host.h"
+#include "webkit/appcache/appcache_service.h"
+
+using appcache::AppCache;
+using appcache::AppCacheEntry;
+using appcache::AppCacheHost;
+using appcache::AppCacheService;
+
+namespace {
+
+class AppCacheTest : public testing::Test {
+};
+
+} // namespace
+
+TEST(AppCacheTest, CleanupUnusedCache) {
+ AppCacheService service;
+ AppCache* cache = new AppCache(&service, 111);
+
+ AppCacheHost host1(1, NULL);
+ AppCacheHost host2(2, NULL);
+
+ host1.set_selected_cache(cache);
+ host2.set_selected_cache(cache);
+
+ host1.set_selected_cache(NULL);
+ host2.set_selected_cache(NULL);
+}
+
+TEST(AppCacheTest, AddModifyEntry) {
+ AppCacheService service;
+ scoped_refptr<AppCache> cache = new AppCache(&service, 111);
+
+ const GURL kUrl1("http://foo.com");
+ AppCacheEntry entry1(AppCacheEntry::MASTER);
+ cache->AddEntry(kUrl1, entry1);
+ EXPECT_EQ(entry1.types(), cache->GetEntry(kUrl1)->types());
+
+ const GURL kUrl2("http://bar.com");
+ AppCacheEntry entry2(AppCacheEntry::FALLBACK);
+ cache->AddOrModifyEntry(kUrl2, entry2);
+ EXPECT_EQ(entry2.types(), cache->GetEntry(kUrl2)->types());
+
+ AppCacheEntry entry3(AppCacheEntry::EXPLICIT);
+ cache->AddOrModifyEntry(kUrl1, entry3);
+ EXPECT_EQ((AppCacheEntry::MASTER | AppCacheEntry::EXPLICIT),
+ cache->GetEntry(kUrl1)->types());
+ EXPECT_EQ(entry2.types(), cache->GetEntry(kUrl2)->types()); // unchanged
+}