| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
| 2 // for details. All rights reserved. Use of this source code is governed by a | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 #library('NodeTest'); | |
| 6 #import('../../../../lib/unittest/unittest.dart'); | |
| 7 #import('../../../../lib/unittest/html_config.dart'); | |
| 8 #import('dart:html'); | |
| 9 | |
| 10 Node makeNode() => new Element.tag('div'); | |
| 11 Node makeNodeWithChildren() => | |
| 12 new Element.html("<div>Foo<br/><!--baz--></div>"); | |
| 13 | |
| 14 main() { | |
| 15 useHtmlConfiguration(); | |
| 16 | |
| 17 test('replaceWith', () { | |
| 18 final node = makeNodeWithChildren(); | |
| 19 final subnode = node.nodes[1]; | |
| 20 final out = subnode.replaceWith(new Text('Bar')); | |
| 21 Expect.equals(subnode, out, '#replaceWith should be chainable'); | |
| 22 Expect.equals(3, node.nodes.length); | |
| 23 Expect.isTrue(node.nodes[0] is Text); | |
| 24 Expect.equals('Foo', node.nodes[0].text); | |
| 25 Expect.isTrue(node.nodes[1] is Text); | |
| 26 Expect.equals('Bar', node.nodes[1].text); | |
| 27 Expect.isTrue(node.nodes[2] is Comment); | |
| 28 }); | |
| 29 | |
| 30 test('remove', () { | |
| 31 final node = makeNodeWithChildren(); | |
| 32 final subnode = node.nodes[1]; | |
| 33 final out = subnode.remove(); | |
| 34 Expect.equals(subnode, out, '#remove should be chainable'); | |
| 35 Expect.equals(2, node.nodes.length); | |
| 36 Expect.isTrue(node.nodes[0] is Text); | |
| 37 Expect.isTrue(node.nodes[1] is Comment); | |
| 38 }); | |
| 39 | |
| 40 test('contains', () { | |
| 41 final Node node = new Element.html("<div>Foo<span>Bar</span></div>"); | |
| 42 Expect.isTrue(node.contains(node.nodes.first)); | |
| 43 Expect.isTrue(node.contains(node.nodes[1].nodes.first)); | |
| 44 Expect.isFalse(node.contains(new Text('Foo'))); | |
| 45 }); | |
| 46 | |
| 47 group('nodes', () { | |
| 48 test('is a NodeList', () { | |
| 49 Expect.isTrue(makeNodeWithChildren().nodes is NodeList); | |
| 50 }); | |
| 51 | |
| 52 test('first', () { | |
| 53 var node = makeNodeWithChildren(); | |
| 54 Expect.isTrue(node.nodes.first is Text); | |
| 55 }); | |
| 56 | |
| 57 test('last', () { | |
| 58 var node = makeNodeWithChildren(); | |
| 59 Expect.isTrue(node.nodes.last() is Comment); | |
| 60 }); | |
| 61 | |
| 62 test('forEach', () { | |
| 63 var nodes = []; | |
| 64 var node = makeNodeWithChildren(); | |
| 65 node.nodes.forEach((n) => nodes.add(n)); | |
| 66 Expect.isTrue(nodes[0] is Text); | |
| 67 Expect.isTrue(nodes[1] is BRElement); | |
| 68 Expect.isTrue(nodes[2] is Comment); | |
| 69 }); | |
| 70 | |
| 71 test('filter', () { | |
| 72 var filtered = makeNodeWithChildren().nodes.filter((n) => n is BRElement); | |
| 73 Expect.equals(1, filtered.length); | |
| 74 Expect.isTrue(filtered[0] is BRElement); | |
| 75 Expect.isTrue(filtered is NodeList); | |
| 76 }); | |
| 77 | |
| 78 test('every', () { | |
| 79 var node = makeNodeWithChildren(); | |
| 80 Expect.isTrue(node.nodes.every((n) => n is Node)); | |
| 81 Expect.isFalse(node.nodes.every((n) => n is Comment)); | |
| 82 }); | |
| 83 | |
| 84 test('some', () { | |
| 85 var node = makeNodeWithChildren(); | |
| 86 Expect.isTrue(node.nodes.some((n) => n is Comment)); | |
| 87 Expect.isFalse(node.nodes.some((n) => n is SVGElement)); | |
| 88 }); | |
| 89 | |
| 90 test('isEmpty', () { | |
| 91 Expect.isTrue(makeNode().nodes.isEmpty()); | |
| 92 Expect.isFalse(makeNodeWithChildren().nodes.isEmpty()); | |
| 93 }); | |
| 94 | |
| 95 test('length', () { | |
| 96 Expect.equals(0, makeNode().nodes.length); | |
| 97 Expect.equals(3, makeNodeWithChildren().nodes.length); | |
| 98 }); | |
| 99 | |
| 100 test('[]', () { | |
| 101 var node = makeNodeWithChildren(); | |
| 102 Expect.isTrue(node.nodes[0] is Text); | |
| 103 Expect.isTrue(node.nodes[1] is BRElement); | |
| 104 Expect.isTrue(node.nodes[2] is Comment); | |
| 105 }); | |
| 106 | |
| 107 test('[]=', () { | |
| 108 var node = makeNodeWithChildren(); | |
| 109 node.nodes[1] = new Element.tag('hr'); | |
| 110 Expect.isTrue(node.nodes[0] is Text); | |
| 111 Expect.isTrue(node.nodes[1] is HRElement); | |
| 112 Expect.isTrue(node.nodes[2] is Comment); | |
| 113 }); | |
| 114 | |
| 115 test('add', () { | |
| 116 var node = makeNode(); | |
| 117 node.nodes.add(new Element.tag('hr')); | |
| 118 Expect.isTrue(node.nodes.last() is HRElement); | |
| 119 }); | |
| 120 | |
| 121 test('addLast', () { | |
| 122 var node = makeNode(); | |
| 123 node.nodes.addLast(new Element.tag('hr')); | |
| 124 Expect.isTrue(node.nodes.last() is HRElement); | |
| 125 }); | |
| 126 | |
| 127 test('iterator', () { | |
| 128 var nodes = []; | |
| 129 var node = makeNodeWithChildren(); | |
| 130 for (var subnode in node.nodes) { | |
| 131 nodes.add(subnode); | |
| 132 } | |
| 133 Expect.isTrue(nodes[0] is Text); | |
| 134 Expect.isTrue(nodes[1] is BRElement); | |
| 135 Expect.isTrue(nodes[2] is Comment); | |
| 136 }); | |
| 137 | |
| 138 test('addAll', () { | |
| 139 var node = makeNodeWithChildren(); | |
| 140 node.nodes.addAll([ | |
| 141 new Element.tag('hr'), | |
| 142 new Element.tag('img'), | |
| 143 new Element.tag('input') | |
| 144 ]); | |
| 145 Expect.isTrue(node.nodes[0] is Text); | |
| 146 Expect.isTrue(node.nodes[1] is BRElement); | |
| 147 Expect.isTrue(node.nodes[2] is Comment); | |
| 148 Expect.isTrue(node.nodes[3] is HRElement); | |
| 149 Expect.isTrue(node.nodes[4] is ImageElement); | |
| 150 Expect.isTrue(node.nodes[5] is InputElement); | |
| 151 }); | |
| 152 | |
| 153 test('clear', () { | |
| 154 var node = makeNodeWithChildren(); | |
| 155 node.nodes.clear(); | |
| 156 Expect.listEquals([], node.nodes); | |
| 157 }); | |
| 158 | |
| 159 test('removeLast', () { | |
| 160 var node = makeNodeWithChildren(); | |
| 161 Expect.isTrue(node.nodes.removeLast() is Comment); | |
| 162 Expect.equals(2, node.nodes.length); | |
| 163 Expect.isTrue(node.nodes.removeLast() is BRElement); | |
| 164 Expect.equals(1, node.nodes.length); | |
| 165 }); | |
| 166 | |
| 167 test('getRange', () { | |
| 168 var node = makeNodeWithChildren(); | |
| 169 Expect.isTrue(node.nodes.getRange(1, 2) is NodeList); | |
| 170 }); | |
| 171 }); | |
| 172 | |
| 173 group('_NodeList', () { | |
| 174 NodeList makeNodeList() => | |
| 175 makeNodeWithChildren().nodes.filter((_) => true); | |
| 176 | |
| 177 test('first', () { | |
| 178 var nodes = makeNodeList(); | |
| 179 Expect.isTrue(nodes.first is Text); | |
| 180 }); | |
| 181 | |
| 182 test('filter', () { | |
| 183 var filtered = makeNodeList().filter((n) => n is BRElement); | |
| 184 Expect.equals(1, filtered.length); | |
| 185 Expect.isTrue(filtered[0] is BRElement); | |
| 186 Expect.isTrue(filtered is NodeList); | |
| 187 }); | |
| 188 | |
| 189 test('getRange', () { | |
| 190 var range = makeNodeList().getRange(1, 2); | |
| 191 Expect.isTrue(range is NodeList); | |
| 192 Expect.isTrue(range[0] is BRElement); | |
| 193 Expect.isTrue(range[1] is Comment); | |
| 194 }); | |
| 195 }); | |
| 196 } | |
| OLD | NEW |