summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/cookies/attributes/path-redirect.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/cookies/attributes/path-redirect.html')
-rw-r--r--testing/web-platform/tests/cookies/attributes/path-redirect.html128
1 files changed, 128 insertions, 0 deletions
diff --git a/testing/web-platform/tests/cookies/attributes/path-redirect.html b/testing/web-platform/tests/cookies/attributes/path-redirect.html
new file mode 100644
index 0000000000..574879971f
--- /dev/null
+++ b/testing/web-platform/tests/cookies/attributes/path-redirect.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test cookie path attribute parsing</title>
+ <meta name=help href="https://tools.ietf.org/html/rfc6265#section-5.2.4">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/testdriver.js"></script>
+ <script src="/resources/testdriver-vendor.js"></script>
+ <script src="/cookies/resources/cookie-test.js"></script>
+ </head>
+ <body>
+ <script>
+ const pathRedirectTests = [
+ {
+ cookie: "test=1; path=/cookies/attributes/resources/path.html",
+ expected: "test=1",
+ name: "Cookie sent for exact redirected path match",
+ location: "/cookies/attributes/resources/path.html",
+ },
+ {
+ cookie: "test=2; path=/cookies/attributes/resources/path/one.html",
+ expected: "test=2",
+ name: "Cookie sent for exact redirected path match, one level deeper",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ {
+ cookie: "test=3; path=/cookies/attributes/resources/path/",
+ expected: "test=3",
+ name: "Cookie sent for redirected path with trailing '/' and the redirected URL is one level deeper",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ {
+ cookie: "test=4; path=/cookies/attributes/resources/path/",
+ expected: "test=4",
+ name: "Cookie sent for redirected path with trailing '/' and a double '/' in the redirected URL",
+ location: "/cookies/attributes/resources/path//one.html",
+ },
+ {
+ cookie: "test=5; path=/cookies/attributes/resources/path/one.html;",
+ expected: "test=5",
+ name: "Cookie sent for redirected path match with a trailing ';' after an unquoted Path",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ {
+ cookie: 'test=6; path="/cookies/attributes/resources/path/one.html;"',
+ expected: "",
+ name: "No cookie sent for redirected path match with a trailing ';' inside a quoted Path",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ {
+ cookie: "test=7a; path=/cookies/attributes/resources/p%61th/three.html",
+ expected: "",
+ name: "No cookie sent for redirected path match with partially URL encoded path",
+ location: "/cookies/attributes/resources/path/three.html",
+ },
+ {
+ cookie: ["test=8a; path=/cookies/attributes/resources",
+ "test=8b; path=/cookies/attributes/resources/"],
+ expected: "test=8b; test=8a",
+ name: "Multiple cookies sent for multiple redirected path matches, sorted by length",
+ location: "/cookies/attributes/resources/path.html",
+ },
+ {
+ cookie: "test=9; path=/cookies/attributes/resources/path.html",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch where path and redirected URL begin with same string",
+ location: "/cookies/attributes/resources/pathfakeout.html",
+ },
+ {
+ cookie: "test=10; path=/cookies/attributes/resources/path/one.html",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch where final path directory component and redirected URL resource begin with same string",
+ location: "/cookies/attributes/resources/path.html",
+ },
+ {
+ cookie: "test=11; path=/cookies/attributes/resources/path/one.html",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch where final path directory component begins with same string as redirected URL final directory component",
+ location: "/cookies/attributes/resources/pathfakeout/one.html",
+ },
+ {
+ cookie: "test=12; path=/cookies/attributes/resources/path/one.html",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch for different resources inside the same final directory component",
+ location: "/cookies/attributes/resources/path/two.html",
+ },
+ {
+ cookie: "test=13; path=/cookies/attributes/resources/path/one.html/",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch where final path directory component ends in '/' and does not match redirected URL",
+ location: "/cookies/attributes/resources/path/two.html",
+ },
+ {
+ cookie: "test=14; path=/cookies/attributes/resources/path/",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch with a similar start to the redirected URL",
+ location: "/cookies/attributes/resources/pathfakeout.html",
+ },
+ {
+ cookie: "test=15; path=/cookies/attributes/resources/path/one.html?",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch with trailing '?' after unquoted Path",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ {
+ cookie: "test=16; path=/cookies/attributes/resources/path/one.html#",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch with trailing '#' after unquoted Path",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ {
+ cookie: "test=17; path=/cookies/attributes/resources/path/one.html/",
+ expected: "",
+ name: "No cookie sent for redirected path mismatch with trailing '/' after unquoted Path",
+ location: "/cookies/attributes/resources/path/one.html",
+ },
+ ];
+
+ for (const test of pathRedirectTests) {
+ httpRedirectCookieTest(test.cookie, test.expected, test.name,
+ test.location);
+ }
+ </script>
+ </body>
+</html>