| <!-- Based on /html/infrastructure/urls/resolving-urls/query-encoding/location.sub.html --> | |
| <!doctype html> | |
| <meta charset={{GET[encoding]}}> <!-- ends up as <meta charset> by default which is windows-1252 --> | |
| <meta name=variant content="?encoding=windows-1252"> | |
| <meta name=variant content="?encoding=x-cp1251"> | |
| <meta name=variant content="?encoding=utf8"> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <div id=log></div> | |
| <script> | |
| function expected(encoding) { | |
| return { | |
| "UTF-8": "%C3%BF", | |
| "windows-1251": "%26%23255%3B", | |
| "windows-1252": "%FF" | |
| }[encoding]; | |
| } | |
| test(() => { | |
| const request = new Request("?\u00FF"); | |
| assert_equals(request.url.split("?")[1], expected("UTF-8")); | |
| }, "Request uses the UTF-8 URL parser"); | |
| test(() => { | |
| const request = new Request("about:blank", { referrer: "?\u00FF" }); | |
| assert_equals(request.referrer.split("?")[1], expected("UTF-8")); | |
| }, "Request's referrer uses the UTF-8 URL parser"); | |
| test(() => { | |
| const response = Response.redirect("?\u00FF"); | |
| assert_equals(response.headers.get("Location").split("?")[1], expected("UTF-8")); | |
| }, "Response.redirect() uses the UTF-8 URL parser"); | |
| </script> |