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/unittest.dart'); | 6 #import('../../pkg/unittest/unittest.dart'); |
7 #import('../../pkg/unittest/html_config.dart'); | 7 #import('../../pkg/unittest/html_config.dart'); |
8 #import('dart:html'); | 8 #import('dart:html'); |
9 | 9 |
10 expectLargeRect(ClientRect rect) { | 10 expectLargeRect(ClientRect rect) { |
11 Expect.equals(rect.top, 0); | 11 expect(rect.top, 0); |
12 Expect.equals(rect.left, 0); | 12 expect(rect.left, 0); |
13 Expect.isTrue(rect.width > 100); | 13 expect(rect.width, greaterThan(100)); |
14 Expect.isTrue(rect.height > 100); | 14 expect(rect.height, greaterThan(100)); |
15 Expect.equals(rect.bottom, rect.top + rect.height); | 15 expect(rect.bottom, rect.top + rect.height); |
16 Expect.equals(rect.right, rect.left + rect.width); | 16 expect(rect.right, rect.left + rect.width); |
17 } | 17 } |
18 | 18 |
19 void testEventHelper(EventListenerList listenerList, String type, | 19 void testEventHelper(EventListenerList listenerList, String type, |
20 [Function registerOnEventListener = null]) { | 20 [Function registerOnEventListener = null]) { |
21 testMultipleEventHelper(listenerList, [type], registerOnEventListener); | 21 testMultipleEventHelper(listenerList, [type], registerOnEventListener); |
22 } | 22 } |
23 // Allows testing where we polyfill different browsers firing different events. | 23 // Allows testing where we polyfill different browsers firing different events. |
24 void testMultipleEventHelper(EventListenerList listenerList, List<String> types, | 24 void testMultipleEventHelper(EventListenerList listenerList, List<String> types, |
25 [Function registerOnEventListener = null]) { | 25 [Function registerOnEventListener = null]) { |
26 bool firedWhenAddedToListenerList = false; | 26 bool firedWhenAddedToListenerList = false; |
27 bool firedOnEvent = false; | 27 bool firedOnEvent = false; |
28 listenerList.add((e) { | 28 listenerList.add((e) { |
29 firedWhenAddedToListenerList = true; | 29 firedWhenAddedToListenerList = true; |
30 }); | 30 }); |
31 if (registerOnEventListener != null) { | 31 if (registerOnEventListener != null) { |
32 registerOnEventListener((e) { | 32 registerOnEventListener((e) { |
33 firedOnEvent = true; | 33 firedOnEvent = true; |
34 }); | 34 }); |
35 } | 35 } |
36 for (var type in types) { | 36 for (var type in types) { |
37 final event = new Event(type); | 37 final event = new Event(type); |
38 listenerList.dispatch(event); | 38 listenerList.dispatch(event); |
39 } | 39 } |
40 | 40 |
41 Expect.isTrue(firedWhenAddedToListenerList); | 41 expect(firedWhenAddedToListenerList, isTrue); |
42 if (registerOnEventListener != null) { | 42 if (registerOnEventListener != null) { |
43 Expect.isTrue(firedOnEvent); | 43 expect(firedOnEvent, isTrue); |
44 } | 44 } |
45 } | 45 } |
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.isTrue(isExpectedClass(new Element.tag(tag))); | 49 expect(isExpectedClass(new Element.tag(tag)), isTrue); |
50 final elementFromSnippet = new Element.html(htmlSnippet); | 50 final elementFromSnippet = new Element.html(htmlSnippet); |
51 Expect.isTrue(isExpectedClass(elementFromSnippet)); | 51 expect(isExpectedClass(elementFromSnippet), isTrue); |
52 Expect.equals(expectedText, elementFromSnippet.text); | 52 expect(elementFromSnippet.text, expectedText); |
53 } | 53 } |
54 | 54 |
55 main() { | 55 main() { |
56 useHtmlConfiguration(); | 56 useHtmlConfiguration(); |
57 | 57 |
| 58 var isHRElement = new isInstanceOf<HRElement>('HRElement'); |
| 59 var isBRElement = new isInstanceOf<BRElement>('BRElement'); |
| 60 var isInputElement = new isInstanceOf<InputElement>('InputElement'); |
| 61 var isImageElement = new isInstanceOf<ImageElement>('ImageElement'); |
| 62 var isSpanElement = new isInstanceOf<SpanElement>('SpanElement'); |
| 63 var isAnchorElement = new isInstanceOf<AnchorElement>('AnchorElement'); |
| 64 var isElementList = new isInstanceOf<List<Element>>('List<Element>'); |
| 65 |
58 Element makeElement() => new Element.tag('div'); | 66 Element makeElement() => new Element.tag('div'); |
59 | 67 |
60 Element makeElementWithChildren() => | 68 Element makeElementWithChildren() => |
61 new Element.html("<div><br/><img/><input/></div>"); | 69 new Element.html("<div><br/><img/><input/></div>"); |
62 | 70 |
63 test('computedStyle', () { | 71 test('computedStyle', () { |
64 final element = document.body; | 72 final element = document.body; |
65 element.computedStyle.then(expectAsync1((style) { | 73 element.computedStyle.then(expectAsync1((style) { |
66 Expect.equals(style.getPropertyValue('left'), 'auto'); | 74 expect(style.getPropertyValue('left'), 'auto'); |
67 })); | 75 })); |
68 }); | 76 }); |
69 | 77 |
70 test('rect', () { | 78 test('rect', () { |
71 final container = new Element.tag("div"); | 79 final container = new Element.tag("div"); |
72 container.style.position = 'absolute'; | 80 container.style.position = 'absolute'; |
73 container.style.top = '8px'; | 81 container.style.top = '8px'; |
74 container.style.left = '8px'; | 82 container.style.left = '8px'; |
75 final element = new Element.tag("div"); | 83 final element = new Element.tag("div"); |
76 element.style.width = '200px'; | 84 element.style.width = '200px'; |
(...skipping 29 matching lines...) Expand all Loading... |
106 expect(element.offsetHeight, greaterThan(100)); | 114 expect(element.offsetHeight, greaterThan(100)); |
107 expect(element.scrollWidth, greaterThan(100)); | 115 expect(element.scrollWidth, greaterThan(100)); |
108 expect(element.scrollHeight, greaterThan(100)); | 116 expect(element.scrollHeight, greaterThan(100)); |
109 expect(element.getBoundingClientRect().left, 8); | 117 expect(element.getBoundingClientRect().left, 8); |
110 expect(element.getBoundingClientRect().top, 8); | 118 expect(element.getBoundingClientRect().top, 8); |
111 container.remove(); | 119 container.remove(); |
112 }); | 120 }); |
113 | 121 |
114 group('constructors', () { | 122 group('constructors', () { |
115 test('error', () { | 123 test('error', () { |
116 Expect.throws(() => new Element.html('<br/><br/>'), | 124 expect(() => new Element.html('<br/><br/>'), throwsArgumentError); |
117 (e) => e is ArgumentError); | |
118 }); | 125 }); |
119 | 126 |
120 test('.html has no parent', () => | 127 test('.html has no parent', () => |
121 Expect.isNull(new Element.html('<br/>').parent)); | 128 expect(new Element.html('<br/>').parent, isNull)); |
122 | 129 |
123 test('a', () => testConstructorHelper('a', '<a>foo</a>', 'foo', | 130 test('a', () => testConstructorHelper('a', '<a>foo</a>', 'foo', |
124 (element) => element is AnchorElement)); | 131 (element) => element is AnchorElement)); |
125 test('area', () => testConstructorHelper('area', '<area>foo</area>', '', | 132 test('area', () => testConstructorHelper('area', '<area>foo</area>', '', |
126 (element) => element is AreaElement)); | 133 (element) => element is AreaElement)); |
127 // TODO(jacobr): audio tags cause tests to segfault when using dartium. | 134 // TODO(jacobr): audio tags cause tests to segfault when using dartium. |
128 // b/5522106. | 135 // b/5522106. |
129 // test('audio', () => testConstructorHelper('audio', | 136 // test('audio', () => testConstructorHelper('audio', |
130 // '<audio>foo</audio>', 'foo', | 137 // '<audio>foo</audio>', 'foo', |
131 // (element) => element is AudioElement)); | 138 // (element) => element is AudioElement)); |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 element, 'touchstart', listener, true)); | 434 element, 'touchstart', listener, true)); |
428 }); | 435 }); |
429 | 436 |
430 group('attributes', () { | 437 group('attributes', () { |
431 test('manipulation', () { | 438 test('manipulation', () { |
432 final element = new Element.html( | 439 final element = new Element.html( |
433 '''<div class="foo" style="overflow: hidden" data-foo="bar" | 440 '''<div class="foo" style="overflow: hidden" data-foo="bar" |
434 data-foo2="bar2" dir="rtl"> | 441 data-foo2="bar2" dir="rtl"> |
435 </div>'''); | 442 </div>'''); |
436 final attributes = element.attributes; | 443 final attributes = element.attributes; |
437 Expect.equals(attributes['class'], 'foo'); | 444 expect(attributes['class'], 'foo'); |
438 Expect.equals(attributes['style'], 'overflow: hidden'); | 445 expect(attributes['style'], 'overflow: hidden'); |
439 Expect.equals(attributes['data-foo'], 'bar'); | 446 expect(attributes['data-foo'], 'bar'); |
440 Expect.equals(attributes['data-foo2'], 'bar2'); | 447 expect(attributes['data-foo2'], 'bar2'); |
441 Expect.equals(attributes.length, 5); | 448 expect(attributes.length, 5); |
442 Expect.equals(element.dataAttributes.length, 2); | 449 expect(element.dataAttributes.length, 2); |
443 element.dataAttributes['foo'] = 'baz'; | 450 element.dataAttributes['foo'] = 'baz'; |
444 Expect.equals(element.dataAttributes['foo'], 'baz'); | 451 expect(element.dataAttributes['foo'], 'baz'); |
445 Expect.equals(attributes['data-foo'], 'baz'); | 452 expect(attributes['data-foo'], 'baz'); |
446 attributes['data-foo2'] = 'baz2'; | 453 attributes['data-foo2'] = 'baz2'; |
447 Expect.equals(attributes['data-foo2'], 'baz2'); | 454 expect(attributes['data-foo2'], 'baz2'); |
448 Expect.equals(element.dataAttributes['foo2'], 'baz2'); | 455 expect(element.dataAttributes['foo2'], 'baz2'); |
449 Expect.equals(attributes['dir'], 'rtl'); | 456 expect(attributes['dir'], 'rtl'); |
450 | 457 |
451 final dataAttributes = element.dataAttributes; | 458 final dataAttributes = element.dataAttributes; |
452 dataAttributes.remove('foo2'); | 459 dataAttributes.remove('foo2'); |
453 Expect.equals(attributes.length, 4); | 460 expect(attributes.length, 4); |
454 Expect.equals(dataAttributes.length, 1); | 461 expect(dataAttributes.length, 1); |
455 attributes.remove('style'); | 462 attributes.remove('style'); |
456 Expect.equals(attributes.length, 3); | 463 expect(attributes.length, 3); |
457 dataAttributes['foo3'] = 'baz3'; | 464 dataAttributes['foo3'] = 'baz3'; |
458 Expect.equals(dataAttributes.length, 2); | 465 expect(dataAttributes.length, 2); |
459 Expect.equals(attributes.length, 4); | 466 expect(attributes.length, 4); |
460 attributes['style'] = 'width: 300px;'; | 467 attributes['style'] = 'width: 300px;'; |
461 Expect.equals(attributes.length, 5); | 468 expect(attributes.length, 5); |
462 }); | 469 }); |
463 | 470 |
464 test('coercion', () { | 471 test('coercion', () { |
465 final element = new Element.tag('div'); | 472 final element = new Element.tag('div'); |
466 element.attributes['foo'] = 42; | 473 element.attributes['foo'] = 42; |
467 element.attributes['bar'] = 3.1; | 474 element.attributes['bar'] = 3.1; |
468 Expect.equals(element.attributes['foo'], '42'); | 475 expect(element.attributes['foo'], '42'); |
469 Expect.equals(element.attributes['bar'], '3.1'); | 476 expect(element.attributes['bar'], '3.1'); |
470 }); | 477 }); |
471 }); | 478 }); |
472 | 479 |
473 group('elements', () { | 480 group('elements', () { |
474 test('is a subset of nodes', () { | 481 test('is a subset of nodes', () { |
475 var el = new Element.html("<div>Foo<br/><img/></div>"); | 482 var el = new Element.html("<div>Foo<br/><img/></div>"); |
476 Expect.equals(3, el.nodes.length); | 483 expect(el.nodes.length, 3); |
477 Expect.equals(2, el.elements.length); | 484 expect(el.elements.length, 2); |
478 Expect.equals(el.nodes[1], el.elements[0]); | 485 expect(el.nodes[1], el.elements[0]); |
479 Expect.equals(el.nodes[2], el.elements[1]); | 486 expect(el.nodes[2], el.elements[1]); |
480 }); | 487 }); |
481 | 488 |
482 test('changes when an element is added to nodes', () { | 489 test('changes when an element is added to nodes', () { |
483 var el = new Element.html("<div>Foo<br/><img/></div>"); | 490 var el = new Element.html("<div>Foo<br/><img/></div>"); |
484 el.nodes.add(new Element.tag('hr')); | 491 el.nodes.add(new Element.tag('hr')); |
485 Expect.equals(3, el.elements.length); | 492 expect(el.elements.length, 3); |
486 Expect.isTrue(el.elements[2] is HRElement); | 493 expect(el.elements[2], isHRElement); |
487 Expect.equals(el.nodes[3], el.elements[2]); | 494 expect(el.nodes[3], el.elements[2]); |
488 }); | 495 }); |
489 | 496 |
490 test('changes nodes when an element is added', () { | 497 test('changes nodes when an element is added', () { |
491 var el = new Element.html("<div>Foo<br/><img/></div>"); | 498 var el = new Element.html("<div>Foo<br/><img/></div>"); |
492 el.elements.add(new Element.tag('hr')); | 499 el.elements.add(new Element.tag('hr')); |
493 Expect.equals(4, el.nodes.length); | 500 expect(el.nodes.length, 4); |
494 Expect.isTrue(el.nodes[3] is HRElement); | 501 expect(el.nodes[3], isHRElement); |
495 Expect.equals(el.elements[2], el.nodes[3]); | 502 expect(el.elements[2], el.nodes[3]); |
496 }); | 503 }); |
497 | 504 |
498 test('last', () { | 505 test('last', () { |
499 var el = makeElementWithChildren(); | 506 var el = makeElementWithChildren(); |
500 Expect.isTrue(el.elements.last is InputElement); | 507 expect(el.elements.last, isInputElement); |
501 }); | 508 }); |
502 | 509 |
503 test('forEach', () { | 510 test('forEach', () { |
504 var els = []; | 511 var els = []; |
505 var el = makeElementWithChildren(); | 512 var el = makeElementWithChildren(); |
506 el.elements.forEach((n) => els.add(n)); | 513 el.elements.forEach((n) => els.add(n)); |
507 Expect.isTrue(els[0] is BRElement); | 514 expect(els[0], isBRElement); |
508 Expect.isTrue(els[1] is ImageElement); | 515 expect(els[1], isImageElement); |
509 Expect.isTrue(els[2] is InputElement); | 516 expect(els[2], isInputElement); |
510 }); | 517 }); |
511 | 518 |
512 test('filter', () { | 519 test('filter', () { |
513 var filtered = makeElementWithChildren().elements. | 520 var filtered = makeElementWithChildren().elements. |
514 filter((n) => n is ImageElement); | 521 filter((n) => n is ImageElement); |
515 Expect.equals(1, filtered.length); | 522 expect(1, filtered.length); |
516 Expect.isTrue(filtered[0] is ImageElement); | 523 expect(filtered[0], isImageElement); |
517 Expect.isTrue(filtered is List<Element>); | 524 expect(filtered, isElementList); |
518 }); | 525 }); |
519 | 526 |
520 test('every', () { | 527 test('every', () { |
521 var el = makeElementWithChildren(); | 528 var el = makeElementWithChildren(); |
522 Expect.isTrue(el.elements.every((n) => n is Element)); | 529 expect(el.elements.every((n) => n is Element), isTrue); |
523 Expect.isFalse(el.elements.every((n) => n is InputElement)); | 530 expect(el.elements.every((n) => n is InputElement), isFalse); |
524 }); | 531 }); |
525 | 532 |
526 test('some', () { | 533 test('some', () { |
527 var el = makeElementWithChildren(); | 534 var el = makeElementWithChildren(); |
528 Expect.isTrue(el.elements.some((n) => n is InputElement)); | 535 expect(el.elements.some((n) => n is InputElement), isTrue); |
529 Expect.isFalse(el.elements.some((n) => n is SVGElement)); | 536 expect(el.elements.some((n) => n is SVGElement), isFalse); |
530 }); | 537 }); |
531 | 538 |
532 test('isEmpty', () { | 539 test('isEmpty', () { |
533 Expect.isTrue(makeElement().elements.isEmpty); | 540 expect(makeElement().elements.isEmpty, isTrue); |
534 Expect.isFalse(makeElementWithChildren().elements.isEmpty); | 541 expect(makeElementWithChildren().elements.isEmpty, isFalse); |
535 }); | 542 }); |
536 | 543 |
537 test('length', () { | 544 test('length', () { |
538 Expect.equals(0, makeElement().elements.length); | 545 expect(makeElement().elements.length, 0); |
539 Expect.equals(3, makeElementWithChildren().elements.length); | 546 expect(makeElementWithChildren().elements.length, 3); |
540 }); | 547 }); |
541 | 548 |
542 test('[]', () { | 549 test('[]', () { |
543 var el = makeElementWithChildren(); | 550 var el = makeElementWithChildren(); |
544 Expect.isTrue(el.elements[0] is BRElement); | 551 expect(el.elements[0], isBRElement); |
545 Expect.isTrue(el.elements[1] is ImageElement); | 552 expect(el.elements[1], isImageElement); |
546 Expect.isTrue(el.elements[2] is InputElement); | 553 expect(el.elements[2], isInputElement); |
547 }); | 554 }); |
548 | 555 |
549 test('[]=', () { | 556 test('[]=', () { |
550 var el = makeElementWithChildren(); | 557 var el = makeElementWithChildren(); |
551 el.elements[1] = new Element.tag('hr'); | 558 el.elements[1] = new Element.tag('hr'); |
552 Expect.isTrue(el.elements[0] is BRElement); | 559 expect(el.elements[0], isBRElement); |
553 Expect.isTrue(el.elements[1] is HRElement); | 560 expect(el.elements[1], isHRElement); |
554 Expect.isTrue(el.elements[2] is InputElement); | 561 expect(el.elements[2], isInputElement); |
555 }); | 562 }); |
556 | 563 |
557 test('add', () { | 564 test('add', () { |
558 var el = makeElement(); | 565 var el = makeElement(); |
559 el.elements.add(new Element.tag('hr')); | 566 el.elements.add(new Element.tag('hr')); |
560 Expect.isTrue(el.elements.last is HRElement); | 567 expect(el.elements.last, isHRElement); |
561 }); | 568 }); |
562 | 569 |
563 test('addLast', () { | 570 test('addLast', () { |
564 var el = makeElement(); | 571 var el = makeElement(); |
565 el.elements.addLast(new Element.tag('hr')); | 572 el.elements.addLast(new Element.tag('hr')); |
566 Expect.isTrue(el.elements.last is HRElement); | 573 expect(el.elements.last, isHRElement); |
567 }); | 574 }); |
568 | 575 |
569 test('iterator', () { | 576 test('iterator', () { |
570 var els = []; | 577 var els = []; |
571 var el = makeElementWithChildren(); | 578 var el = makeElementWithChildren(); |
572 for (var subel in el.elements) { | 579 for (var subel in el.elements) { |
573 els.add(subel); | 580 els.add(subel); |
574 } | 581 } |
575 Expect.isTrue(els[0] is BRElement); | 582 expect(els[0], isBRElement); |
576 Expect.isTrue(els[1] is ImageElement); | 583 expect(els[1], isImageElement); |
577 Expect.isTrue(els[2] is InputElement); | 584 expect(els[2], isInputElement); |
578 }); | 585 }); |
579 | 586 |
580 test('addAll', () { | 587 test('addAll', () { |
581 var el = makeElementWithChildren(); | 588 var el = makeElementWithChildren(); |
582 el.elements.addAll([ | 589 el.elements.addAll([ |
583 new Element.tag('span'), | 590 new Element.tag('span'), |
584 new Element.tag('a'), | 591 new Element.tag('a'), |
585 new Element.tag('h1') | 592 new Element.tag('h1') |
586 ]); | 593 ]); |
587 Expect.isTrue(el.elements[0] is BRElement); | 594 expect(el.elements[0], isBRElement); |
588 Expect.isTrue(el.elements[1] is ImageElement); | 595 expect(el.elements[1], isImageElement); |
589 Expect.isTrue(el.elements[2] is InputElement); | 596 expect(el.elements[2], isInputElement); |
590 Expect.isTrue(el.elements[3] is SpanElement); | 597 expect(el.elements[3], isSpanElement); |
591 Expect.isTrue(el.elements[4] is AnchorElement); | 598 expect(el.elements[4], isAnchorElement); |
592 Expect.isTrue(el.elements[5] is HeadingElement); | 599 expect(el.elements[5], new isInstanceOf<Element>('HeadingElement')); |
593 }); | 600 }); |
594 | 601 |
595 test('clear', () { | 602 test('clear', () { |
596 var el = makeElementWithChildren(); | 603 var el = makeElementWithChildren(); |
597 el.elements.clear(); | 604 el.elements.clear(); |
598 Expect.listEquals([], el.elements); | 605 expect(el.elements, equals([])); |
599 }); | 606 }); |
600 | 607 |
601 test('removeLast', () { | 608 test('removeLast', () { |
602 var el = makeElementWithChildren(); | 609 var el = makeElementWithChildren(); |
603 Expect.isTrue(el.elements.removeLast() is InputElement); | 610 expect(el.elements.removeLast(), isInputElement); |
604 Expect.equals(2, el.elements.length); | 611 expect(el.elements.length, 2); |
605 Expect.isTrue(el.elements.removeLast() is ImageElement); | 612 expect(el.elements.removeLast(), isImageElement); |
606 Expect.equals(1, el.elements.length); | 613 expect(el.elements.length, 1); |
607 }); | 614 }); |
608 | 615 |
609 test('getRange', () { | 616 test('getRange', () { |
610 var el = makeElementWithChildren(); | 617 var el = makeElementWithChildren(); |
611 Expect.isTrue(el.elements.getRange(1, 1) is List<Element>); | 618 expect(el.elements.getRange(1, 1), isElementList); |
612 }); | 619 }); |
613 }); | 620 }); |
614 | 621 |
615 group('queryAll', () { | 622 group('queryAll', () { |
616 List<Element> getQueryAll() { | 623 List<Element> getQueryAll() { |
617 return new Element.html(""" | 624 return new Element.html(""" |
618 <div> | 625 <div> |
619 <hr/> | 626 <hr/> |
620 <a class='q' href='http://dartlang.org'>Dart!</a> | 627 <a class='q' href='http://dartlang.org'>Dart!</a> |
621 <p> | 628 <p> |
622 <span class='q'>Hello</span>, | 629 <span class='q'>Hello</span>, |
623 <em>world</em>! | 630 <em>world</em>! |
624 </p> | 631 </p> |
625 <hr class='q'/> | 632 <hr class='q'/> |
626 </div> | 633 </div> |
627 """).queryAll('.q'); | 634 """).queryAll('.q'); |
628 } | 635 } |
629 | 636 |
630 List<Element> getEmptyQueryAll() => new Element.tag('div').queryAll('img'); | 637 List<Element> getEmptyQueryAll() => new Element.tag('div').queryAll('img'); |
631 | 638 |
632 void testUnsupported(String name, void f()) { | 639 void testUnsupported(String name, void f()) { |
633 test(name, () { | 640 test(name, () { |
634 Expect.throws(f, (e) => e is UnsupportedError); | 641 expect(f, throwsUnsupportedError); |
635 }); | 642 }); |
636 } | 643 } |
637 | 644 |
638 test('last', () { | 645 test('last', () { |
639 Expect.isTrue(getQueryAll().last is HRElement); | 646 expect(getQueryAll().last, isHRElement); |
640 }); | 647 }); |
641 | 648 |
642 test('forEach', () { | 649 test('forEach', () { |
643 var els = []; | 650 var els = []; |
644 getQueryAll().forEach((el) => els.add(el)); | 651 getQueryAll().forEach((el) => els.add(el)); |
645 Expect.isTrue(els[0] is AnchorElement); | 652 expect(els[0], isAnchorElement); |
646 Expect.isTrue(els[1] is SpanElement); | 653 expect(els[1], isSpanElement); |
647 Expect.isTrue(els[2] is HRElement); | 654 expect(els[2], isHRElement); |
648 }); | 655 }); |
649 | 656 |
650 test('map', () { | 657 test('map', () { |
651 var texts = getQueryAll().map((el) => el.text); | 658 var texts = getQueryAll().map((el) => el.text); |
652 Expect.listEquals(['Dart!', 'Hello', ''], texts); | 659 expect(texts, equals(['Dart!', 'Hello', ''])); |
653 }); | 660 }); |
654 | 661 |
655 test('filter', () { | 662 test('filter', () { |
656 var filtered = getQueryAll().filter((n) => n is SpanElement); | 663 var filtered = getQueryAll().filter((n) => n is SpanElement); |
657 Expect.equals(1, filtered.length); | 664 expect(filtered.length, 1); |
658 Expect.isTrue(filtered[0] is SpanElement); | 665 expect(filtered[0], isSpanElement); |
659 Expect.isTrue(filtered is List<Element>); | 666 expect(filtered, isElementList); |
660 }); | 667 }); |
661 | 668 |
662 test('every', () { | 669 test('every', () { |
663 var el = getQueryAll(); | 670 var el = getQueryAll(); |
664 Expect.isTrue(el.every((n) => n is Element)); | 671 expect(el.every((n) => n is Element), isTrue); |
665 Expect.isFalse(el.every((n) => n is SpanElement)); | 672 expect(el.every((n) => n is SpanElement), isFalse); |
666 }); | 673 }); |
667 | 674 |
668 test('some', () { | 675 test('some', () { |
669 var el = getQueryAll(); | 676 var el = getQueryAll(); |
670 Expect.isTrue(el.some((n) => n is SpanElement)); | 677 expect(el.some((n) => n is SpanElement), isTrue); |
671 Expect.isFalse(el.some((n) => n is SVGElement)); | 678 expect(el.some((n) => n is SVGElement), isFalse); |
672 }); | 679 }); |
673 | 680 |
674 test('isEmpty', () { | 681 test('isEmpty', () { |
675 Expect.isTrue(getEmptyQueryAll().isEmpty); | 682 expect(getEmptyQueryAll().isEmpty, isTrue); |
676 Expect.isFalse(getQueryAll().isEmpty); | 683 expect(getQueryAll().isEmpty, isFalse); |
677 }); | 684 }); |
678 | 685 |
679 test('length', () { | 686 test('length', () { |
680 Expect.equals(0, getEmptyQueryAll().length); | 687 expect(getEmptyQueryAll().length, 0); |
681 Expect.equals(3, getQueryAll().length); | 688 expect(getQueryAll().length, 3); |
682 }); | 689 }); |
683 | 690 |
684 test('[]', () { | 691 test('[]', () { |
685 var els = getQueryAll(); | 692 var els = getQueryAll(); |
686 Expect.isTrue(els[0] is AnchorElement); | 693 expect(els[0], isAnchorElement); |
687 Expect.isTrue(els[1] is SpanElement); | 694 expect(els[1], isSpanElement); |
688 Expect.isTrue(els[2] is HRElement); | 695 expect(els[2], isHRElement); |
689 }); | 696 }); |
690 | 697 |
691 test('iterator', () { | 698 test('iterator', () { |
692 var els = []; | 699 var els = []; |
693 for (var subel in getQueryAll()) { | 700 for (var subel in getQueryAll()) { |
694 els.add(subel); | 701 els.add(subel); |
695 } | 702 } |
696 Expect.isTrue(els[0] is AnchorElement); | 703 expect(els[0], isAnchorElement); |
697 Expect.isTrue(els[1] is SpanElement); | 704 expect(els[1], isSpanElement); |
698 Expect.isTrue(els[2] is HRElement); | 705 expect(els[2], isHRElement); |
699 }); | 706 }); |
700 | 707 |
701 test('getRange', () { | 708 test('getRange', () { |
702 Expect.isTrue(getQueryAll().getRange(1, 1) is List<Element>); | 709 expect(getQueryAll().getRange(1, 1) is List<Element>, isTrue); |
703 }); | 710 }); |
704 | 711 |
705 testUnsupported('[]=', () => getQueryAll()[1] = new Element.tag('br')); | 712 testUnsupported('[]=', () => getQueryAll()[1] = new Element.tag('br')); |
706 testUnsupported('add', () => getQueryAll().add(new Element.tag('br'))); | 713 testUnsupported('add', () => getQueryAll().add(new Element.tag('br'))); |
707 testUnsupported('addLast', () => | 714 testUnsupported('addLast', () => |
708 getQueryAll().addLast(new Element.tag('br'))); | 715 getQueryAll().addLast(new Element.tag('br'))); |
709 | 716 |
710 testUnsupported('addAll', () { | 717 testUnsupported('addAll', () { |
711 getQueryAll().addAll([ | 718 getQueryAll().addAll([ |
712 new Element.tag('span'), | 719 new Element.tag('span'), |
(...skipping 13 matching lines...) Expand all Loading... |
726 testUnsupported('clear', () => getQueryAll().clear()); | 733 testUnsupported('clear', () => getQueryAll().clear()); |
727 | 734 |
728 testUnsupported('removeLast', () => getQueryAll().removeLast()); | 735 testUnsupported('removeLast', () => getQueryAll().removeLast()); |
729 }); | 736 }); |
730 | 737 |
731 group('_ElementList', () { | 738 group('_ElementList', () { |
732 List<Element> makeElList() => makeElementWithChildren().elements; | 739 List<Element> makeElList() => makeElementWithChildren().elements; |
733 | 740 |
734 test('filter', () { | 741 test('filter', () { |
735 var filtered = makeElList().filter((n) => n is ImageElement); | 742 var filtered = makeElList().filter((n) => n is ImageElement); |
736 Expect.equals(1, filtered.length); | 743 expect(filtered.length, 1); |
737 Expect.isTrue(filtered[0] is ImageElement); | 744 expect(filtered[0], isImageElement); |
738 Expect.isTrue(filtered is List<Element>); | 745 expect(filtered, isElementList); |
739 }); | 746 }); |
740 | 747 |
741 test('getRange', () { | 748 test('getRange', () { |
742 var range = makeElList().getRange(1, 2); | 749 var range = makeElList().getRange(1, 2); |
743 Expect.isTrue(range is List<Element>); | 750 expect(range, isElementList); |
744 Expect.isTrue(range[0] is ImageElement); | 751 expect(range[0], isImageElement); |
745 Expect.isTrue(range[1] is InputElement); | 752 expect(range[1], isInputElement); |
746 }); | 753 }); |
747 }); | 754 }); |
748 } | 755 } |
OLD | NEW |