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

Unified Diff: Source/core/fetch/MemoryCacheTest.cpp

Issue 202243003: Fix crashes in MemoryCache related to successful revalidation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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
« no previous file with comments | « Source/core/fetch/MemoryCache.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/fetch/MemoryCacheTest.cpp
diff --git a/Source/core/fetch/MemoryCacheTest.cpp b/Source/core/fetch/MemoryCacheTest.cpp
index b59e513c6c85876fee22b3d359f8e2b54682a39a..0159bc5650e3443948a16816324ef41474a98609 100644
--- a/Source/core/fetch/MemoryCacheTest.cpp
+++ b/Source/core/fetch/MemoryCacheTest.cpp
@@ -366,4 +366,24 @@ TEST_F(MemoryCacheTest, DecodeCacheOrder)
ASSERT_EQ(memoryCache()->deadSize(), 0u);
ASSERT_EQ(memoryCache()->liveSize(), totalSize - lowPriorityMockDecodeSize - highPriorityMockDecodeSize);
}
+
+TEST_F(MemoryCacheTest, MultipleReplace)
+{
+ ResourcePtr<FakeResource> resource1 = new FakeResource(ResourceRequest(""), Resource::Raw);
+ memoryCache()->add(resource1.get());
+ EXPECT_EQ(1U, resource1->accessCount());
+
+ ResourcePtr<FakeResource> resource2 = new FakeResource(ResourceRequest(""), Resource::Raw);
+ memoryCache()->replace(resource2.get(), resource1.get());
+ EXPECT_TRUE(resource2->inCache());
+ EXPECT_FALSE(resource1->inCache());
+ EXPECT_EQ(0U, resource2->accessCount());
+
+ ResourcePtr<FakeResource> resource3 = new FakeResource(ResourceRequest(""), Resource::Raw);
+ memoryCache()->replace(resource3.get(), resource2.get());
+ EXPECT_TRUE(resource3->inCache());
+ EXPECT_FALSE(resource2->inCache());
+ EXPECT_EQ(0U, resource3->accessCount());
+}
+
} // namespace
« no previous file with comments | « Source/core/fetch/MemoryCache.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698