Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/nodes/CharacterData-substringData.html

Issue 1529523002: Import dom/ from web-platform-tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tweak W3CImportExpectations Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <meta charset=utf-8>
3 <title>CharacterData.substringData</title>
4 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-substringdat a">
5 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-data">
6 <script src="../../../../resources/testharness.js"></script>
7 <script src="../../../../resources/testharnessreport.js"></script>
8 <div id="log"></div>
9 <script>
10 function testNode(create, type) {
11 test(function() {
12 var node = create()
13 assert_equals(node.data, "test")
14
15 assert_throws(new TypeError(), function() { node.substringData() })
16 assert_throws(new TypeError(), function() { node.substringData(0) })
17 }, type + ".substringData() with too few arguments")
18
19 test(function() {
20 var node = create()
21 assert_equals(node.data, "test")
22
23 assert_equals(node.substringData(0, 1, "test"), "t")
24 }, type + ".substringData() with too many arguments")
25
26 test(function() {
27 var node = create()
28 assert_equals(node.data, "test")
29
30 assert_throws("IndexSizeError", function() { node.substringData(5, 0) })
31 assert_throws("IndexSizeError", function() { node.substringData(6, 0) })
32 assert_throws("IndexSizeError", function() { node.substringData(-1, 0) })
33 }, type + ".substringData() with invalid offset")
34
35 test(function() {
36 var node = create()
37 assert_equals(node.data, "test")
38
39 assert_equals(node.substringData(0, 1), "t")
40 assert_equals(node.substringData(1, 1), "e")
41 assert_equals(node.substringData(2, 1), "s")
42 assert_equals(node.substringData(3, 1), "t")
43 assert_equals(node.substringData(4, 1), "")
44 }, type + ".substringData() with in-bounds offset")
45
46 test(function() {
47 var node = create()
48 assert_equals(node.data, "test")
49
50 assert_equals(node.substringData(0, 0), "")
51 assert_equals(node.substringData(1, 0), "")
52 assert_equals(node.substringData(2, 0), "")
53 assert_equals(node.substringData(3, 0), "")
54 assert_equals(node.substringData(4, 0), "")
55 }, type + ".substringData() with zero count")
56
57 test(function() {
58 var node = create()
59 assert_equals(node.data, "test")
60
61 assert_equals(node.substringData(0x100000000 + 0, 1), "t")
62 assert_equals(node.substringData(0x100000000 + 1, 1), "e")
63 assert_equals(node.substringData(0x100000000 + 2, 1), "s")
64 assert_equals(node.substringData(0x100000000 + 3, 1), "t")
65 assert_equals(node.substringData(0x100000000 + 4, 1), "")
66 }, type + ".substringData() with very large offset")
67
68 test(function() {
69 var node = create()
70 assert_equals(node.data, "test")
71
72 assert_equals(node.substringData(-0x100000000 + 2, 1), "s")
73 }, type + ".substringData() with negative offset")
74
75 test(function() {
76 var node = create()
77 assert_equals(node.data, "test")
78
79 assert_equals(node.substringData("test", 3), "tes")
80 }, type + ".substringData() with string offset")
81
82 test(function() {
83 var node = create()
84 assert_equals(node.data, "test")
85
86 assert_equals(node.substringData(0, 1), "t")
87 assert_equals(node.substringData(0, 2), "te")
88 assert_equals(node.substringData(0, 3), "tes")
89 assert_equals(node.substringData(0, 4), "test")
90 }, type + ".substringData() with in-bounds count")
91
92 test(function() {
93 var node = create()
94 assert_equals(node.data, "test")
95
96 assert_equals(node.substringData(0, 5), "test")
97 assert_equals(node.substringData(2, 20), "st")
98 }, type + ".substringData() with large count")
99
100 test(function() {
101 var node = create()
102 assert_equals(node.data, "test")
103
104 assert_equals(node.substringData(2, 0x100000000 + 1), "s")
105 }, type + ".substringData() with very large count")
106
107 test(function() {
108 var node = create()
109 assert_equals(node.data, "test")
110
111 assert_equals(node.substringData(0, -1), "test")
112 assert_equals(node.substringData(0, -0x100000000 + 2), "te")
113 }, type + ".substringData() with negative count")
114
115 test(function() {
116 var node = create()
117 assert_equals(node.data, "test")
118
119 node.data = "This is the character data test, other 資料,更多文字"
120
121 assert_equals(node.substringData(12, 4), "char")
122 assert_equals(node.substringData(39, 2), "資料")
123 }, type + ".substringData() with non-ASCII data")
124
125 test(function() {
126 var node = create()
127 assert_equals(node.data, "test")
128
129 node.data = "🌠 test 🌠 TEST"
130
131 assert_equals(node.substringData(5, 8), "st 🌠 TE") // Counting UTF-16 code units
132 }, type + ".substringData() with non-BMP data")
133 }
134
135 testNode(function() { return document.createTextNode("test") }, "Text")
136 testNode(function() { return document.createComment("test") }, "Comment")
137 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698