Chromium Code Reviews| Index: webkit/appcache/appcache_host_unittest.cc |
| =================================================================== |
| --- webkit/appcache/appcache_host_unittest.cc (revision 64524) |
| +++ webkit/appcache/appcache_host_unittest.cc (working copy) |
| @@ -164,8 +164,14 @@ |
| mock_frontend_.last_host_id_ = -333; |
| mock_frontend_.last_status_ = OBSOLETE; |
| + // Precondition, a cache with an entry that is not marked as foreign. |
| + const int kCacheId = 22; |
| + const GURL kDocumentURL("http://origin/document"); |
| + scoped_refptr<AppCache> cache = new AppCache(&service_, kCacheId); |
| + cache->AddEntry(kDocumentURL, AppCacheEntry(AppCacheEntry::EXPLICIT)); |
| + |
| AppCacheHost host(1, &mock_frontend_, &service_); |
| - host.MarkAsForeignEntry(GURL("http://whatever/"), 22); |
| + host.MarkAsForeignEntry(kDocumentURL, kCacheId); |
| // We should have received an OnCacheSelected msg for kNoCacheId. |
| EXPECT_EQ(1, mock_frontend_.last_host_id_); |
| @@ -178,8 +184,43 @@ |
| EXPECT_EQ(&mock_frontend_, host.frontend()); |
| EXPECT_EQ(NULL, host.associated_cache()); |
| EXPECT_FALSE(host.is_selection_pending()); |
| + |
| + // See that the entry was marked as foreign. |
| + EXPECT_TRUE(cache->GetEntry(kDocumentURL)->IsForeign()); |
| } |
| +TEST_F(AppCacheHostTest, ForeignFallbackEntry) { |
| + // Reset our mock frontend |
| + mock_frontend_.last_cache_id_ = -333; |
| + mock_frontend_.last_host_id_ = -333; |
| + mock_frontend_.last_status_ = OBSOLETE; |
| + |
| + // Precondition, a cache with a fallback entry that is not marked as foreign. |
| + const int kCacheId = 22; |
| + const GURL kFallbackURL("http://origin/fallback_resource"); |
| + scoped_refptr<AppCache> cache = new AppCache(&service_, kCacheId); |
| + cache->AddEntry(kFallbackURL, AppCacheEntry(AppCacheEntry::FALLBACK)); |
| + |
| + AppCacheHost host(1, &mock_frontend_, &service_); |
| + host.NotifyMainResourceFallback(kFallbackURL); |
| + host.MarkAsForeignEntry(GURL("http://origin/missing_document"), kCacheId); |
| + |
| + // We should have received an OnCacheSelected msg for kNoCacheId. |
| + EXPECT_EQ(1, mock_frontend_.last_host_id_); |
| + EXPECT_EQ(kNoCacheId, mock_frontend_.last_cache_id_); |
| + EXPECT_EQ(UNCACHED, mock_frontend_.last_status_); |
| + |
| + // See that it respond as if there is no cache selected. |
| + EXPECT_EQ(1, host.host_id()); |
| + EXPECT_EQ(&service_, host.service()); |
| + EXPECT_EQ(&mock_frontend_, host.frontend()); |
| + EXPECT_EQ(NULL, host.associated_cache()); |
| + EXPECT_FALSE(host.is_selection_pending()); |
|
kinuko
2010/11/02 07:47:23
Do we need to test all of them in both ForeignEntr
michaeln
2010/11/02 20:25:36
It does seem like some of these are redundant. How
kinuko
2010/11/03 00:25:18
sgtm!
|
| + |
| + // See that the fallback entry was marked as foreign. |
| + EXPECT_TRUE(cache->GetEntry(kFallbackURL)->IsForeign()); |
| +} |
| + |
| TEST_F(AppCacheHostTest, FailedCacheLoad) { |
| // Reset our mock frontend |
| mock_frontend_.last_cache_id_ = -333; |