File: usvstring-reflection.html

package info (click to toggle)
thunderbird 1%3A60.9.0-1~deb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,339,492 kB
  • sloc: cpp: 5,457,040; ansic: 2,360,385; python: 596,167; asm: 340,963; java: 326,296; xml: 258,830; sh: 84,445; makefile: 23,705; perl: 17,317; objc: 3,768; yacc: 1,766; ada: 1,681; lex: 1,364; pascal: 1,264; cs: 879; exp: 527; php: 436; lisp: 258; ruby: 153; awk: 152; sed: 53; csh: 27
file content (112 lines) | stat: -rw-r--r-- 4,155 bytes parent folder | download | duplicates (2)
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>