OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <meta charset=utf-8> | 2 <script src="../../../resources/testharness.js"></script> |
3 <title>ParentNode.prepend</title> | 3 <script src="../../../resources/testharnessreport.js"></script> |
4 <link rel=help href="https://dom.spec.whatwg.org/#dom-parentnode-prepend"> | |
5 <script src="../../../../resources/testharness.js"></script> | |
6 <script src="../../../../resources/testharnessreport.js"></script> | |
7 <script> | 4 <script> |
8 | 5 |
| 6 test(function () { |
| 7 var node = document.createElement('div'); |
| 8 assert_true('prepend' in node); |
| 9 var prepend = 'mine'; |
| 10 var getAttribute = 'mine'; |
| 11 with (node) { |
| 12 assert_true(prepend === 'mine'); |
| 13 assert_false(getAttribute === 'mine'); |
| 14 } |
| 15 assert_true('Symbol' in window); |
| 16 var unscopables = Object.getPrototypeOf(node)[Symbol.unscopables]; |
| 17 assert_true(unscopables.prepend); |
| 18 }, 'ChildNode.prepend() unscopeable'); |
| 19 |
9 function test_prepend(node, nodeName) { | 20 function test_prepend(node, nodeName) { |
10 | 21 |
11 test(function() { | 22 test(function() { |
12 var parent = node.cloneNode(); | 23 var parent = node.cloneNode(); |
13 parent.prepend(); | 24 parent.prepend(); |
14 assert_array_equals(parent.childNodes, []); | 25 assert_array_equals(parent.childNodes, []); |
15 }, nodeName + '.prepend() without any argument, on a parent having no child.
'); | 26 }, nodeName + '.prepend() without any argument, on a parent having no child.
'); |
16 | 27 |
17 test(function() { | 28 test(function() { |
18 var parent = node.cloneNode(); | 29 var parent = node.cloneNode(); |
19 parent.prepend(null); | 30 parent.prepend(null); |
20 assert_equals(parent.childNodes[0].textContent, 'null'); | 31 assert_equals(parent.childNodes[0].textContent, 'null'); |
21 }, nodeName + '.prepend() with null as an argument, on a parent having no ch
ild.'); | 32 }, nodeName + '.prepend() with null as an argument, on a parent having no ch
ild.'); |
22 | 33 |
23 test(function() { | 34 test(function() { |
24 var parent = node.cloneNode(); | 35 » var parent = node.cloneNode(); |
25 parent.prepend(undefined); | 36 » parent.prepend(undefined); |
26 assert_equals(parent.childNodes[0].textContent, 'undefined'); | 37 » assert_equals(parent.childNodes[0].textContent, 'undefined'); |
27 }, nodeName + '.prepend() with undefined as an argument, on a parent having
no child.'); | 38 }, nodeName + '.prepend() with undefined as an argument, on a parent having
no child.'); |
28 | 39 |
29 test(function() { | 40 test(function() { |
30 var parent = node.cloneNode(); | 41 var parent = node.cloneNode(); |
31 parent.prepend('text'); | 42 parent.prepend('text'); |
32 assert_equals(parent.childNodes[0].textContent, 'text'); | 43 assert_equals(parent.childNodes[0].textContent, 'text'); |
33 }, nodeName + '.prepend() with only text as an argument, on a parent having
no child.'); | 44 }, nodeName + '.prepend() with only text as an argument, on a parent having
no child.'); |
34 | 45 |
35 test(function() { | 46 test(function() { |
36 var parent = node.cloneNode(); | 47 var parent = node.cloneNode(); |
37 var x = document.createElement('x'); | 48 var x = document.createElement('x'); |
38 parent.prepend(x); | 49 parent.prepend(x); |
39 assert_array_equals(parent.childNodes, [x]); | 50 assert_array_equals(parent.childNodes, [x]); |
40 }, nodeName + '.prepend() with only one element as an argument, on a parent
having no child.'); | 51 }, nodeName + '.prepend() with only one element as an argument, on a parent
having no child.'); |
41 | 52 |
42 test(function() { | 53 test(function() { |
43 var parent = node.cloneNode(); | 54 var parent = node.cloneNode(); |
44 var child = document.createElement('test'); | 55 var child = document.createElement('test'); |
45 parent.appendChild(child); | 56 parent.appendChild(child); |
46 parent.prepend(null); | 57 parent.prepend(null); |
47 assert_equals(parent.childNodes[0].textContent, 'null'); | 58 assert_equals(parent.childNodes[0].textContent, 'null'); |
48 assert_equals(parent.childNodes[1], child); | 59 assert_equals(parent.childNodes[1], child); |
49 }, nodeName + '.prepend() with null as an argument, on a parent having a chi
ld.'); | 60 }, nodeName + '.prepend() with null as an argument, on a parent having a chi
ld.'); |
50 | 61 |
51 test(function() { | 62 test(function() { |
52 var parent = node.cloneNode(); | 63 var parent = node.cloneNode(); |
53 var x = document.createElement('x'); | 64 var x = document.createElement('x'); |
54 var child = document.createElement('test'); | 65 var child = document.createElement('test'); |
| 66 parent.appendChild(x); |
| 67 parent.appendChild(child); |
| 68 parent.prepend(child, x); |
| 69 assert_array_equals(parent.childNodes, [child, x]); |
| 70 }, nodeName + '.prepend() with all children as arguments, on a parent having
two children.'); |
| 71 |
| 72 test(function() { |
| 73 var parent = node.cloneNode(); |
| 74 var x = document.createElement('x'); |
| 75 var child = document.createElement('test'); |
55 parent.appendChild(child); | 76 parent.appendChild(child); |
56 parent.prepend(x, 'text'); | 77 parent.prepend(x, 'text'); |
57 assert_equals(parent.childNodes[0], x); | 78 assert_equals(parent.childNodes[0], x); |
58 assert_equals(parent.childNodes[1].textContent, 'text'); | 79 assert_equals(parent.childNodes[1].textContent, 'text'); |
59 assert_equals(parent.childNodes[2], child); | 80 assert_equals(parent.childNodes[2], child); |
60 }, nodeName + '.prepend() with one element and text as argument, on a parent
having a child.'); | 81 }, nodeName + '.prepend() with one element and text as argument, on a parent
having a child.'); |
61 } | 82 } |
62 | 83 |
63 test_prepend(document.createElement('div'), 'Element'); | 84 test_prepend(document.createElement('div'), 'Element'); |
64 test_prepend(document.createDocumentFragment(), 'DocumentFrgment'); | 85 test_prepend(document.createDocumentFragment(), 'DocumentFrgment'); |
65 </script> | 86 </script> |
66 </html> | 87 </html> |
OLD | NEW |