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

Side by Side Diff: packages/html/test/dom_test.dart

Issue 2990843002: Removed fixed dependencies (Closed)
Patch Set: Created 3 years, 4 months 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
« no previous file with comments | « packages/html/pubspec.yaml ('k') | packages/html/test/parser_feature_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /// Additional feature tests that aren't based on test data. 1 /// Additional feature tests that aren't based on test data.
2 library dom_test; 2 library dom_test;
3 3
4 import 'package:unittest/unittest.dart'; 4 import 'package:unittest/unittest.dart';
5 import 'package:html/dom.dart'; 5 import 'package:html/dom.dart';
6 import 'package:html/parser.dart'; 6 import 'package:html/parser.dart';
7 7
8 main() { 8 main() {
9 group('Element', () { 9 group('Element', () {
10 test('classes', () { 10 test('classes', () {
11 final barBaz = new Element.html('<div class=" bar baz"></div>'); 11 final barBaz = new Element.html('<div class=" bar baz"></div>');
12 final quxBaz = new Element.html('<div class="qux baz "></div>'); 12 final quxBaz = new Element.html('<div class="qux baz "></div>');
13 expect(barBaz.className, ' bar baz'); 13 expect(barBaz.className, ' bar baz');
14 expect(quxBaz.className, 'qux baz '); 14 expect(quxBaz.className, 'qux baz ');
15 expect(barBaz.classes, ['bar', 'baz']); 15 expect(barBaz.classes, ['bar', 'baz']);
16 expect(quxBaz.classes, ['qux', 'baz']); 16 expect(quxBaz.classes, ['qux', 'baz']);
17 }); 17 });
18 }); 18 });
19 19
20 group('Document', () { 20 group('Document', () {
21 final doc = parse('<div id=foo>' 21 final doc = parse('<div id=foo>'
22 '<div class=" bar baz"></div>' 22 '<div class=" bar baz"></div>'
23 '<div class="qux baz "></div>' 23 '<div class="qux baz "></div>'
24 '<div id=Foo>'); 24 '<div id=Foo>');
25 25
26 test('getElementById', () { 26 test('getElementById', () {
27 var foo = doc.body.nodes[0]; 27 var foo = doc.body.nodes[0];
28 var Foo = foo.nodes[2]; 28 var Foo = foo.nodes[2];
29 expect(foo.id, 'foo'); 29 expect((foo as Element).id, 'foo');
30 expect(Foo.id, 'Foo'); 30 expect((Foo as Element).id, 'Foo');
31 expect(doc.getElementById('foo'), foo); 31 expect(doc.getElementById('foo'), foo);
32 expect(doc.getElementById('Foo'), Foo); 32 expect(doc.getElementById('Foo'), Foo);
33 }); 33 });
34 34
35 test('getElementsByClassName', () { 35 test('getElementsByClassName', () {
36 var foo = doc.body.nodes[0]; 36 var foo = doc.body.nodes[0];
37 var barBaz = foo.nodes[0]; 37 var barBaz = foo.nodes[0];
38 var quxBaz = foo.nodes[1]; 38 var quxBaz = foo.nodes[1];
39 expect(barBaz.className, ' bar baz'); 39 expect((barBaz as Element).className, ' bar baz');
40 expect(quxBaz.className, 'qux baz '); 40 expect((quxBaz as Element).className, 'qux baz ');
41 expect(doc.getElementsByClassName('baz'), [barBaz, quxBaz]); 41 expect(doc.getElementsByClassName('baz'), [barBaz, quxBaz]);
42 expect(doc.getElementsByClassName('bar '), [barBaz]); 42 expect(doc.getElementsByClassName('bar '), [barBaz]);
43 expect(doc.getElementsByClassName(' qux'), [quxBaz]); 43 expect(doc.getElementsByClassName(' qux'), [quxBaz]);
44 expect(doc.getElementsByClassName(' baz qux'), [quxBaz]); 44 expect(doc.getElementsByClassName(' baz qux'), [quxBaz]);
45 }); 45 });
46 46
47 test('getElementsByTagName', () { 47 test('getElementsByTagName', () {
48 var foo = doc.body.nodes[0]; 48 var foo = doc.body.nodes[0];
49 var barBaz = foo.nodes[0]; 49 var barBaz = foo.nodes[0];
50 var quxBaz = foo.nodes[1]; 50 var quxBaz = foo.nodes[1];
51 var Foo = foo.nodes[2]; 51 var Foo = foo.nodes[2];
52 expect(doc.getElementsByTagName('div'), [foo, barBaz, quxBaz, Foo]); 52 expect(doc.getElementsByTagName('div'), [foo, barBaz, quxBaz, Foo]);
53 }); 53 });
54 }); 54 });
55 55
56 group('fragments are flattened', () { 56 group('fragments are flattened', () {
57 test('add', () { 57 test('add', () {
58 var doc = parse('<body>'); 58 var doc = parse('<body>');
59 doc.body.nodes.add(parseFragment('<x-foo>')); 59 doc.body.nodes.add(parseFragment('<x-foo>'));
60 expect(doc.body.nodes[0].localName, 'x-foo'); 60 expect((doc.body.nodes[0] as Element).localName, 'x-foo');
61 doc.body.nodes.add(parseFragment('<x-bar>')); 61 doc.body.nodes.add(parseFragment('<x-bar>'));
62 expect(doc.body.nodes[1].localName, 'x-bar'); 62 expect((doc.body.nodes[1] as Element).localName, 'x-bar');
63 }); 63 });
64 64
65 test('addLast', () { 65 test('addLast', () {
66 var doc = parse('<body>'); 66 var doc = parse('<body>');
67 doc.body.nodes.addLast(parseFragment('<x-foo>')); 67 doc.body.nodes.addLast(parseFragment('<x-foo>'));
68 expect(doc.body.nodes[0].localName, 'x-foo'); 68 expect((doc.body.nodes[0] as Element).localName, 'x-foo');
69 doc.body.nodes.addLast(parseFragment('<x-bar>')); 69 doc.body.nodes.addLast(parseFragment('<x-bar>'));
70 expect(doc.body.nodes[1].localName, 'x-bar'); 70 expect((doc.body.nodes[1] as Element).localName, 'x-bar');
71 }); 71 });
72 72
73 test('addAll', () { 73 test('addAll', () {
74 var doc = parse('<body><x-a></x-a>'); 74 var doc = parse('<body><x-a></x-a>');
75 doc.body.nodes.addAll([parseFragment('<x-b></x-b><x-c></x-c>')]); 75 doc.body.nodes.addAll([parseFragment('<x-b></x-b><x-c></x-c>')]);
76 expect(doc.body.nodes[0].localName, 'x-a'); 76 expect((doc.body.nodes[0] as Element).localName, 'x-a');
77 expect(doc.body.nodes[1].localName, 'x-b'); 77 expect((doc.body.nodes[1] as Element).localName, 'x-b');
78 expect(doc.body.nodes[2].localName, 'x-c'); 78 expect((doc.body.nodes[2] as Element).localName, 'x-c');
79 }); 79 });
80 80
81 test('insert', () { 81 test('insert', () {
82 var doc = parse('<body><x-a></x-a>'); 82 var doc = parse('<body><x-a></x-a>');
83 doc.body.nodes.insert(0, parseFragment('<x-b></x-b><x-c></x-c>')); 83 doc.body.nodes.insert(0, parseFragment('<x-b></x-b><x-c></x-c>'));
84 expect(doc.body.nodes[0].localName, 'x-b'); 84 expect((doc.body.nodes[0] as Element).localName, 'x-b');
85 expect(doc.body.nodes[1].localName, 'x-c'); 85 expect((doc.body.nodes[1] as Element).localName, 'x-c');
86 expect(doc.body.nodes[2].localName, 'x-a'); 86 expect((doc.body.nodes[2] as Element).localName, 'x-a');
87 87
88 doc = parse('<body><x-a></x-a>'); 88 doc = parse('<body><x-a></x-a>');
89 doc.body.nodes.insert(1, parseFragment('<x-b></x-b><x-c></x-c>')); 89 doc.body.nodes.insert(1, parseFragment('<x-b></x-b><x-c></x-c>'));
90 expect(doc.body.nodes[0].localName, 'x-a'); 90 expect((doc.body.nodes[0] as Element).localName, 'x-a');
91 expect(doc.body.nodes[1].localName, 'x-b'); 91 expect((doc.body.nodes[1] as Element).localName, 'x-b');
92 expect(doc.body.nodes[2].localName, 'x-c'); 92 expect((doc.body.nodes[2] as Element).localName, 'x-c');
93 93
94 doc = parse('<body><x-a></x-a>'); 94 doc = parse('<body><x-a></x-a>');
95 doc.body.nodes.insert(0, parseFragment('<x-b></x-b>')); 95 doc.body.nodes.insert(0, parseFragment('<x-b></x-b>'));
96 doc.body.nodes.insert(1, parseFragment('<x-c></x-c>')); 96 doc.body.nodes.insert(1, parseFragment('<x-c></x-c>'));
97 expect(doc.body.nodes[0].localName, 'x-b'); 97 expect((doc.body.nodes[0] as Element).localName, 'x-b');
98 expect(doc.body.nodes[1].localName, 'x-c'); 98 expect((doc.body.nodes[1] as Element).localName, 'x-c');
99 expect(doc.body.nodes[2].localName, 'x-a'); 99 expect((doc.body.nodes[2] as Element).localName, 'x-a');
100 }); 100 });
101 101
102 test('insertAll', () { 102 test('insertAll', () {
103 var doc = parse('<body><x-a></x-a>'); 103 var doc = parse('<body><x-a></x-a>');
104 doc.body.nodes.insertAll(0, [parseFragment('<x-b></x-b><x-c></x-c>')]); 104 doc.body.nodes.insertAll(0, [parseFragment('<x-b></x-b><x-c></x-c>')]);
105 expect(doc.body.nodes[0].localName, 'x-b'); 105 expect((doc.body.nodes[0] as Element).localName, 'x-b');
106 expect(doc.body.nodes[1].localName, 'x-c'); 106 expect((doc.body.nodes[1] as Element).localName, 'x-c');
107 expect(doc.body.nodes[2].localName, 'x-a'); 107 expect((doc.body.nodes[2] as Element).localName, 'x-a');
108 expect(doc.body.nodes.length, 3); 108 expect(doc.body.nodes.length, 3);
109 109
110 doc = parse('<body><x-a></x-a>'); 110 doc = parse('<body><x-a></x-a>');
111 doc.body.nodes.insertAll(1, [parseFragment('<x-b></x-b><x-c></x-c>')]); 111 doc.body.nodes.insertAll(1, [parseFragment('<x-b></x-b><x-c></x-c>')]);
112 expect(doc.body.nodes[0].localName, 'x-a'); 112 expect((doc.body.nodes[0] as Element).localName, 'x-a');
113 expect(doc.body.nodes[1].localName, 'x-b'); 113 expect((doc.body.nodes[1] as Element).localName, 'x-b');
114 expect(doc.body.nodes[2].localName, 'x-c'); 114 expect((doc.body.nodes[2] as Element).localName, 'x-c');
115 115
116 doc = parse('<body><x-a></x-a>'); 116 doc = parse('<body><x-a></x-a>');
117 doc.body.nodes.insertAll(0, [parseFragment('<x-b></x-b>')]); 117 doc.body.nodes.insertAll(0, [parseFragment('<x-b></x-b>')]);
118 doc.body.nodes.insertAll(1, [parseFragment('<x-c></x-c>')]); 118 doc.body.nodes.insertAll(1, [parseFragment('<x-c></x-c>')]);
119 expect(doc.body.nodes[0].localName, 'x-b'); 119 expect((doc.body.nodes[0] as Element).localName, 'x-b');
120 expect(doc.body.nodes[1].localName, 'x-c'); 120 expect((doc.body.nodes[1] as Element).localName, 'x-c');
121 expect(doc.body.nodes[2].localName, 'x-a'); 121 expect((doc.body.nodes[2] as Element).localName, 'x-a');
122 }); 122 });
123 123
124 test('operator []=', () { 124 test('operator []=', () {
125 var doc = parse('<body><x-a></x-a>'); 125 var doc = parse('<body><x-a></x-a>');
126 doc.body.nodes[0] = parseFragment('<x-b></x-b><x-c></x-c>'); 126 doc.body.nodes[0] = parseFragment('<x-b></x-b><x-c></x-c>');
127 expect(doc.body.nodes[0].localName, 'x-b'); 127 expect((doc.body.nodes[0] as Element).localName, 'x-b');
128 expect(doc.body.nodes[1].localName, 'x-c'); 128 expect((doc.body.nodes[1] as Element).localName, 'x-c');
129 expect(doc.body.nodes.length, 2); 129 expect(doc.body.nodes.length, 2);
130 130
131 doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>'); 131 doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>');
132 doc.body.nodes[1] = parseFragment('<y-b></y-b><y-c></y-c>'); 132 doc.body.nodes[1] = parseFragment('<y-b></y-b><y-c></y-c>');
133 expect(doc.body.nodes[0].localName, 'x-a'); 133 expect((doc.body.nodes[0] as Element).localName, 'x-a');
134 expect(doc.body.nodes[1].localName, 'y-b'); 134 expect((doc.body.nodes[1] as Element).localName, 'y-b');
135 expect(doc.body.nodes[2].localName, 'y-c'); 135 expect((doc.body.nodes[2] as Element).localName, 'y-c');
136 expect(doc.body.nodes[3].localName, 'x-c'); 136 expect((doc.body.nodes[3] as Element).localName, 'x-c');
137 expect(doc.body.nodes.length, 4); 137 expect(doc.body.nodes.length, 4);
138 }); 138 });
139 139
140 test('setRange', () { 140 test('setRange', () {
141 var fragment = parseFragment('<y-b></y-b><y-c></y-c>'); 141 var fragment = parseFragment('<y-b></y-b><y-c></y-c>');
142 var doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>'); 142 var doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>');
143 doc.body.nodes.setRange(1, 2, fragment.nodes, 0); 143 doc.body.nodes.setRange(1, 2, fragment.nodes, 0);
144 expect(doc.body.nodes[0].localName, 'x-a'); 144 expect((doc.body.nodes[0] as Element).localName, 'x-a');
145 expect(doc.body.nodes[1].localName, 'y-b'); 145 expect((doc.body.nodes[1] as Element).localName, 'y-b');
146 expect(doc.body.nodes[2].localName, 'y-c'); 146 expect((doc.body.nodes[2] as Element).localName, 'y-c');
147 expect(doc.body.nodes.length, 3); 147 expect(doc.body.nodes.length, 3);
148 148
149 fragment = parseFragment('<y-b></y-b><y-c></y-c>'); 149 fragment = parseFragment('<y-b></y-b><y-c></y-c>');
150 doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>'); 150 doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>');
151 doc.body.nodes.setRange(1, 1, [fragment], 0); 151 doc.body.nodes.setRange(1, 1, [fragment], 0);
152 expect(doc.body.nodes[0].localName, 'x-a'); 152 expect((doc.body.nodes[0] as Element).localName, 'x-a');
153 expect(doc.body.nodes[1].localName, 'y-b'); 153 expect((doc.body.nodes[1] as Element).localName, 'y-b');
154 expect(doc.body.nodes[2].localName, 'y-c'); 154 expect((doc.body.nodes[2] as Element).localName, 'y-c');
155 expect(doc.body.nodes[3].localName, 'x-c'); 155 expect((doc.body.nodes[3] as Element).localName, 'x-c');
156 expect(doc.body.nodes.length, 4); 156 expect(doc.body.nodes.length, 4);
157 }); 157 });
158 158
159 test('replaceRange', () { 159 test('replaceRange', () {
160 var fragment = parseFragment('<y-b></y-b><y-c></y-c>'); 160 var fragment = parseFragment('<y-b></y-b><y-c></y-c>');
161 var doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>'); 161 var doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>');
162 doc.body.nodes.replaceRange(1, 2, fragment.nodes); 162 doc.body.nodes.replaceRange(1, 2, fragment.nodes);
163 expect(doc.body.nodes[0].localName, 'x-a'); 163 expect((doc.body.nodes[0] as Element).localName, 'x-a');
164 expect(doc.body.nodes[1].localName, 'y-b'); 164 expect((doc.body.nodes[1] as Element).localName, 'y-b');
165 expect(doc.body.nodes[2].localName, 'y-c'); 165 expect((doc.body.nodes[2] as Element).localName, 'y-c');
166 expect(doc.body.nodes[3].localName, 'x-c'); 166 expect((doc.body.nodes[3] as Element).localName, 'x-c');
167 expect(doc.body.nodes.length, 4); 167 expect(doc.body.nodes.length, 4);
168 168
169 fragment = parseFragment('<y-b></y-b><y-c></y-c>'); 169 fragment = parseFragment('<y-b></y-b><y-c></y-c>');
170 doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>'); 170 doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>');
171 doc.body.nodes.replaceRange(1, 2, [fragment]); 171 doc.body.nodes.replaceRange(1, 2, [fragment]);
172 expect(doc.body.nodes[0].localName, 'x-a'); 172 expect((doc.body.nodes[0] as Element).localName, 'x-a');
173 expect(doc.body.nodes[1].localName, 'y-b'); 173 expect((doc.body.nodes[1] as Element).localName, 'y-b');
174 expect(doc.body.nodes[2].localName, 'y-c'); 174 expect((doc.body.nodes[2] as Element).localName, 'y-c');
175 expect(doc.body.nodes[3].localName, 'x-c'); 175 expect((doc.body.nodes[3] as Element).localName, 'x-c');
176 expect(doc.body.nodes.length, 4); 176 expect(doc.body.nodes.length, 4);
177 }); 177 });
178 178
179 test('replaceWith', () { 179 test('replaceWith', () {
180 var fragment = parseFragment('<y-b></y-b><y-c></y-c>'); 180 var fragment = parseFragment('<y-b></y-b><y-c></y-c>');
181 var doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>'); 181 var doc = parse('<body><x-a></x-a><x-b></x-b><x-c></x-c>');
182 doc.body.nodes[1].replaceWith(fragment); 182 doc.body.nodes[1].replaceWith(fragment);
183 expect(doc.body.nodes[0].localName, 'x-a'); 183 expect((doc.body.nodes[0] as Element).localName, 'x-a');
184 expect(doc.body.nodes[1].localName, 'y-b'); 184 expect((doc.body.nodes[1] as Element).localName, 'y-b');
185 expect(doc.body.nodes[2].localName, 'y-c'); 185 expect((doc.body.nodes[2] as Element).localName, 'y-c');
186 expect(doc.body.nodes[3].localName, 'x-c'); 186 expect((doc.body.nodes[3] as Element).localName, 'x-c');
187 expect(doc.body.nodes.length, 4); 187 expect(doc.body.nodes.length, 4);
188 }); 188 });
189 }); 189 });
190 } 190 }
OLDNEW
« no previous file with comments | « packages/html/pubspec.yaml ('k') | packages/html/test/parser_feature_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698