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