| OLD | NEW |
| 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_individual_config.dart'; | 7 import '../../pkg/unittest/lib/html_individual_config.dart'; |
| 8 import 'dart:html'; | 8 import 'dart:html'; |
| 9 import 'dart:svg'; | 9 import 'dart:svg'; |
| 10 | 10 |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 test('tbody', () => testConstructorHelper('tbody', | 142 test('tbody', () => testConstructorHelper('tbody', |
| 143 '<tbody><tr><td>foo</td></tr></tbody>', 'foo', | 143 '<tbody><tr><td>foo</td></tr></tbody>', 'foo', |
| 144 (element) => element is TableSectionElement)); | 144 (element) => element is TableSectionElement)); |
| 145 test('tfoot', () => testConstructorHelper('tfoot', | 145 test('tfoot', () => testConstructorHelper('tfoot', |
| 146 '<tfoot><tr><td>foo</td></tr></tfoot>', 'foo', | 146 '<tfoot><tr><td>foo</td></tr></tfoot>', 'foo', |
| 147 (element) => element is TableSectionElement)); | 147 (element) => element is TableSectionElement)); |
| 148 test('thead', () => testConstructorHelper('thead', | 148 test('thead', () => testConstructorHelper('thead', |
| 149 '<thead><tr><td>foo</td></tr></thead>', 'foo', | 149 '<thead><tr><td>foo</td></tr></thead>', 'foo', |
| 150 (element) => element is TableSectionElement)); | 150 (element) => element is TableSectionElement)); |
| 151 }); | 151 }); |
| 152 | 152 |
| 153 group('constructors', () { | 153 group('constructors', () { |
| 154 test('error', () { | 154 test('error', () { |
| 155 expect(() => new Element.html('<br/><br/>'), throwsArgumentError); | 155 expect(() => new Element.html('<br/><br/>'), throwsArgumentError); |
| 156 }); | 156 }); |
| 157 | 157 |
| 158 test('.html has no parent', () => | 158 test('.html has no parent', () => |
| 159 expect(new Element.html('<br/>').parent, isNull)); | 159 expect(new Element.html('<br/>').parent, isNull)); |
| 160 | 160 |
| 161 test('a', () => testConstructorHelper('a', '<a>foo</a>', 'foo', | 161 test('a', () => testConstructorHelper('a', '<a>foo</a>', 'foo', |
| 162 (element) => element is AnchorElement)); | 162 (element) => element is AnchorElement)); |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 // TODO(jacobr): video tags cause tests to segfault when using dartium. | 276 // TODO(jacobr): video tags cause tests to segfault when using dartium. |
| 277 // b/5522106. | 277 // b/5522106. |
| 278 // test('video', () => testConstructorHelper('video', | 278 // test('video', () => testConstructorHelper('video', |
| 279 // '<video>foo</video>', 'foo', | 279 // '<video>foo</video>', 'foo', |
| 280 // (element) => element is VideoElement)); | 280 // (element) => element is VideoElement)); |
| 281 // TODO(jacobr): this test is broken until Dartium fixes b/5521083 | 281 // TODO(jacobr): this test is broken until Dartium fixes b/5521083 |
| 282 // test('someunknown', () => testConstructorHelper('someunknown', | 282 // test('someunknown', () => testConstructorHelper('someunknown', |
| 283 // '<someunknown>foo</someunknown>', 'foo', | 283 // '<someunknown>foo</someunknown>', 'foo', |
| 284 // (element) => element is UnknownElement)); | 284 // (element) => element is UnknownElement)); |
| 285 }); | 285 }); |
| 286 | 286 |
| 287 group('eventListening', () { | 287 group('eventListening', () { |
| 288 test('eventListeners', () { | 288 test('eventListeners', () { |
| 289 final element = new Element.tag('div'); | 289 final element = new Element.tag('div'); |
| 290 final on = element.on; | 290 final on = element.on; |
| 291 | 291 |
| 292 testEventHelper(on.abort, 'abort', | 292 testEventHelper(on.abort, 'abort', |
| 293 (listener) => Testing.addEventListener( | 293 (listener) => Testing.addEventListener( |
| 294 element, 'abort', listener, true)); | 294 element, 'abort', listener, true)); |
| 295 testEventHelper(on.beforeCopy, 'beforecopy', | 295 testEventHelper(on.beforeCopy, 'beforecopy', |
| 296 (listener) => Testing.addEventListener( | 296 (listener) => Testing.addEventListener( |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 expect(attributes.length, 4); | 457 expect(attributes.length, 4); |
| 458 expect(dataAttributes.length, 1); | 458 expect(dataAttributes.length, 1); |
| 459 attributes.remove('style'); | 459 attributes.remove('style'); |
| 460 expect(attributes.length, 3); | 460 expect(attributes.length, 3); |
| 461 dataAttributes['foo3'] = 'baz3'; | 461 dataAttributes['foo3'] = 'baz3'; |
| 462 expect(dataAttributes.length, 2); | 462 expect(dataAttributes.length, 2); |
| 463 expect(attributes.length, 4); | 463 expect(attributes.length, 4); |
| 464 attributes['style'] = 'width: 300px;'; | 464 attributes['style'] = 'width: 300px;'; |
| 465 expect(attributes.length, 5); | 465 expect(attributes.length, 5); |
| 466 }); | 466 }); |
| 467 |
| 468 test('namespaces', () { |
| 469 var element = new SVGElement.svg( |
| 470 '''<svg xmlns="http://www.w3.org/2000/svg" |
| 471 xmlns:xlink="http://www.w3.org/1999/xlink"> |
| 472 <image xlink:href="foo" data-foo="bar"/> |
| 473 </svg>''').elements[0]; |
| 474 |
| 475 var attributes = element.attributes; |
| 476 expect(attributes.length, 1); |
| 477 expect(attributes['data-foo'], 'bar'); |
| 478 |
| 479 var xlinkAttrs = |
| 480 element.getNamespacedAttributes('http://www.w3.org/1999/xlink'); |
| 481 expect(xlinkAttrs.length, 1); |
| 482 expect(xlinkAttrs['href'], 'foo'); |
| 483 |
| 484 xlinkAttrs.remove('href'); |
| 485 expect(xlinkAttrs.length, 0); |
| 486 |
| 487 xlinkAttrs['href'] = 'bar'; |
| 488 expect(xlinkAttrs['href'], 'bar'); |
| 489 |
| 490 var randomAttrs = element.getNamespacedAttributes('http://example.com'); |
| 491 expect(randomAttrs.length, 0); |
| 492 randomAttrs['href'] = 'bar'; |
| 493 expect(randomAttrs.length, 1); |
| 494 }); |
| 467 }); | 495 }); |
| 468 | 496 |
| 469 group('elements', () { | 497 group('elements', () { |
| 470 test('is a subset of nodes', () { | 498 test('is a subset of nodes', () { |
| 471 var el = new Element.html("<div>Foo<br/><img/></div>"); | 499 var el = new Element.html("<div>Foo<br/><img/></div>"); |
| 472 expect(el.nodes.length, 3); | 500 expect(el.nodes.length, 3); |
| 473 expect(el.elements.length, 2); | 501 expect(el.elements.length, 2); |
| 474 expect(el.nodes[1], el.elements[0]); | 502 expect(el.nodes[1], el.elements[0]); |
| 475 expect(el.nodes[2], el.elements[1]); | 503 expect(el.nodes[2], el.elements[1]); |
| 476 }); | 504 }); |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 735 }); | 763 }); |
| 736 | 764 |
| 737 test('getRange', () { | 765 test('getRange', () { |
| 738 var range = makeElList().getRange(1, 2); | 766 var range = makeElList().getRange(1, 2); |
| 739 expect(range, isElementList); | 767 expect(range, isElementList); |
| 740 expect(range[0], isImageElement); | 768 expect(range[0], isImageElement); |
| 741 expect(range[1], isInputElement); | 769 expect(range[1], isInputElement); |
| 742 }); | 770 }); |
| 743 }); | 771 }); |
| 744 } | 772 } |
| OLD | NEW |