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

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

Issue 2045623002: Revert "Make revalidation to fail when received a redirect response" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2743
Patch Set: Created 4 years, 6 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 | « no previous file | third_party/WebKit/Source/core/fetch/Resource.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9ba94d2c5d6e68b23a3ef6b6ae1c61a8749f2087..a405dd7b92ed771920ef44e3f4b8bc10bbff1a07 100644
--- a/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
+++ b/third_party/WebKit/Source/core/fetch/RawResourceTest.cpp
@@ -56,7 +56,7 @@ TEST(RawResourceTest, DontIgnoreAcceptForCacheReuse)
class DummyClient final : public RawResourceClient {
public:
- DummyClient() : m_called(false), m_numberOfRedirectsReceived(0) {}
+ DummyClient() : m_called(false) {}
~DummyClient() override {}
// ResourceClient implementation.
@@ -71,17 +71,10 @@ public:
m_data.append(data, length);
}
- void redirectReceived(Resource*, ResourceRequest&, const ResourceResponse&) override
- {
- ++m_numberOfRedirectsReceived;
- }
-
bool called() { return m_called; }
- int numberOfRedirectsReceived() const { return m_numberOfRedirectsReceived; }
const Vector<char>& data() { return m_data; }
private:
bool m_called;
- int m_numberOfRedirectsReceived;
Vector<char> m_data;
};
@@ -240,81 +233,6 @@ TEST(RawResourceTest, RevalidationSucceededUpdateHeaders)
EXPECT_EQ(0u, client->data().size());
}
-TEST(RawResourceTest, RedirectDuringRevalidation)
-{
- Resource* resource = RawResource::create(ResourceRequest("https://example.com/1"), Resource::Raw);
- ResourceResponse response;
- response.setURL(KURL(ParsedURLString, "https://example.com/1"));
- response.setHTTPStatusCode(200);
- resource->responseReceived(response, nullptr);
- const char data[5] = "abcd";
- resource->appendData(data, 4);
- resource->finish();
- memoryCache()->add(resource);
-
- EXPECT_FALSE(resource->isCacheValidator());
- EXPECT_EQ("https://example.com/1", resource->resourceRequest().url().getString());
- EXPECT_EQ("https://example.com/1", resource->lastResourceRequest().url().getString());
-
- // Simulate a revalidation.
- resource->setRevalidatingRequest(ResourceRequest("https://example.com/1"));
- EXPECT_TRUE(resource->isCacheValidator());
- EXPECT_EQ("https://example.com/1", resource->resourceRequest().url().getString());
- EXPECT_EQ("https://example.com/1", resource->lastResourceRequest().url().getString());
-
- Persistent<DummyClient> client = new DummyClient;
- resource->addClient(client);
-
- // The revalidating request is redirected.
- ResourceResponse redirectResponse;
- redirectResponse.setURL(KURL(ParsedURLString, "https://example.com/1"));
- redirectResponse.setHTTPHeaderField("location", "https://example.com/2");
- redirectResponse.setHTTPStatusCode(308);
- ResourceRequest redirectedRevalidatingRequest("https://example.com/2");
- resource->willFollowRedirect(redirectedRevalidatingRequest, redirectResponse);
- EXPECT_FALSE(resource->isCacheValidator());
- EXPECT_EQ("https://example.com/1", resource->resourceRequest().url().getString());
- EXPECT_EQ("https://example.com/2", resource->lastResourceRequest().url().getString());
-
- // The final response is received.
- ResourceResponse revalidatingResponse;
- revalidatingResponse.setURL(KURL(ParsedURLString, "https://example.com/2"));
- revalidatingResponse.setHTTPStatusCode(200);
- resource->responseReceived(revalidatingResponse, nullptr);
- const char data2[4] = "xyz";
- resource->appendData(data2, 3);
- resource->finish();
- EXPECT_FALSE(resource->isCacheValidator());
- EXPECT_EQ("https://example.com/1", resource->resourceRequest().url().getString());
- EXPECT_EQ("https://example.com/2", resource->lastResourceRequest().url().getString());
- EXPECT_FALSE(resource->isCacheValidator());
- EXPECT_EQ(200, resource->response().httpStatusCode());
- EXPECT_EQ(3u, resource->resourceBuffer()->size());
- EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "https://example.com/1")), resource);
-
- EXPECT_TRUE(client->called());
- EXPECT_EQ(1, client->numberOfRedirectsReceived());
- EXPECT_EQ("xyz", String(client->data().data(), client->data().size()));
-
- // Test the case where a client is added after revalidation is completed.
- Persistent<DummyClient> client2 = new DummyClient;
- resource->addClient(client2);
-
- // Because RawResourceClient is added asynchronously,
- // |runPendingTasks()| is called to make |client2| to be notified.
- testing::runPendingTasks();
-
- EXPECT_TRUE(client2->called());
- EXPECT_EQ(1, client2->numberOfRedirectsReceived());
- EXPECT_EQ("xyz", String(client2->data().data(), client2->data().size()));
-
- memoryCache()->remove(resource);
-
- resource->removeClient(client);
- resource->removeClient(client2);
- EXPECT_FALSE(resource->hasClientsOrObservers());
-}
-
TEST(RawResourceTest, AddClientDuringCallback)
{
Resource* raw = RawResource::create(ResourceRequest("data:text/html,"), Resource::Raw);
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/fetch/Resource.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698