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

Side by Side Diff: tests/html/element_test.dart

Issue 11293019: Run large html tests individually. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « pkg/unittest/html_individual_config.dart ('k') | tests/html/html.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library ElementTest; 5 library ElementTest;
6 import '../../pkg/unittest/lib/unittest.dart'; 6 import '../../pkg/unittest/lib/unittest.dart';
7 import '../../pkg/unittest/lib/html_config.dart'; 7 import '../../pkg/unittest/lib/html_individual_config.dart';
8 import 'dart:html'; 8 import 'dart:html';
9 9
10 expectLargeRect(ClientRect rect) { 10 expectLargeRect(ClientRect rect) {
11 expect(rect.top, 0); 11 expect(rect.top, 0);
12 expect(rect.left, 0); 12 expect(rect.left, 0);
13 expect(rect.width, greaterThan(100)); 13 expect(rect.width, greaterThan(100));
14 expect(rect.height, greaterThan(100)); 14 expect(rect.height, greaterThan(100));
15 expect(rect.bottom, rect.top + rect.height); 15 expect(rect.bottom, rect.top + rect.height);
16 expect(rect.right, rect.left + rect.width); 16 expect(rect.right, rect.left + rect.width);
17 } 17 }
(...skipping 28 matching lines...) Expand all
46 46
47 void testConstructorHelper(String tag, String htmlSnippet, 47 void testConstructorHelper(String tag, String htmlSnippet,
48 String expectedText, Function isExpectedClass) { 48 String expectedText, Function isExpectedClass) {
49 expect(isExpectedClass(new Element.tag(tag)), isTrue); 49 expect(isExpectedClass(new Element.tag(tag)), isTrue);
50 final elementFromSnippet = new Element.html(htmlSnippet); 50 final elementFromSnippet = new Element.html(htmlSnippet);
51 expect(isExpectedClass(elementFromSnippet), isTrue); 51 expect(isExpectedClass(elementFromSnippet), isTrue);
52 expect(elementFromSnippet.text, expectedText); 52 expect(elementFromSnippet.text, expectedText);
53 } 53 }
54 54
55 main() { 55 main() {
56 useHtmlConfiguration(); 56 useHtmlIndividualConfiguration();
57 57
58 var isHRElement = predicate((x) => x is HRElement, 'is a HRElement'); 58 var isHRElement = predicate((x) => x is HRElement, 'is a HRElement');
59 var isBRElement = predicate((x) => x is BRElement, 'is a BRElement'); 59 var isBRElement = predicate((x) => x is BRElement, 'is a BRElement');
60 var isInputElement = 60 var isInputElement =
61 predicate((x) => x is InputElement, 'is an InputElement'); 61 predicate((x) => x is InputElement, 'is an InputElement');
62 var isImageElement = 62 var isImageElement =
63 predicate((x) => x is ImageElement, 'is an ImageElement'); 63 predicate((x) => x is ImageElement, 'is an ImageElement');
64 var isSpanElement = predicate((x) => x is SpanElement, 'is a SpanElement'); 64 var isSpanElement = predicate((x) => x is SpanElement, 'is a SpanElement');
65 var isAnchorElement = 65 var isAnchorElement =
66 predicate((x) => x is AnchorElement, 'is an AnchorElement'); 66 predicate((x) => x is AnchorElement, 'is an AnchorElement');
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 expect(element.clientHeight, greaterThan(100)); 118 expect(element.clientHeight, greaterThan(100));
119 expect(element.offsetWidth, greaterThan(100)); 119 expect(element.offsetWidth, greaterThan(100));
120 expect(element.offsetHeight, greaterThan(100)); 120 expect(element.offsetHeight, greaterThan(100));
121 expect(element.scrollWidth, greaterThan(100)); 121 expect(element.scrollWidth, greaterThan(100));
122 expect(element.scrollHeight, greaterThan(100)); 122 expect(element.scrollHeight, greaterThan(100));
123 expect(element.getBoundingClientRect().left, 8); 123 expect(element.getBoundingClientRect().left, 8);
124 expect(element.getBoundingClientRect().top, 8); 124 expect(element.getBoundingClientRect().top, 8);
125 container.remove(); 125 container.remove();
126 }); 126 });
127 127
128 group('additionalConstructors', () {
129 test('blockquote', () => testConstructorHelper('blockquote',
130 '<blockquote>foo</blockquote>', 'foo',
131 (element) => element is QuoteElement));
132 test('body', () => testConstructorHelper('body',
133 '<body><div>foo</div></body>', 'foo',
134 (element) => element is BodyElement));
135 test('head', () => testConstructorHelper('head',
136 '<head><script>foo;</script></head>', 'foo;',
137 (element) => element is HeadElement));
138 test('optgroup', () => testConstructorHelper('optgroup',
139 '<optgroup>foo</optgroup>', 'foo',
140 (element) => element is OptGroupElement));
141 test('option', () => testConstructorHelper('option',
142 '<option>foo</option>', 'foo',
143 (element) => element is OptionElement));
144 test('output', () => testConstructorHelper('output',
145 '<output>foo</output>', 'foo',
146 (element) => element is OutputElement));
147 test('progress', () => testConstructorHelper('progress',
148 '<progress>foo</progress>', 'foo',
149 (element) => element is ProgressElement));
150 test('caption', () => testConstructorHelper('caption',
151 '<caption>foo</caption>', 'foo',
152 (element) => element is TableCaptionElement));
153 test('td', () => testConstructorHelper('td', '<td>foo</td>', 'foo',
154 (element) => element is TableCellElement));
155 test('colgroup', () => testConstructorHelper('colgroup',
156 '<colgroup></colgroup>', '',
157 (element) => element is TableColElement));
158 test('col', () => testConstructorHelper('col', '<col></col>', '',
159 (element) => element is TableColElement));
160 test('tr', () => testConstructorHelper('tr',
161 '<tr><td>foo</td></tr>', 'foo',
162 (element) => element is TableRowElement));
163 test('tbody', () => testConstructorHelper('tbody',
164 '<tbody><tr><td>foo</td></tr></tbody>', 'foo',
165 (element) => element is TableSectionElement));
166 test('tfoot', () => testConstructorHelper('tfoot',
167 '<tfoot><tr><td>foo</td></tr></tfoot>', 'foo',
168 (element) => element is TableSectionElement));
169 test('thead', () => testConstructorHelper('thead',
170 '<thead><tr><td>foo</td></tr></thead>', 'foo',
171 (element) => element is TableSectionElement));
172 });
173
128 group('constructors', () { 174 group('constructors', () {
129 test('error', () { 175 test('error', () {
130 expect(() => new Element.html('<br/><br/>'), throwsArgumentError); 176 expect(() => new Element.html('<br/><br/>'), throwsArgumentError);
131 }); 177 });
132 178
133 test('.html has no parent', () => 179 test('.html has no parent', () =>
134 expect(new Element.html('<br/>').parent, isNull)); 180 expect(new Element.html('<br/>').parent, isNull));
135 181
136 test('a', () => testConstructorHelper('a', '<a>foo</a>', 'foo', 182 test('a', () => testConstructorHelper('a', '<a>foo</a>', 'foo',
137 (element) => element is AnchorElement)); 183 (element) => element is AnchorElement));
138 test('area', () => testConstructorHelper('area', '<area>foo</area>', '', 184 test('area', () => testConstructorHelper('area', '<area>foo</area>', '',
139 (element) => element is AreaElement)); 185 (element) => element is AreaElement));
140 // TODO(jacobr): audio tags cause tests to segfault when using dartium. 186 // TODO(jacobr): audio tags cause tests to segfault when using dartium.
141 // b/5522106. 187 // b/5522106.
142 // test('audio', () => testConstructorHelper('audio', 188 // test('audio', () => testConstructorHelper('audio',
143 // '<audio>foo</audio>', 'foo', 189 // '<audio>foo</audio>', 'foo',
144 // (element) => element is AudioElement)); 190 // (element) => element is AudioElement));
145 test('br', () => testConstructorHelper('br', '<br>', '', 191 test('br', () => testConstructorHelper('br', '<br>', '',
146 (element) => element is BRElement)); 192 (element) => element is BRElement));
147 test('base', () => testConstructorHelper('base', '<base>foo</base>', '', 193 test('base', () => testConstructorHelper('base', '<base>foo</base>', '',
148 (element) => element is BaseElement)); 194 (element) => element is BaseElement));
149 test('blockquote', () => testConstructorHelper('blockquote',
150 '<blockquote>foo</blockquote>', 'foo',
151 (element) => element is QuoteElement));
152 test('body', () => testConstructorHelper('body',
153 '<body><div>foo</div></body>', 'foo',
154 (element) => element is BodyElement));
155 test('button', () => testConstructorHelper('button', 195 test('button', () => testConstructorHelper('button',
156 '<button>foo</button>', 'foo', 196 '<button>foo</button>', 'foo',
157 (element) => element is ButtonElement)); 197 (element) => element is ButtonElement));
158 test('canvas', () => testConstructorHelper('canvas', 198 test('canvas', () => testConstructorHelper('canvas',
159 '<canvas>foo</canvas>', 'foo', 199 '<canvas>foo</canvas>', 'foo',
160 (element) => element is CanvasElement)); 200 (element) => element is CanvasElement));
161 test('dl', () => testConstructorHelper('dl', '<dl>foo</dl>', 'foo', 201 test('dl', () => testConstructorHelper('dl', '<dl>foo</dl>', 'foo',
162 (element) => element is DListElement)); 202 (element) => element is DListElement));
163 // TODO(jacobr): WebKit doesn't yet support the DataList class. 203 // TODO(jacobr): WebKit doesn't yet support the DataList class.
164 // test('datalist', () => testConstructorHelper('datalist', 204 // test('datalist', () => testConstructorHelper('datalist',
165 // '<datalist>foo</datalist>', 'foo', 205 // '<datalist>foo</datalist>', 'foo',
166 // (element) => element is DataListElement)); 206 // (element) => element is DataListElement));
167 test('div', () => testConstructorHelper('div', '<div>foo</div>', 'foo', 207 test('div', () => testConstructorHelper('div', '<div>foo</div>', 'foo',
168 (element) => element is DivElement)); 208 (element) => element is DivElement));
169 test('fieldset', () => testConstructorHelper('fieldset', 209 test('fieldset', () => testConstructorHelper('fieldset',
170 '<fieldset>foo</fieldset>', 'foo', 210 '<fieldset>foo</fieldset>', 'foo',
171 (element) => element is FieldSetElement)); 211 (element) => element is FieldSetElement));
172 test('font', () => testConstructorHelper('font', '<font>foo</font>', 'foo', 212 test('font', () => testConstructorHelper('font', '<font>foo</font>', 'foo',
173 (element) => element is FontElement)); 213 (element) => element is FontElement));
174 test('form', () => testConstructorHelper('form', '<form>foo</form>', 'foo', 214 test('form', () => testConstructorHelper('form', '<form>foo</form>', 'foo',
175 (element) => element is FormElement)); 215 (element) => element is FormElement));
176 test('hr', () => testConstructorHelper('hr', '<hr>', '', 216 test('hr', () => testConstructorHelper('hr', '<hr>', '',
177 (element) => element is HRElement)); 217 (element) => element is HRElement));
178 test('head', () => testConstructorHelper('head',
179 '<head><script>foo;</script></head>', 'foo;',
180 (element) => element is HeadElement));
181 test('h1', () => testConstructorHelper('h1', '<h1>foo</h1>', 'foo', 218 test('h1', () => testConstructorHelper('h1', '<h1>foo</h1>', 'foo',
182 (element) => element is HeadingElement)); 219 (element) => element is HeadingElement));
183 test('h2', () => testConstructorHelper('h2', '<h2>foo</h2>', 'foo', 220 test('h2', () => testConstructorHelper('h2', '<h2>foo</h2>', 'foo',
184 (element) => element is HeadingElement)); 221 (element) => element is HeadingElement));
185 test('h3', () => testConstructorHelper('h3', '<h3>foo</h3>', 'foo', 222 test('h3', () => testConstructorHelper('h3', '<h3>foo</h3>', 'foo',
186 (element) => element is HeadingElement)); 223 (element) => element is HeadingElement));
187 test('h4', () => testConstructorHelper('h4', '<h4>foo</h4>', 'foo', 224 test('h4', () => testConstructorHelper('h4', '<h4>foo</h4>', 'foo',
188 (element) => element is HeadingElement)); 225 (element) => element is HeadingElement));
189 test('h5', () => testConstructorHelper('h5', '<h5>foo</h5>', 'foo', 226 test('h5', () => testConstructorHelper('h5', '<h5>foo</h5>', 'foo',
190 (element) => element is HeadingElement)); 227 (element) => element is HeadingElement));
(...skipping 21 matching lines...) Expand all
212 test('menu', () => testConstructorHelper('menu', '<menu>foo</menu>', 'foo', 249 test('menu', () => testConstructorHelper('menu', '<menu>foo</menu>', 'foo',
213 (element) => element is MenuElement)); 250 (element) => element is MenuElement));
214 test('meta', () => testConstructorHelper('meta', '<meta>', '', 251 test('meta', () => testConstructorHelper('meta', '<meta>', '',
215 (element) => element is MetaElement)); 252 (element) => element is MetaElement));
216 test('del', () => testConstructorHelper('del', '<del>foo</del>', 'foo', 253 test('del', () => testConstructorHelper('del', '<del>foo</del>', 'foo',
217 (element) => element is ModElement)); 254 (element) => element is ModElement));
218 test('ins', () => testConstructorHelper('ins', '<ins>foo</ins>', 'foo', 255 test('ins', () => testConstructorHelper('ins', '<ins>foo</ins>', 'foo',
219 (element) => element is ModElement)); 256 (element) => element is ModElement));
220 test('ol', () => testConstructorHelper('ol', '<ol>foo</ol>', 'foo', 257 test('ol', () => testConstructorHelper('ol', '<ol>foo</ol>', 'foo',
221 (element) => element is OListElement)); 258 (element) => element is OListElement));
222 test('optgroup', () => testConstructorHelper('optgroup',
223 '<optgroup>foo</optgroup>', 'foo',
224 (element) => element is OptGroupElement));
225 test('option', () => testConstructorHelper('option',
226 '<option>foo</option>', 'foo',
227 (element) => element is OptionElement));
228 test('output', () => testConstructorHelper('output',
229 '<output>foo</output>', 'foo',
230 (element) => element is OutputElement));
231 test('p', () => testConstructorHelper('p', '<p>foo</p>', 'foo', 259 test('p', () => testConstructorHelper('p', '<p>foo</p>', 'foo',
232 (element) => element is ParagraphElement)); 260 (element) => element is ParagraphElement));
233 test('param', () => testConstructorHelper('param', '<param>', '', 261 test('param', () => testConstructorHelper('param', '<param>', '',
234 (element) => element is ParamElement)); 262 (element) => element is ParamElement));
235 test('pre', () => testConstructorHelper('pre', '<pre>foo</pre>', 'foo', 263 test('pre', () => testConstructorHelper('pre', '<pre>foo</pre>', 'foo',
236 (element) => element is PreElement)); 264 (element) => element is PreElement));
237 test('progress', () => testConstructorHelper('progress',
238 '<progress>foo</progress>', 'foo',
239 (element) => element is ProgressElement));
240 test('q', () => testConstructorHelper('q', '<q>foo</q>', 'foo', 265 test('q', () => testConstructorHelper('q', '<q>foo</q>', 'foo',
241 (element) => element is QuoteElement)); 266 (element) => element is QuoteElement));
242 test('script', () => testConstructorHelper('script', 267 test('script', () => testConstructorHelper('script',
243 '<script>foo</script>', 'foo', 268 '<script>foo</script>', 'foo',
244 (element) => element is ScriptElement)); 269 (element) => element is ScriptElement));
245 test('select', () => testConstructorHelper('select', 270 test('select', () => testConstructorHelper('select',
246 '<select>foo</select>', 'foo', 271 '<select>foo</select>', 'foo',
247 (element) => element is SelectElement)); 272 (element) => element is SelectElement));
248 // TODO(jacobr): audio tags cause tests to segfault when using dartium. 273 // TODO(jacobr): audio tags cause tests to segfault when using dartium.
249 // b/5522106. 274 // b/5522106.
250 // test('source', () => testConstructorHelper('source', '<source>', '', 275 // test('source', () => testConstructorHelper('source', '<source>', '',
251 // (element) => element is SourceElement)); 276 // (element) => element is SourceElement));
252 test('span', () => testConstructorHelper('span', '<span>foo</span>', 'foo', 277 test('span', () => testConstructorHelper('span', '<span>foo</span>', 'foo',
253 (element) => element is SpanElement)); 278 (element) => element is SpanElement));
254 test('style', () => testConstructorHelper('style', 279 test('style', () => testConstructorHelper('style',
255 '<style>foo</style>', 'foo', 280 '<style>foo</style>', 'foo',
256 (element) => element is StyleElement)); 281 (element) => element is StyleElement));
257 test('caption', () => testConstructorHelper('caption',
258 '<caption>foo</caption>', 'foo',
259 (element) => element is TableCaptionElement));
260 test('td', () => testConstructorHelper('td', '<td>foo</td>', 'foo',
261 (element) => element is TableCellElement));
262 test('colgroup', () => testConstructorHelper('colgroup',
263 '<colgroup></colgroup>', '',
264 (element) => element is TableColElement));
265 test('col', () => testConstructorHelper('col', '<col></col>', '',
266 (element) => element is TableColElement));
267 test('table', () => testConstructorHelper('table', 282 test('table', () => testConstructorHelper('table',
268 '<table><caption>foo</caption></table>', 'foo', 283 '<table><caption>foo</caption></table>', 'foo',
269 (element) => element is TableElement)); 284 (element) => element is TableElement));
270 test('tr', () => testConstructorHelper('tr',
271 '<tr><td>foo</td></tr>', 'foo',
272 (element) => element is TableRowElement));
273 test('tbody', () => testConstructorHelper('tbody',
274 '<tbody><tr><td>foo</td></tr></tbody>', 'foo',
275 (element) => element is TableSectionElement));
276 test('tfoot', () => testConstructorHelper('tfoot',
277 '<tfoot><tr><td>foo</td></tr></tfoot>', 'foo',
278 (element) => element is TableSectionElement));
279 test('thead', () => testConstructorHelper('thead',
280 '<thead><tr><td>foo</td></tr></thead>', 'foo',
281 (element) => element is TableSectionElement));
282 test('textarea', () => testConstructorHelper('textarea', 285 test('textarea', () => testConstructorHelper('textarea',
283 '<textarea>foo</textarea>', 'foo', 286 '<textarea>foo</textarea>', 'foo',
284 (element) => element is TextAreaElement)); 287 (element) => element is TextAreaElement));
285 test('title', () => testConstructorHelper('title', 288 test('title', () => testConstructorHelper('title',
286 '<title>foo</title>', 'foo', 289 '<title>foo</title>', 'foo',
287 (element) => element is TitleElement)); 290 (element) => element is TitleElement));
288 // TODO(jacobr): audio tags cause tests to segfault when using dartium. 291 // TODO(jacobr): audio tags cause tests to segfault when using dartium.
289 // b/5522106. 292 // b/5522106.
290 // test('track', () => testConstructorHelper('track', '<track>', '', 293 // test('track', () => testConstructorHelper('track', '<track>', '',
291 // (element) => element is TrackElement)); 294 // (element) => element is TrackElement));
292 test('ul', () => testConstructorHelper('ul', '<ul>foo</ul>', 'foo', 295 test('ul', () => testConstructorHelper('ul', '<ul>foo</ul>', 'foo',
293 (element) => element is UListElement)); 296 (element) => element is UListElement));
294 // TODO(jacobr): video tags cause tests to segfault when using dartium. 297 // TODO(jacobr): video tags cause tests to segfault when using dartium.
295 // b/5522106. 298 // b/5522106.
296 // test('video', () => testConstructorHelper('video', 299 // test('video', () => testConstructorHelper('video',
297 // '<video>foo</video>', 'foo', 300 // '<video>foo</video>', 'foo',
298 // (element) => element is VideoElement)); 301 // (element) => element is VideoElement));
299 // TODO(jacobr): this test is broken until Dartium fixes b/5521083 302 // TODO(jacobr): this test is broken until Dartium fixes b/5521083
300 // test('someunknown', () => testConstructorHelper('someunknown', 303 // test('someunknown', () => testConstructorHelper('someunknown',
301 // '<someunknown>foo</someunknown>', 'foo', 304 // '<someunknown>foo</someunknown>', 'foo',
302 // (element) => element is UnknownElement)); 305 // (element) => element is UnknownElement));
303 }); 306 });
307
308 group('eventListening', () {
309 test('eventListeners', () {
310 final element = new Element.tag('div');
311 final on = element.on;
304 312
305 test('eventListeners', () { 313 testEventHelper(on.abort, 'abort',
306 final element = new Element.tag('div'); 314 (listener) => Testing.addEventListener(
307 final on = element.on; 315 element, 'abort', listener, true));
308 316 testEventHelper(on.beforeCopy, 'beforecopy',
309 testEventHelper(on.abort, 'abort', 317 (listener) => Testing.addEventListener(
310 (listener) => Testing.addEventListener( 318 element, 'beforecopy', listener, true));
311 element, 'abort', listener, true)); 319 testEventHelper(on.beforeCut, 'beforecut',
312 testEventHelper(on.beforeCopy, 'beforecopy', 320 (listener) => Testing.addEventListener(
313 (listener) => Testing.addEventListener( 321 element, 'beforecut', listener, true));
314 element, 'beforecopy', listener, true)); 322 testEventHelper(on.beforePaste, 'beforepaste',
315 testEventHelper(on.beforeCut, 'beforecut', 323 (listener) => Testing.addEventListener(
316 (listener) => Testing.addEventListener( 324 element, 'beforepaste', listener, true));
317 element, 'beforecut', listener, true)); 325 testEventHelper(on.blur, 'blur',
318 testEventHelper(on.beforePaste, 'beforepaste', 326 (listener) => Testing.addEventListener(
319 (listener) => Testing.addEventListener( 327 element, 'blur', listener, true));
320 element, 'beforepaste', listener, true)); 328 testEventHelper(on.change, 'change',
321 testEventHelper(on.blur, 'blur', 329 (listener) => Testing.addEventListener(
322 (listener) => Testing.addEventListener( 330 element, 'change', listener, true));
323 element, 'blur', listener, true)); 331 testEventHelper(on.click, 'click',
324 testEventHelper(on.change, 'change', 332 (listener) => Testing.addEventListener(
325 (listener) => Testing.addEventListener( 333 element, 'click', listener, true));
326 element, 'change', listener, true)); 334 testEventHelper(on.contextMenu, 'contextmenu',
327 testEventHelper(on.click, 'click', 335 (listener) => Testing.addEventListener(
328 (listener) => Testing.addEventListener( 336 element, 'contextmenu', listener, true));
329 element, 'click', listener, true)); 337 testEventHelper(on.copy, 'copy',
330 testEventHelper(on.contextMenu, 'contextmenu', 338 (listener) => Testing.addEventListener(
331 (listener) => Testing.addEventListener( 339 element, 'copy', listener, true));
332 element, 'contextmenu', listener, true)); 340 testEventHelper(on.cut, 'cut',
333 testEventHelper(on.copy, 'copy', 341 (listener) => Testing.addEventListener(
334 (listener) => Testing.addEventListener( 342 element, 'cut', listener, true));
335 element, 'copy', listener, true)); 343 testEventHelper(on.doubleClick, 'dblclick',
336 testEventHelper(on.cut, 'cut', 344 (listener) => Testing.addEventListener(
337 (listener) => Testing.addEventListener( 345 element, 'dblclick', listener, true));
338 element, 'cut', listener, true)); 346 testEventHelper(on.drag, 'drag',
339 testEventHelper(on.doubleClick, 'dblclick', 347 (listener) => Testing.addEventListener(
340 (listener) => Testing.addEventListener( 348 element, 'drag', listener, true));
341 element, 'dblclick', listener, true)); 349 testEventHelper(on.dragEnd, 'dragend',
342 testEventHelper(on.drag, 'drag', 350 (listener) => Testing.addEventListener(
343 (listener) => Testing.addEventListener( 351 element, 'dragend', listener, true));
344 element, 'drag', listener, true)); 352 testEventHelper(on.dragEnter, 'dragenter',
345 testEventHelper(on.dragEnd, 'dragend', 353 (listener) => Testing.addEventListener(
346 (listener) => Testing.addEventListener( 354 element, 'dragenter', listener, true));
347 element, 'dragend', listener, true)); 355 testEventHelper(on.dragLeave, 'dragleave',
348 testEventHelper(on.dragEnter, 'dragenter', 356 (listener) => Testing.addEventListener(
349 (listener) => Testing.addEventListener( 357 element, 'dragleave', listener, true));
350 element, 'dragenter', listener, true)); 358 testEventHelper(on.dragOver, 'dragover',
351 testEventHelper(on.dragLeave, 'dragleave', 359 (listener) => Testing.addEventListener(
352 (listener) => Testing.addEventListener( 360 element, 'dragover', listener, true));
353 element, 'dragleave', listener, true)); 361 testEventHelper(on.dragStart, 'dragstart',
354 testEventHelper(on.dragOver, 'dragover', 362 (listener) => Testing.addEventListener(
355 (listener) => Testing.addEventListener( 363 element, 'dragstart', listener, true));
356 element, 'dragover', listener, true)); 364 testEventHelper(on.drop, 'drop',
357 testEventHelper(on.dragStart, 'dragstart', 365 (listener) => Testing.addEventListener(
358 (listener) => Testing.addEventListener( 366 element, 'drop', listener, true));
359 element, 'dragstart', listener, true)); 367 testEventHelper(on.error, 'error',
360 testEventHelper(on.drop, 'drop', 368 (listener) => Testing.addEventListener(
361 (listener) => Testing.addEventListener( 369 element, 'error', listener, true));
362 element, 'drop', listener, true)); 370 testEventHelper(on.focus, 'focus',
363 testEventHelper(on.error, 'error', 371 (listener) => Testing.addEventListener(
364 (listener) => Testing.addEventListener( 372 element, 'focus', listener, true));
365 element, 'error', listener, true)); 373 testEventHelper(on.input, 'input',
366 testEventHelper(on.focus, 'focus', 374 (listener) => Testing.addEventListener(
367 (listener) => Testing.addEventListener( 375 element, 'input', listener, true));
368 element, 'focus', listener, true)); 376 testEventHelper(on.invalid, 'invalid',
369 testEventHelper(on.input, 'input', 377 (listener) => Testing.addEventListener(
370 (listener) => Testing.addEventListener( 378 element, 'invalid', listener, true));
371 element, 'input', listener, true)); 379 testEventHelper(on.keyDown, 'keydown',
372 testEventHelper(on.invalid, 'invalid', 380 (listener) => Testing.addEventListener(
373 (listener) => Testing.addEventListener( 381 element, 'keydown', listener, true));
374 element, 'invalid', listener, true)); 382 testEventHelper(on.keyPress, 'keypress',
375 testEventHelper(on.keyDown, 'keydown', 383 (listener) => Testing.addEventListener(
376 (listener) => Testing.addEventListener( 384 element, 'keypress', listener, true));
377 element, 'keydown', listener, true)); 385 testEventHelper(on.keyUp, 'keyup',
378 testEventHelper(on.keyPress, 'keypress', 386 (listener) => Testing.addEventListener(
379 (listener) => Testing.addEventListener( 387 element, 'keyup', listener, true));
380 element, 'keypress', listener, true)); 388 testEventHelper(on.load, 'load',
381 testEventHelper(on.keyUp, 'keyup', 389 (listener) => Testing.addEventListener(
382 (listener) => Testing.addEventListener( 390 element, 'load', listener, true));
383 element, 'keyup', listener, true)); 391 testEventHelper(on.mouseDown, 'mousedown',
384 testEventHelper(on.load, 'load', 392 (listener) => Testing.addEventListener(
385 (listener) => Testing.addEventListener( 393 element, 'mousedown', listener, true));
386 element, 'load', listener, true)); 394 testEventHelper(on.mouseMove, 'mousemove',
387 testEventHelper(on.mouseDown, 'mousedown', 395 (listener) => Testing.addEventListener(
388 (listener) => Testing.addEventListener( 396 element, 'mousemove', listener, true));
389 element, 'mousedown', listener, true)); 397 testEventHelper(on.mouseOut, 'mouseout',
390 testEventHelper(on.mouseMove, 'mousemove', 398 (listener) => Testing.addEventListener(
391 (listener) => Testing.addEventListener( 399 element, 'mouseout', listener, true));
392 element, 'mousemove', listener, true)); 400 testEventHelper(on.mouseOver, 'mouseover',
393 testEventHelper(on.mouseOut, 'mouseout', 401 (listener) => Testing.addEventListener(
394 (listener) => Testing.addEventListener( 402 element, 'mouseover', listener, true));
395 element, 'mouseout', listener, true)); 403 testEventHelper(on.mouseUp, 'mouseup',
396 testEventHelper(on.mouseOver, 'mouseover', 404 (listener) => Testing.addEventListener(
397 (listener) => Testing.addEventListener( 405 element, 'mouseup', listener, true));
398 element, 'mouseover', listener, true)); 406 // Browsers have different events that they use, so fire all variants.
399 testEventHelper(on.mouseUp, 'mouseup', 407 testMultipleEventHelper(on.mouseWheel,
400 (listener) => Testing.addEventListener( 408 ['mousewheel', 'wheel', 'DOMMouseScroll'],
401 element, 'mouseup', listener, true)); 409 (listener) => Testing.addEventListener(
402 // Browsers have different events that they use, so fire all variants. 410 element, 'mousewheel', listener, true));
403 testMultipleEventHelper(on.mouseWheel, 411 testEventHelper(on.paste, 'paste',
404 ['mousewheel', 'wheel', 'DOMMouseScroll'], 412 (listener) => Testing.addEventListener(
405 (listener) => Testing.addEventListener( 413 element, 'paste', listener, true));
406 element, 'mousewheel', listener, true)); 414 testEventHelper(on.reset, 'reset',
407 testEventHelper(on.paste, 'paste', 415 (listener) => Testing.addEventListener(
408 (listener) => Testing.addEventListener( 416 element, 'reset', listener, true));
409 element, 'paste', listener, true)); 417 testEventHelper(on.scroll, 'scroll',
410 testEventHelper(on.reset, 'reset', 418 (listener) => Testing.addEventListener(
411 (listener) => Testing.addEventListener( 419 element, 'scroll', listener, true));
412 element, 'reset', listener, true)); 420 testEventHelper(on.search, 'search',
413 testEventHelper(on.scroll, 'scroll', 421 (listener) => Testing.addEventListener(
414 (listener) => Testing.addEventListener( 422 element, 'search', listener, true));
415 element, 'scroll', listener, true)); 423 testEventHelper(on.select, 'select',
416 testEventHelper(on.search, 'search', 424 (listener) => Testing.addEventListener(
417 (listener) => Testing.addEventListener( 425 element, 'select', listener, true));
418 element, 'search', listener, true)); 426 testEventHelper(on.selectStart, 'selectstart',
419 testEventHelper(on.select, 'select', 427 (listener) => Testing.addEventListener(
420 (listener) => Testing.addEventListener( 428 element, 'selectstart', listener, true));
421 element, 'select', listener, true)); 429 testEventHelper(on.submit, 'submit',
422 testEventHelper(on.selectStart, 'selectstart', 430 (listener) => Testing.addEventListener(
423 (listener) => Testing.addEventListener( 431 element, 'submit', listener, true));
424 element, 'selectstart', listener, true)); 432 testEventHelper(on.touchCancel, 'touchcancel',
425 testEventHelper(on.submit, 'submit', 433 (listener) => Testing.addEventListener(
426 (listener) => Testing.addEventListener( 434 element, 'touchcancel', listener, true));
427 element, 'submit', listener, true)); 435 testEventHelper(on.touchEnd, 'touchend',
428 testEventHelper(on.touchCancel, 'touchcancel', 436 (listener) => Testing.addEventListener(
429 (listener) => Testing.addEventListener( 437 element, 'touchend', listener, true));
430 element, 'touchcancel', listener, true)); 438 testEventHelper(on.touchLeave, 'touchleave');
431 testEventHelper(on.touchEnd, 'touchend', 439 testEventHelper(on.touchMove, 'touchmove',
432 (listener) => Testing.addEventListener( 440 (listener) => Testing.addEventListener(
433 element, 'touchend', listener, true)); 441 element, 'touchmove', listener, true));
434 testEventHelper(on.touchLeave, 'touchleave'); 442 testEventHelper(on.touchStart, 'touchstart',
435 testEventHelper(on.touchMove, 'touchmove', 443 (listener) => Testing.addEventListener(
436 (listener) => Testing.addEventListener( 444 element, 'touchstart', listener, true));
437 element, 'touchmove', listener, true)); 445 });
438 testEventHelper(on.touchStart, 'touchstart',
439 (listener) => Testing.addEventListener(
440 element, 'touchstart', listener, true));
441 }); 446 });
442 447
443 group('attributes', () { 448 group('attributes', () {
449 test('coercion', () {
450 final element = new Element.tag('div');
451 element.attributes['foo'] = 42;
452 element.attributes['bar'] = 3.1;
453 expect(element.attributes['foo'], '42');
454 expect(element.attributes['bar'], '3.1');
455 });
444 test('manipulation', () { 456 test('manipulation', () {
445 final element = new Element.html( 457 final element = new Element.html(
446 '''<div class="foo" style="overflow: hidden" data-foo="bar" 458 '''<div class="foo" style="overflow: hidden" data-foo="bar"
447 data-foo2="bar2" dir="rtl"> 459 data-foo2="bar2" dir="rtl">
448 </div>'''); 460 </div>''');
449 final attributes = element.attributes; 461 final attributes = element.attributes;
450 expect(attributes['class'], 'foo'); 462 expect(attributes['class'], 'foo');
451 expect(attributes['style'], 'overflow: hidden'); 463 expect(attributes['style'], 'overflow: hidden');
452 expect(attributes['data-foo'], 'bar'); 464 expect(attributes['data-foo'], 'bar');
453 expect(attributes['data-foo2'], 'bar2'); 465 expect(attributes['data-foo2'], 'bar2');
(...skipping 12 matching lines...) Expand all
466 expect(attributes.length, 4); 478 expect(attributes.length, 4);
467 expect(dataAttributes.length, 1); 479 expect(dataAttributes.length, 1);
468 attributes.remove('style'); 480 attributes.remove('style');
469 expect(attributes.length, 3); 481 expect(attributes.length, 3);
470 dataAttributes['foo3'] = 'baz3'; 482 dataAttributes['foo3'] = 'baz3';
471 expect(dataAttributes.length, 2); 483 expect(dataAttributes.length, 2);
472 expect(attributes.length, 4); 484 expect(attributes.length, 4);
473 attributes['style'] = 'width: 300px;'; 485 attributes['style'] = 'width: 300px;';
474 expect(attributes.length, 5); 486 expect(attributes.length, 5);
475 }); 487 });
476
477 test('coercion', () {
478 final element = new Element.tag('div');
479 element.attributes['foo'] = 42;
480 element.attributes['bar'] = 3.1;
481 expect(element.attributes['foo'], '42');
482 expect(element.attributes['bar'], '3.1');
483 });
484 }); 488 });
485 489
486 group('elements', () { 490 group('elements', () {
487 test('is a subset of nodes', () { 491 test('is a subset of nodes', () {
488 var el = new Element.html("<div>Foo<br/><img/></div>"); 492 var el = new Element.html("<div>Foo<br/><img/></div>");
489 expect(el.nodes.length, 3); 493 expect(el.nodes.length, 3);
490 expect(el.elements.length, 2); 494 expect(el.elements.length, 2);
491 expect(el.nodes[1], el.elements[0]); 495 expect(el.nodes[1], el.elements[0]);
492 expect(el.nodes[2], el.elements[1]); 496 expect(el.nodes[2], el.elements[1]);
493 }); 497 });
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 }); 756 });
753 757
754 test('getRange', () { 758 test('getRange', () {
755 var range = makeElList().getRange(1, 2); 759 var range = makeElList().getRange(1, 2);
756 expect(range, isElementList); 760 expect(range, isElementList);
757 expect(range[0], isImageElement); 761 expect(range[0], isImageElement);
758 expect(range[1], isInputElement); 762 expect(range[1], isInputElement);
759 }); 763 });
760 }); 764 });
761 } 765 }
OLDNEW
« no previous file with comments | « pkg/unittest/html_individual_config.dart ('k') | tests/html/html.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698