Index: third_party/WebKit/Source/platform/network/LinkHeaderTest.cpp |
diff --git a/third_party/WebKit/Source/core/loader/LinkHeaderTest.cpp b/third_party/WebKit/Source/platform/network/LinkHeaderTest.cpp |
similarity index 80% |
rename from third_party/WebKit/Source/core/loader/LinkHeaderTest.cpp |
rename to third_party/WebKit/Source/platform/network/LinkHeaderTest.cpp |
index 21680b79365608ecfe63495012b32345d1653507..caa15f8f99ee1a54615bde27e436c173653e22d4 100644 |
--- a/third_party/WebKit/Source/core/loader/LinkHeaderTest.cpp |
+++ b/third_party/WebKit/Source/platform/network/LinkHeaderTest.cpp |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "core/loader/LinkHeader.h" |
+#include "platform/network/LinkHeader.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include <base/macros.h> |
@@ -34,8 +34,8 @@ TEST(LinkHeaderTest, Single) |
{"</images/cat.jpg> ; rel=prefetch", "/images/cat.jpg", "prefetch", "", true}, |
{"< /images/cat.jpg> ; rel=prefetch", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg > ; rel=prefetch", "/images/cat.jpg", "prefetch", "", true}, |
- {"</images/cat.jpg wutwut> ; rel=prefetch", "/images/cat.jpg", "prefetch", "", true}, |
- {"</images/cat.jpg wutwut \t > ; rel=prefetch", "/images/cat.jpg", "prefetch", "", true}, |
+ {"</images/cat.jpg wutwut> ; rel=prefetch", "/images/cat.jpg wutwut", "prefetch", "", true}, |
+ {"</images/cat.jpg wutwut \t > ; rel=prefetch", "/images/cat.jpg wutwut", "prefetch", "", true}, |
{"</images/cat.jpg>; rel=prefetch ", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg>; Rel=prefetch ", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg>; Rel=PReFetCh ", "/images/cat.jpg", "prefetch", "", true}, |
@@ -47,59 +47,60 @@ TEST(LinkHeaderTest, Single) |
{"</images/cat.jpg>; rel= prefetch", "/images/cat.jpg", "prefetch", "", true}, |
{"<../images/cat.jpg?dog>; rel= prefetch", "../images/cat.jpg?dog", "prefetch", "", true}, |
{"</images/cat.jpg>; rel =prefetch", "/images/cat.jpg", "prefetch", "", true}, |
- {"</images/cat.jpg>; rel pel=prefetch", "/images/cat.jpg", "", "", false}, |
+ {"</images/cat.jpg>; rel pel=prefetch", "/images/cat.jpg", "", "", true}, |
{"< /images/cat.jpg>", "/images/cat.jpg", "", "", true}, |
- {"</images/cat.jpg>; rel =", "/images/cat.jpg", "", "", false}, |
+ {"</images/cat.jpg>; rel =", "/images/cat.jpg", "", "", true}, |
{"</images/cat.jpg>; wut=sup; rel =prefetch", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg>; wut=sup ; rel =prefetch", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg>; wut=sup ; rel =prefetch \t ;", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg> wut=sup ; rel =prefetch \t ;", "/images/cat.jpg", "", "", false}, |
{"< /images/cat.jpg", "", "", "", false}, |
- {"< http://wut.com/ sdfsdf ?sd>; rel=dns-prefetch", "http://wut.com/", "dns-prefetch", "", true}, |
+ {"< http://wut.com/ sdfsdf ?sd>; rel=dns-prefetch", "http://wut.com/ sdfsdf ?sd", "dns-prefetch", "", true}, |
{"< http://wut.com/%20%20%3dsdfsdf?sd>; rel=dns-prefetch", "http://wut.com/%20%20%3dsdfsdf?sd", "dns-prefetch", "", true}, |
{"< http://wut.com/dfsdf?sdf=ghj&wer=rty>; rel=prefetch", "http://wut.com/dfsdf?sdf=ghj&wer=rty", "prefetch", "", true}, |
{"< http://wut.com/dfsdf?sdf=ghj&wer=rty>;;;;; rel=prefetch", "http://wut.com/dfsdf?sdf=ghj&wer=rty", "prefetch", "", true}, |
{"< http://wut.com/%20%20%3dsdfsdf?sd>; rel=preload;as=image", "http://wut.com/%20%20%3dsdfsdf?sd", "preload", "image", true}, |
{"< http://wut.com/%20%20%3dsdfsdf?sd>; rel=preload;as=whatever", "http://wut.com/%20%20%3dsdfsdf?sd", "preload", "whatever", true}, |
- {"</images/cat.jpg>; anchor=foo; rel=prefetch;", "/images/cat.jpg", "", "", false}, |
+ {"</images/cat.jpg>; anchor=foo; rel=prefetch;", "/images/cat.jpg", "prefetch", "", false}, |
{"</images/cat.jpg>; rel=prefetch;anchor=foo ", "/images/cat.jpg", "prefetch", "", false}, |
- {"</images/cat.jpg>; anchor='foo'; rel=prefetch;", "/images/cat.jpg", "", "", false}, |
+ {"</images/cat.jpg>; anchor='foo'; rel=prefetch;", "/images/cat.jpg", "prefetch", "", false}, |
{"</images/cat.jpg>; rel=prefetch;anchor='foo' ", "/images/cat.jpg", "prefetch", "", false}, |
{"</images/cat.jpg>; rel=prefetch;anchor='' ", "/images/cat.jpg", "prefetch", "", false}, |
{"</images/cat.jpg>; rel=prefetch;", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/cat.jpg>; rel=prefetch ;", "/images/cat.jpg", "prefetch", "", true}, |
{"</images/ca,t.jpg>; rel=prefetch ;", "/images/ca,t.jpg", "prefetch", "", true}, |
{"<simple.css>; rel=stylesheet; title=\"title with a DQUOTE and backslash\"", "simple.css", "stylesheet", "", true}, |
- {"<simple.css>; rel=stylesheet; title=\"title with a DQUOTE \\\" and backslash: \\\"", "simple.css", "stylesheet", "", false}, |
+ {"<simple.css>; rel=stylesheet; title=\"title with a DQUOTE \\\" and backslash: \\\"", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; title=\"title with a DQUOTE \\\" and backslash: \"; rel=stylesheet; ", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; title=\'title with a DQUOTE \\\' and backslash: \'; rel=stylesheet; ", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; title=\"title with a DQUOTE \\\" and ;backslash,: \"; rel=stylesheet; ", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; title=\"title with a DQUOTE \' and ;backslash,: \"; rel=stylesheet; ", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; title=\"\"; rel=stylesheet; ", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; title=\"\"; rel=\"stylesheet\"; ", "simple.css", "stylesheet", "", true}, |
- {"<simple.css>; rel=stylesheet; title=\"", "simple.css", "stylesheet", "", false}, |
+ {"<simple.css>; rel=stylesheet; title=\"", "simple.css", "stylesheet", "", true}, |
{"<simple.css>; rel=stylesheet; title=\"\"", "simple.css", "stylesheet", "", true}, |
- {"<simple.css>; rel=\"stylesheet\"; title=\"", "simple.css", "stylesheet", "", false}, |
- {"<simple.css>; rel=\";style,sheet\"; title=\"", "simple.css", ";style,sheet", "", false}, |
- {"<simple.css>; rel=\"bla'sdf\"; title=\"", "simple.css", "bla'sdf", "", false}, |
+ {"<simple.css>; rel=\"stylesheet\"; title=\"", "simple.css", "stylesheet", "", true}, |
+ {"<simple.css>; rel=\";style,sheet\"; title=\"", "simple.css", ";style,sheet", "", true}, |
+ {"<simple.css>; rel=\"bla'sdf\"; title=\"", "simple.css", "bla'sdf", "", true}, |
{"<simple.css>; rel=\"\"; title=\"\"", "simple.css", "", "", true}, |
{"<simple.css>; rel=''; title=\"\"", "simple.css", "", "", true}, |
- {"<simple.css>; rel=''; title=", "simple.css", "", "", false}, |
- {"<simple.css>; rel=''; title", "simple.css", "", "", false}, |
- {"<simple.css>; rel=''; media", "simple.css", "", "", false}, |
- {"<simple.css>; rel=''; hreflang", "simple.css", "", "", false}, |
- {"<simple.css>; rel=''; type", "simple.css", "", "", false}, |
- {"<simple.css>; rel=''; rev", "simple.css", "", "", false}, |
+ {"<simple.css>; rel=''; title=", "simple.css", "", "", true}, |
+ {"<simple.css>; rel=''; title", "simple.css", "", "", true}, |
+ {"<simple.css>; rel=''; media", "simple.css", "", "", true}, |
+ {"<simple.css>; rel=''; hreflang", "simple.css", "", "", true}, |
+ {"<simple.css>; rel=''; type", "simple.css", "", "", true}, |
+ {"<simple.css>; rel=''; rev", "simple.css", "", "", true}, |
{"<simple.css>; rel=''; bla", "simple.css", "", "", true}, |
- {"<simple.css>; rel='prefetch", "simple.css", "", "", false}, |
- {"<simple.css>; rel=\"prefetch", "simple.css", "", "", false}, |
- {"<simple.css>; rel=\"", "simple.css", "", "", false}, |
+ {"<simple.css>; rel='prefetch", "simple.css", "prefetch", "", true}, |
+ {"<simple.css>; rel=\"prefetch", "simple.css", "prefetch", "", true}, |
+ {"<simple.css>; rel=\"", "simple.css", "", "", true}, |
}; |
// Test the cases with a single header |
for (auto& testCase : cases) { |
LinkHeaderSet headerSet(testCase.headerValue); |
+ ASSERT_EQ(1u, headerSet.size()); |
LinkHeader& header = headerSet[0]; |
ASSERT_STREQ(testCase.url, header.url().ascii().data()); |
ASSERT_STREQ(testCase.rel, header.rel().ascii().data()); |
@@ -121,10 +122,12 @@ TEST(LinkHeaderTest, Double) |
{"<ybg.css>; rel=stylesheet, <simple.css>; rel=stylesheet", "ybg.css", "stylesheet", true, "simple.css", "stylesheet", true}, |
{"<ybg.css>; rel=stylesheet,<simple.css>; rel=stylesheet", "ybg.css", "stylesheet", true, "simple.css", "stylesheet", true}, |
{"<ybg.css>; rel=stylesheet;crossorigin,<simple.css>; rel=stylesheet", "ybg.css", "stylesheet", true, "simple.css", "stylesheet", true}, |
+ {"<hel,lo.css>; rel=stylesheet; title=\"foo,bar\", <simple.css>; rel=stylesheet; title=\"foo;bar\"", "hel,lo.css", "stylesheet", true, "simple.css", "stylesheet", true}, |
}; |
for (auto& testCase : cases) { |
LinkHeaderSet headerSet(testCase.headerValue); |
+ ASSERT_EQ(2u, headerSet.size()); |
LinkHeader& header1 = headerSet[0]; |
LinkHeader& header2 = headerSet[1]; |
ASSERT_STREQ(testCase.url, header1.url().ascii().data()); |
@@ -142,26 +145,26 @@ TEST(LinkHeaderTest, CrossOrigin) |
const char* headerValue; |
const char* url; |
const char* rel; |
- const CrossOriginAttributeValue crossorigin; |
+ const char* crossorigin; |
bool valid; |
} cases[] = { |
- {"<http://whatever.com>; rel=preconnect", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin=", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin ", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin;", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin, <http://whatever2.com>; rel=preconnect", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin , <http://whatever2.com>; rel=preconnect", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin,<http://whatever2.com>; rel=preconnect", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin=anonymous", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin=use-credentials", "http://whatever.com", "preconnect", CrossOriginAttributeUseCredentials, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin=whatever", "http://whatever.com", "preconnect", CrossOriginAttributeAnonymous, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorig|in=whatever", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, true}, |
- {"<http://whatever.com>; rel=preconnect; crossorigin|=whatever", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, true}, |
- {"<http://whatever.com>; rel=preconnect; valid!", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, true}, |
- {"<http://whatever.com>; rel=preconnect; valid$", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, true}, |
- {"<http://whatever.com>; rel=preconnect; invalid@", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, false}, |
- {"<http://whatever.com>; rel=preconnect; invalid*", "http://whatever.com", "preconnect", CrossOriginAttributeNotSet, false}, |
+ {"<http://whatever.com>; rel=preconnect", "http://whatever.com", "preconnect", nullptr, true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin=", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin ", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin;", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin, <http://whatever2.com>; rel=preconnect", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin , <http://whatever2.com>; rel=preconnect", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin,<http://whatever2.com>; rel=preconnect", "http://whatever.com", "preconnect", "", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin=anonymous", "http://whatever.com", "preconnect", "anonymous", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin=use-credentials", "http://whatever.com", "preconnect", "use-credentials", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin=whatever", "http://whatever.com", "preconnect", "whatever", true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorig|in=whatever", "http://whatever.com", "preconnect", nullptr, true}, |
+ {"<http://whatever.com>; rel=preconnect; crossorigin|=whatever", "http://whatever.com", "preconnect", nullptr, true}, |
+ {"<http://whatever.com>; rel=preconnect; valid!", "http://whatever.com", "preconnect", nullptr, true}, |
+ {"<http://whatever.com>; rel=preconnect; valid$", "http://whatever.com", "preconnect", nullptr, true}, |
+ {"<http://whatever.com>; rel=preconnect; invalid@", "http://whatever.com", "preconnect", nullptr, true}, |
+ {"<http://whatever.com>; rel=preconnect; invalid*", "http://whatever.com", "preconnect", nullptr, true}, |
}; |
@@ -171,7 +174,10 @@ TEST(LinkHeaderTest, CrossOrigin) |
LinkHeader& header = headerSet[0]; |
ASSERT_STREQ(testCase.url, header.url().ascii().data()); |
ASSERT_STREQ(testCase.rel, header.rel().ascii().data()); |
- ASSERT_EQ(testCase.crossorigin, header.crossOrigin()); |
+ if (!testCase.crossorigin) |
+ ASSERT_TRUE(header.crossOrigin().isNull()); |
+ else |
+ ASSERT_STREQ(testCase.crossorigin, header.crossOrigin().ascii().data()); |
ASSERT_EQ(testCase.valid, header.valid()); |
} |
} |