| Index: third_party/WebKit/LayoutTests/imported/wpt/html/browsers/history/the-location-interface/location-protocol-setter.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/html/browsers/history/the-location-interface/location-protocol-setter.html b/third_party/WebKit/LayoutTests/imported/wpt/html/browsers/history/the-location-interface/location-protocol-setter.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ef92f7ab0f889b88b48ea9ddba54e4fbeb254943
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/html/browsers/history/the-location-interface/location-protocol-setter.html
|
| @@ -0,0 +1,106 @@
|
| +<!doctype html>
|
| +<title>Set location.protocol to broken schemes</title>
|
| +<script src=/resources/testharness.js></script>
|
| +<script src=/resources/testharnessreport.js></script>
|
| +<div id=log></div>
|
| +<iframe src="data:text/html,<script>
|
| +onmessage = (e) => {
|
| + let results = [];
|
| + e.data.forEach((val) => {
|
| + try {
|
| + location.protocol = val;
|
| + results.push('failure')
|
| + } catch(e) {
|
| + results.push(e.name)
|
| + }
|
| + });
|
| + parent.postMessage(results, '*')
|
| +}
|
| +</script>"></iframe>
|
| +<iframe srcdoc="<script>
|
| +onmessage = (e) => {
|
| + let results = [];
|
| + e.data.forEach((val) => {
|
| + try {
|
| + location.protocol = val;
|
| + results.push('failure')
|
| + } catch(e) {
|
| + results.push(e.name)
|
| + }
|
| + });
|
| + parent.postMessage(results, '*')
|
| +}
|
| +</script>"></iframe>
|
| +<script>
|
| + let broken = [
|
| + '\x00',
|
| + '\x01',
|
| + '\x0A',
|
| + '\x20',
|
| + '\x21',
|
| + '\x7F',
|
| + '\x80',
|
| + '\xFF',
|
| + ':',
|
| + '†',
|
| + '\x00x',
|
| + '\x01x',
|
| + '\x0Ax',
|
| + '\x20x',
|
| + '\x21x',
|
| + '\x7Fx',
|
| + '\x80x',
|
| + '\xFFx',
|
| + ':x',
|
| + '†x',
|
| + '\x00X',
|
| + '\x01X',
|
| + '\x0AX',
|
| + '\x20X',
|
| + '\x21X',
|
| + '\x7FX',
|
| + '\x80X',
|
| + '\xFFX',
|
| + ':X',
|
| + '†X',
|
| + 'x\x00',
|
| + 'x\x01',
|
| + 'x\x0A',
|
| + 'x\x20',
|
| + 'x\x21',
|
| + 'x\x7F',
|
| + 'x\x80',
|
| + 'x\xFF',
|
| + 'x†',
|
| + 'X\x00',
|
| + 'X\x01',
|
| + 'X\x0A',
|
| + 'X\x20',
|
| + 'X\x21',
|
| + 'X\x7F',
|
| + 'X\x80',
|
| + 'X\xFF',
|
| + 'X†',
|
| + 'a\x0A',
|
| + 'a+-.\x0A'
|
| + ]
|
| + ;broken.forEach((val) => {
|
| + test(() => {
|
| + assert_throws("SyntaxError", () => { location.protocol = val })
|
| + }, encodeURI(val) + " (percent-encoded) is not a scheme")
|
| + })
|
| + let c = 0
|
| + async_test((t) => {
|
| + self.onload = t.step_func(() => {
|
| + self.onmessage = t.step_func((e) => {
|
| + assert_array_equals(e.data, ("SyntaxError ".repeat(49) + "SyntaxError").split(" "))
|
| + c++
|
| + if(c === 2) {
|
| + t.done()
|
| + }
|
| + })
|
| + self[0].postMessage(broken, "*")
|
| + self[1].postMessage(broken, "*")
|
| + })
|
| + }, "Equivalent tests for data URL and srcdoc <iframe>s")
|
| +</script>
|
|
|