summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc43
1 files changed, 32 insertions, 11 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc b/chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc
index ac71a793058..86454344997 100644
--- a/chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc
+++ b/chromium/third_party/blink/renderer/core/loader/ping_loader_test.cc
@@ -19,6 +19,27 @@ namespace blink {
namespace {
+class PartialResourceRequest {
+ public:
+ PartialResourceRequest() : PartialResourceRequest(ResourceRequest()) {}
+ PartialResourceRequest(const ResourceRequest& request)
+ : url_(request.Url()), priority_(request.Priority()) {
+ http_header_fields_.Adopt(request.HttpHeaderFields().CopyData());
+ }
+
+ bool IsNull() const { return url_.IsNull(); }
+ const KURL& Url() const { return url_; }
+ const AtomicString& HttpHeaderField(const AtomicString& name) const {
+ return http_header_fields_.Get(name);
+ }
+ ResourceLoadPriority Priority() const { return priority_; }
+
+ private:
+ KURL url_;
+ HTTPHeaderMap http_header_fields_;
+ ResourceLoadPriority priority_;
+};
+
class PingLocalFrameClient : public EmptyLocalFrameClient {
public:
std::unique_ptr<WebURLLoaderFactory> CreateURLLoaderFactory() override {
@@ -27,13 +48,13 @@ class PingLocalFrameClient : public EmptyLocalFrameClient {
void DispatchWillSendRequest(ResourceRequest& request) override {
if (request.GetKeepalive())
- ping_request_ = request;
+ ping_request_ = PartialResourceRequest(request);
}
- const ResourceRequest& PingRequest() const { return ping_request_; }
+ const PartialResourceRequest& PingRequest() const { return ping_request_; }
private:
- ResourceRequest ping_request_;
+ PartialResourceRequest ping_request_;
};
class PingLoaderTest : public PageTestBase {
@@ -55,14 +76,14 @@ class PingLoaderTest : public PageTestBase {
ASSERT_EQ(url.GetString(), GetDocument().Url().GetString());
}
- const ResourceRequest& PingAndGetRequest(const KURL& ping_url) {
+ const PartialResourceRequest& PingAndGetRequest(const KURL& ping_url) {
KURL destination_url("http://navigation.destination");
// TODO(crbug.com/751425): We should use the mock functionality
// via |PageTestBase::dummy_page_holder_|.
url_test_helpers::RegisterMockedURLLoad(
ping_url, test::CoreTestDataPath("bar.html"), "text/html");
PingLoader::SendLinkAuditPing(&GetFrame(), ping_url, destination_url);
- const ResourceRequest& ping_request = client_->PingRequest();
+ const PartialResourceRequest& ping_request = client_->PingRequest();
if (!ping_request.IsNull()) {
EXPECT_EQ(destination_url.GetString(),
ping_request.HttpHeaderField("Ping-To"));
@@ -80,7 +101,7 @@ class PingLoaderTest : public PageTestBase {
TEST_F(PingLoaderTest, HTTPSToHTTPS) {
KURL ping_url("https://localhost/bar.html");
SetDocumentURL(KURL("https://127.0.0.1:8000/foo.html"));
- const ResourceRequest& ping_request = PingAndGetRequest(ping_url);
+ const PartialResourceRequest& ping_request = PingAndGetRequest(ping_url);
ASSERT_FALSE(ping_request.IsNull());
EXPECT_EQ(ping_url, ping_request.Url());
EXPECT_EQ(String(), ping_request.HttpHeaderField("Ping-From"));
@@ -90,7 +111,7 @@ TEST_F(PingLoaderTest, HTTPToHTTPS) {
KURL document_url("http://127.0.0.1:8000/foo.html");
KURL ping_url("https://localhost/bar.html");
SetDocumentURL(document_url);
- const ResourceRequest& ping_request = PingAndGetRequest(ping_url);
+ const PartialResourceRequest& ping_request = PingAndGetRequest(ping_url);
ASSERT_FALSE(ping_request.IsNull());
EXPECT_EQ(ping_url, ping_request.Url());
EXPECT_EQ(document_url.GetString(),
@@ -99,7 +120,7 @@ TEST_F(PingLoaderTest, HTTPToHTTPS) {
TEST_F(PingLoaderTest, NonHTTPPingTarget) {
SetDocumentURL(KURL("http://127.0.0.1:8000/foo.html"));
- const ResourceRequest& ping_request =
+ const PartialResourceRequest& ping_request =
PingAndGetRequest(KURL("ftp://localhost/bar.html"));
ASSERT_TRUE(ping_request.IsNull());
}
@@ -115,7 +136,7 @@ TEST_F(PingLoaderTest, LinkAuditPingPriority) {
ping_url, test::CoreTestDataPath("bar.html"), "text/html");
PingLoader::SendLinkAuditPing(&GetFrame(), ping_url, destination_url);
url_test_helpers::ServeAsynchronousRequests();
- const ResourceRequest& request = client_->PingRequest();
+ const PartialResourceRequest& request = client_->PingRequest();
ASSERT_FALSE(request.IsNull());
ASSERT_EQ(request.Url(), ping_url);
EXPECT_EQ(ResourceLoadPriority::kVeryLow, request.Priority());
@@ -132,7 +153,7 @@ TEST_F(PingLoaderTest, ViolationPriority) {
PingLoader::SendViolationReport(&GetFrame(), ping_url,
EncodedFormData::Create());
url_test_helpers::ServeAsynchronousRequests();
- const ResourceRequest& request = client_->PingRequest();
+ const PartialResourceRequest& request = client_->PingRequest();
ASSERT_FALSE(request.IsNull());
ASSERT_EQ(request.Url(), ping_url);
EXPECT_EQ(ResourceLoadPriority::kVeryLow, request.Priority());
@@ -148,7 +169,7 @@ TEST_F(PingLoaderTest, BeaconPriority) {
ping_url, test::CoreTestDataPath("bar.html"), "text/html");
PingLoader::SendBeacon(&GetFrame(), ping_url, "hello");
url_test_helpers::ServeAsynchronousRequests();
- const ResourceRequest& request = client_->PingRequest();
+ const PartialResourceRequest& request = client_->PingRequest();
ASSERT_FALSE(request.IsNull());
ASSERT_EQ(request.Url(), ping_url);
EXPECT_EQ(ResourceLoadPriority::kVeryLow, request.Priority());