1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
<!doctype html>
<title>USVString test relate to url</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
// Unpaired surrogate codepoints present in USVString are replaced
// with U+FFFD. %EF%BF%BD is UTF-8 encoding of U+FFFD.
'use strict';
test(() => {
location.hash = '\uD999';
assert_equals(location.hash, '#%EF%BF%BD');
}, "location.hash : unpaired surrogate codepoint should be replaced with U+FFFD");
test(() => {
var w = window.open("about:blank#\uD800");
assert_equals(w.location.href, 'about:blank#%EF%BF%BD');
w.location.href = 'about:blank#\uD999';
assert_equals(w.location.href, 'about:blank#%EF%BF%BD');
}, "location.href : unpaired surrogate codepoint should be replaced with U+FFFD");
test(() => {
var w = window.open("about:blank#\uD800");
assert_equals(w.location.hash, '#%EF%BF%BD');
}, "window.open : unpaired surrogate codepoint should be replaced with U+FFFD");
test(() => {
var w = document.open("about:blank#\uD800", "", "");
assert_equals(w.location.hash, '#%EF%BF%BD');
}, "document.open : unpaired surrogate codepoint should be replaced with U+FFFD");
test(() => {
var element = document.createElement("a");
element.ping = '\uD989';
assert_equals(element.ping, '\uFFFD');
}, "anchor : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var element = document.createElement("area");
element.ping = '\uDA99';
assert_equals(element.ping, '\uFFFD');
}, "area : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var element = document.createElement("base");
element.href = '\uD989';
assert_equals(element.href.endsWith('%EF%BF%BD'), true);
}, "base : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var src = new EventSource('\uD899');
assert_equals(src.url.endsWith('%EF%BF%BD'), true);
}, "EventSource : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var element = document.createElement("frame");
element.src = '\uDCA9';
element.longDesc = '\uDCA8';
assert_equals(element.src.endsWith('%EF%BF%BD'), true);
assert_equals(element.longDesc.endsWith('%EF%BF%BD'), true);
}, "frame : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var element = document.createElement("iframe");
element.src = '\uDC89';
element.longDesc = '\uDC88';
assert_equals(element.src.endsWith('%EF%BF%BD'), true);
assert_equals(element.longDesc.endsWith('%EF%BF%BD'), true);
}, "iframe : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var element = document.createElement("link");
element.href = '\uDB89';
assert_equals(element.href.endsWith('%EF%BF%BD'), true);
}, "link : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var element = document.createElement("source");
element.src = '\uDDDD';
element.srcset = '\uD800';
assert_equals(element.src.endsWith('%EF%BF%BD'), true);
assert_equals(element.srcset, '\uFFFD');
}, "source : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
const event = new StorageEvent('storage', {
url: window.location.href + '\uD999',
});
assert_equals(event.url, window.location.href + "\uFFFD");
}, "storage event : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
var wsocket = new EventSource('ws://www.example.com/socketserve\uD899/');
assert_true(wsocket.url.endsWith('ws://www.example.com/socketserve%EF%BF%BD/'));
}, "websocket url : unpaired surrogate codepoint should be replaced with U+FFFD")
test(() => {
try {
navigator.sendBeacon("resources/\uD800blank.txt");
assert_true(true);
} catch (e) {
assert_true(false);
}
}, "sendBeacon URL: unpaired surrogate codepoint should not make any exceptions.")
test(() => {
var w = window.open("about:blank#\uD800");
assert_equals(w.document.URL, 'about:blank#%EF%BF%BD');
assert_equals(w.document.documentURI, 'about:blank#%EF%BF%BD');
}, "Document URLs: unpaired surrogate codepoint should be replaced with U+FFFD")
</script>
|