| 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) { |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 }); | 478 }); |
| 479 | 479 |
| 480 test('changes nodes when an element is added', () { | 480 test('changes nodes when an element is added', () { |
| 481 var el = new Element.html("<div>Foo<br/><img/></div>"); | 481 var el = new Element.html("<div>Foo<br/><img/></div>"); |
| 482 el.elements.add(new Element.tag('hr')); | 482 el.elements.add(new Element.tag('hr')); |
| 483 Expect.equals(4, el.nodes.length); | 483 Expect.equals(4, el.nodes.length); |
| 484 Expect.isTrue(el.nodes[3] is HRElement); | 484 Expect.isTrue(el.nodes[3] is HRElement); |
| 485 Expect.equals(el.elements[2], el.nodes[3]); | 485 Expect.equals(el.elements[2], el.nodes[3]); |
| 486 }); | 486 }); |
| 487 | 487 |
| 488 test('first', () { | |
| 489 var el = makeElementWithChildren(); | |
| 490 Expect.isTrue(el.elements.first is BRElement); | |
| 491 }); | |
| 492 | |
| 493 test('last', () { | 488 test('last', () { |
| 494 var el = makeElementWithChildren(); | 489 var el = makeElementWithChildren(); |
| 495 Expect.isTrue(el.elements.last() is InputElement); | 490 Expect.isTrue(el.elements.last() is InputElement); |
| 496 }); | 491 }); |
| 497 | 492 |
| 498 test('forEach', () { | 493 test('forEach', () { |
| 499 var els = []; | 494 var els = []; |
| 500 var el = makeElementWithChildren(); | 495 var el = makeElementWithChildren(); |
| 501 el.elements.forEach((n) => els.add(n)); | 496 el.elements.forEach((n) => els.add(n)); |
| 502 Expect.isTrue(els[0] is BRElement); | 497 Expect.isTrue(els[0] is BRElement); |
| 503 Expect.isTrue(els[1] is ImageElement); | 498 Expect.isTrue(els[1] is ImageElement); |
| 504 Expect.isTrue(els[2] is InputElement); | 499 Expect.isTrue(els[2] is InputElement); |
| 505 }); | 500 }); |
| 506 | 501 |
| 507 test('filter', () { | 502 test('filter', () { |
| 508 var filtered = makeElementWithChildren().elements. | 503 var filtered = makeElementWithChildren().elements. |
| 509 filter((n) => n is ImageElement); | 504 filter((n) => n is ImageElement); |
| 510 Expect.equals(1, filtered.length); | 505 Expect.equals(1, filtered.length); |
| 511 Expect.isTrue(filtered[0] is ImageElement); | 506 Expect.isTrue(filtered[0] is ImageElement); |
| 512 Expect.isTrue(filtered is ElementList); | 507 Expect.isTrue(filtered is List<Element>); |
| 513 }); | 508 }); |
| 514 | 509 |
| 515 test('every', () { | 510 test('every', () { |
| 516 var el = makeElementWithChildren(); | 511 var el = makeElementWithChildren(); |
| 517 Expect.isTrue(el.elements.every((n) => n is Element)); | 512 Expect.isTrue(el.elements.every((n) => n is Element)); |
| 518 Expect.isFalse(el.elements.every((n) => n is InputElement)); | 513 Expect.isFalse(el.elements.every((n) => n is InputElement)); |
| 519 }); | 514 }); |
| 520 | 515 |
| 521 test('some', () { | 516 test('some', () { |
| 522 var el = makeElementWithChildren(); | 517 var el = makeElementWithChildren(); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 test('removeLast', () { | 591 test('removeLast', () { |
| 597 var el = makeElementWithChildren(); | 592 var el = makeElementWithChildren(); |
| 598 Expect.isTrue(el.elements.removeLast() is InputElement); | 593 Expect.isTrue(el.elements.removeLast() is InputElement); |
| 599 Expect.equals(2, el.elements.length); | 594 Expect.equals(2, el.elements.length); |
| 600 Expect.isTrue(el.elements.removeLast() is ImageElement); | 595 Expect.isTrue(el.elements.removeLast() is ImageElement); |
| 601 Expect.equals(1, el.elements.length); | 596 Expect.equals(1, el.elements.length); |
| 602 }); | 597 }); |
| 603 | 598 |
| 604 test('getRange', () { | 599 test('getRange', () { |
| 605 var el = makeElementWithChildren(); | 600 var el = makeElementWithChildren(); |
| 606 Expect.isTrue(el.elements.getRange(1, 1) is ElementList); | 601 Expect.isTrue(el.elements.getRange(1, 1) is List<Element>); |
| 607 }); | 602 }); |
| 608 }); | 603 }); |
| 609 | 604 |
| 610 group('queryAll', () { | 605 group('queryAll', () { |
| 611 ElementList getQueryAll() { | 606 List<Element> getQueryAll() { |
| 612 return new Element.html(""" | 607 return new Element.html(""" |
| 613 <div> | 608 <div> |
| 614 <hr/> | 609 <hr/> |
| 615 <a class='q' href='http://dartlang.org'>Dart!</a> | 610 <a class='q' href='http://dartlang.org'>Dart!</a> |
| 616 <p> | 611 <p> |
| 617 <span class='q'>Hello</span>, | 612 <span class='q'>Hello</span>, |
| 618 <em>world</em>! | 613 <em>world</em>! |
| 619 </p> | 614 </p> |
| 620 <hr class='q'/> | 615 <hr class='q'/> |
| 621 </div> | 616 </div> |
| 622 """).queryAll('.q'); | 617 """).queryAll('.q'); |
| 623 } | 618 } |
| 624 | 619 |
| 625 ElementList getEmptyQueryAll() => new Element.tag('div').queryAll('img'); | 620 List<Element> getEmptyQueryAll() => new Element.tag('div').queryAll('img'); |
| 626 | 621 |
| 627 void testUnsupported(String name, void f()) { | 622 void testUnsupported(String name, void f()) { |
| 628 test(name, () { | 623 test(name, () { |
| 629 Expect.throws(f, (e) => e is UnsupportedOperationException); | 624 Expect.throws(f, (e) => e is UnsupportedOperationException); |
| 630 }); | 625 }); |
| 631 } | 626 } |
| 632 | 627 |
| 633 test('first', () { | |
| 634 Expect.isTrue(getQueryAll().first is AnchorElement); | |
| 635 }); | |
| 636 | |
| 637 test('last', () { | 628 test('last', () { |
| 638 Expect.isTrue(getQueryAll().last() is HRElement); | 629 Expect.isTrue(getQueryAll().last() is HRElement); |
| 639 }); | 630 }); |
| 640 | 631 |
| 641 test('forEach', () { | 632 test('forEach', () { |
| 642 var els = []; | 633 var els = []; |
| 643 getQueryAll().forEach((el) => els.add(el)); | 634 getQueryAll().forEach((el) => els.add(el)); |
| 644 Expect.isTrue(els[0] is AnchorElement); | 635 Expect.isTrue(els[0] is AnchorElement); |
| 645 Expect.isTrue(els[1] is SpanElement); | 636 Expect.isTrue(els[1] is SpanElement); |
| 646 Expect.isTrue(els[2] is HRElement); | 637 Expect.isTrue(els[2] is HRElement); |
| 647 }); | 638 }); |
| 648 | 639 |
| 649 test('map', () { | 640 test('map', () { |
| 650 var texts = getQueryAll().map((el) => el.text); | 641 var texts = getQueryAll().map((el) => el.text); |
| 651 Expect.listEquals(['Dart!', 'Hello', ''], texts); | 642 Expect.listEquals(['Dart!', 'Hello', ''], texts); |
| 652 }); | 643 }); |
| 653 | 644 |
| 654 test('filter', () { | 645 test('filter', () { |
| 655 var filtered = getQueryAll().filter((n) => n is SpanElement); | 646 var filtered = getQueryAll().filter((n) => n is SpanElement); |
| 656 Expect.equals(1, filtered.length); | 647 Expect.equals(1, filtered.length); |
| 657 Expect.isTrue(filtered[0] is SpanElement); | 648 Expect.isTrue(filtered[0] is SpanElement); |
| 658 Expect.isTrue(filtered is ElementList); | 649 Expect.isTrue(filtered is List<Element>); |
| 659 }); | 650 }); |
| 660 | 651 |
| 661 test('every', () { | 652 test('every', () { |
| 662 var el = getQueryAll(); | 653 var el = getQueryAll(); |
| 663 Expect.isTrue(el.every((n) => n is Element)); | 654 Expect.isTrue(el.every((n) => n is Element)); |
| 664 Expect.isFalse(el.every((n) => n is SpanElement)); | 655 Expect.isFalse(el.every((n) => n is SpanElement)); |
| 665 }); | 656 }); |
| 666 | 657 |
| 667 test('some', () { | 658 test('some', () { |
| 668 var el = getQueryAll(); | 659 var el = getQueryAll(); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 691 var els = []; | 682 var els = []; |
| 692 for (var subel in getQueryAll()) { | 683 for (var subel in getQueryAll()) { |
| 693 els.add(subel); | 684 els.add(subel); |
| 694 } | 685 } |
| 695 Expect.isTrue(els[0] is AnchorElement); | 686 Expect.isTrue(els[0] is AnchorElement); |
| 696 Expect.isTrue(els[1] is SpanElement); | 687 Expect.isTrue(els[1] is SpanElement); |
| 697 Expect.isTrue(els[2] is HRElement); | 688 Expect.isTrue(els[2] is HRElement); |
| 698 }); | 689 }); |
| 699 | 690 |
| 700 test('getRange', () { | 691 test('getRange', () { |
| 701 Expect.isTrue(getQueryAll().getRange(1, 1) is ElementList); | 692 Expect.isTrue(getQueryAll().getRange(1, 1) is List<Element>); |
| 702 }); | 693 }); |
| 703 | 694 |
| 704 testUnsupported('[]=', () => getQueryAll()[1] = new Element.tag('br')); | 695 testUnsupported('[]=', () => getQueryAll()[1] = new Element.tag('br')); |
| 705 testUnsupported('add', () => getQueryAll().add(new Element.tag('br'))); | 696 testUnsupported('add', () => getQueryAll().add(new Element.tag('br'))); |
| 706 testUnsupported('addLast', () => | 697 testUnsupported('addLast', () => |
| 707 getQueryAll().addLast(new Element.tag('br'))); | 698 getQueryAll().addLast(new Element.tag('br'))); |
| 708 | 699 |
| 709 testUnsupported('addAll', () { | 700 testUnsupported('addAll', () { |
| 710 getQueryAll().addAll([ | 701 getQueryAll().addAll([ |
| 711 new Element.tag('span'), | 702 new Element.tag('span'), |
| 712 new Element.tag('a'), | 703 new Element.tag('a'), |
| 713 new Element.tag('h1') | 704 new Element.tag('h1') |
| 714 ]); | 705 ]); |
| 715 }); | 706 }); |
| 716 | 707 |
| 717 testUnsupported('sort', () => getQueryAll().sort((a1, a2) => true)); | 708 testUnsupported('sort', () => getQueryAll().sort((a1, a2) => true)); |
| 718 | 709 |
| 719 testUnsupported('setRange', () => getQueryAll().setRange(0, 0, [])); | 710 testUnsupported('setRange', () => getQueryAll().setRange(0, 0, [])); |
| 720 | 711 |
| 721 testUnsupported('removeRange', () => getQueryAll().removeRange(0, 1)); | 712 testUnsupported('removeRange', () => getQueryAll().removeRange(0, 1)); |
| 722 | 713 |
| 723 testUnsupported('insertangeRange', () => getQueryAll().insertRange(0, 1)); | 714 testUnsupported('insertangeRange', () => getQueryAll().insertRange(0, 1)); |
| 724 | 715 |
| 725 testUnsupported('clear', () => getQueryAll().clear()); | 716 testUnsupported('clear', () => getQueryAll().clear()); |
| 726 | 717 |
| 727 testUnsupported('removeLast', () => getQueryAll().removeLast()); | 718 testUnsupported('removeLast', () => getQueryAll().removeLast()); |
| 728 }); | 719 }); |
| 729 | 720 |
| 730 group('_ElementList', () { | 721 group('_ElementList', () { |
| 731 ElementList makeElList() => makeElementWithChildren().elements; | 722 List<Element> makeElList() => makeElementWithChildren().elements; |
| 732 | |
| 733 test('first', () { | |
| 734 var els = makeElList(); | |
| 735 Expect.isTrue(els.first is BRElement); | |
| 736 }); | |
| 737 | 723 |
| 738 test('filter', () { | 724 test('filter', () { |
| 739 var filtered = makeElList().filter((n) => n is ImageElement); | 725 var filtered = makeElList().filter((n) => n is ImageElement); |
| 740 Expect.equals(1, filtered.length); | 726 Expect.equals(1, filtered.length); |
| 741 Expect.isTrue(filtered[0] is ImageElement); | 727 Expect.isTrue(filtered[0] is ImageElement); |
| 742 Expect.isTrue(filtered is ElementList); | 728 Expect.isTrue(filtered is List<Element>); |
| 743 }); | 729 }); |
| 744 | 730 |
| 745 test('getRange', () { | 731 test('getRange', () { |
| 746 var range = makeElList().getRange(1, 2); | 732 var range = makeElList().getRange(1, 2); |
| 747 Expect.isTrue(range is ElementList); | 733 Expect.isTrue(range is List<Element>); |
| 748 Expect.isTrue(range[0] is ImageElement); | 734 Expect.isTrue(range[0] is ImageElement); |
| 749 Expect.isTrue(range[1] is InputElement); | 735 Expect.isTrue(range[1] is InputElement); |
| 750 }); | 736 }); |
| 751 }); | 737 }); |
| 752 } | 738 } |
| OLD | NEW |