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

Unified Diff: third_party/WebKit/Source/core/fetch/RawResourceTest.cpp

Issue 1410313002: Revert of Revalidate using the same Resource, attempt #3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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
Index: third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
diff --git a/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp b/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
index 05fc5d49693e8f2963807bd54502317edf5509db..2b0a4801469f83139dadab5eee8d11da6dc99169 100644
--- a/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
@@ -62,25 +62,27 @@
TEST(RawResourceTest, RevalidationSucceeded)
{
- ResourcePtr<Resource> resource = new RawResource(ResourceRequest("data:text/html,"), Resource::Raw);
- ResourceResponse response;
- response.setHTTPStatusCode(200);
- resource->responseReceived(response, nullptr);
- const char data[5] = "abcd";
- resource->appendData(data, 4);
- resource->finish();
- memoryCache()->add(resource.get());
+ // Create two RawResources and set one to revalidate the other.
+ RawResource* oldResourcePointer = new RawResource(ResourceRequest("data:text/html,"), Resource::Raw);
+ RawResource* newResourcePointer = new RawResource(ResourceRequest("data:text/html,"), Resource::Raw);
+ newResourcePointer->setResourceToRevalidate(oldResourcePointer);
+ ResourcePtr<Resource> oldResource = oldResourcePointer;
+ ResourcePtr<Resource> newResource = newResourcePointer;
+ memoryCache()->add(oldResource.get());
+ memoryCache()->remove(oldResource.get());
+ memoryCache()->add(newResource.get());
// Simulate a successful revalidation.
- resource->setRevalidatingRequest(ResourceRequest("data:text/html,"));
- ResourceResponse revalidatingResponse;
- revalidatingResponse.setHTTPStatusCode(304);
- resource->responseReceived(revalidatingResponse, nullptr);
- EXPECT_FALSE(resource->isCacheValidator());
- EXPECT_EQ(200, resource->response().httpStatusCode());
- EXPECT_EQ(4u, resource->resourceBuffer()->size());
- EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "data:text/html,")), resource.get());
- memoryCache()->remove(resource.get());
+ // The revalidated resource (oldResource) should now be in the cache, newResource
+ // should have been sliently switched to point to the revalidated resource, and
+ // we shouldn't hit any ASSERTs.
+ ResourceResponse response;
+ response.setHTTPStatusCode(304);
+ newResource->responseReceived(response, nullptr);
+ EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "data:text/html,")), oldResource.get());
+ EXPECT_EQ(oldResource.get(), newResource.get());
+ EXPECT_NE(newResource.get(), newResourcePointer);
+ memoryCache()->remove(newResource.get());
}
class DummyClient : public RawResourceClient {
« no previous file with comments | « third_party/WebKit/Source/core/fetch/RawResource.cpp ('k') | third_party/WebKit/Source/core/fetch/Resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698