diff options
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.cc | 43 |
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()); |