| 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:async'; | 8 import 'dart:async'; |
| 9 import 'dart:html'; | 9 import 'dart:html'; |
| 10 import 'dart:svg' as svg; | 10 import 'dart:svg' as svg; |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 group('click', () { | 278 group('click', () { |
| 279 test('clickEvent', () { | 279 test('clickEvent', () { |
| 280 var e = new DivElement(); | 280 var e = new DivElement(); |
| 281 var firedEvent = false; | 281 var firedEvent = false; |
| 282 e.onClick.listen((event) { | 282 e.onClick.listen((event) { |
| 283 firedEvent = true; | 283 firedEvent = true; |
| 284 }); | 284 }); |
| 285 expect(firedEvent, false); | 285 expect(firedEvent, false); |
| 286 e.click(); | 286 e.click(); |
| 287 expect(firedEvent, true); | 287 expect(firedEvent, true); |
| 288 |
| 289 var e2 = new DivElement(); |
| 290 var firedEvent2 = false; |
| 291 e2.onClick.filter('.foo').listen((event) { |
| 292 firedEvent2 = true; |
| 293 }); |
| 294 e2.click(); |
| 295 expect(firedEvent2, false); |
| 296 e2.classes.add('foo'); |
| 297 e2.click(); |
| 298 expect(firedEvent2, true); |
| 288 }); | 299 }); |
| 289 }); | 300 }); |
| 290 | 301 |
| 291 group('attributes', () { | 302 group('attributes', () { |
| 292 test('manipulation', () { | 303 test('manipulation', () { |
| 293 final element = new Element.html( | 304 final element = new Element.html( |
| 294 '''<div class="foo" style="overflow: hidden" data-foo="bar" | 305 '''<div class="foo" style="overflow: hidden" data-foo="bar" |
| 295 data-foo2="bar2" dir="rtl"> | 306 data-foo2="bar2" dir="rtl"> |
| 296 </div>'''); | 307 </div>'''); |
| 297 final attributes = element.attributes; | 308 final attributes = element.attributes; |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 721 expect(filtered, isElementIterable); | 732 expect(filtered, isElementIterable); |
| 722 }); | 733 }); |
| 723 | 734 |
| 724 test('sublist', () { | 735 test('sublist', () { |
| 725 var range = makeElList().sublist(1, 3); | 736 var range = makeElList().sublist(1, 3); |
| 726 expect(range, isElementList); | 737 expect(range, isElementList); |
| 727 expect(range[0], isImageElement); | 738 expect(range[0], isImageElement); |
| 728 expect(range[1], isInputElement); | 739 expect(range[1], isInputElement); |
| 729 }); | 740 }); |
| 730 }); | 741 }); |
| 742 |
| 743 group('eventDelegation', () { |
| 744 test('filter', () { |
| 745 Element elem = new Element.div()..classes.addAll(['a', 'b']); |
| 746 Element img = new Element.img() |
| 747 ..classes.addAll(['b', 'a', 'd']) |
| 748 ..id = 'cookie'; |
| 749 Element input = new InputElement()..classes.addAll(['c', 'd']); |
| 750 var div = new Element.div() |
| 751 ..classes.add('a') |
| 752 ..id = 'wat'; |
| 753 document.body.append(elem); |
| 754 document.body.append(img); |
| 755 document.body.append(input); |
| 756 document.body.append(div); |
| 757 |
| 758 var firedEvent = false; |
| 759 var elems = queryAll('.a'); |
| 760 queryAll('.a').onClick.listen((event) { |
| 761 firedEvent = true; |
| 762 }); |
| 763 expect(firedEvent, false); |
| 764 query('.c').click(); |
| 765 expect(firedEvent, false); |
| 766 query('#wat').click(); |
| 767 expect(firedEvent, true); |
| 768 |
| 769 var firedEvent4 = false; |
| 770 queryAll('.a').onClick.filter('.d').listen((event) { |
| 771 firedEvent4 = true; |
| 772 }); |
| 773 expect(firedEvent4, false); |
| 774 query('.c').click(); |
| 775 expect(firedEvent4, false); |
| 776 query('#wat').click(); |
| 777 expect(firedEvent4, false); |
| 778 query('#cookie').click(); |
| 779 expect(firedEvent4, true); |
| 780 |
| 781 var firedEvent2 = false; |
| 782 queryAll('.a').onClick.listen((event) { |
| 783 firedEvent2 = true; |
| 784 }); |
| 785 Element elem2 = new Element.html('<div class="a"><br/>'); |
| 786 document.body.append(elem2); |
| 787 elem2.click(); |
| 788 expect(firedEvent2, false); |
| 789 elem2.classes.add('a'); |
| 790 elem2.click(); |
| 791 expect(firedEvent2, false); |
| 792 |
| 793 var firedEvent3 = false; |
| 794 queryAll(':root').onClick.filter('.a').listen((event) { |
| 795 firedEvent3 = true; |
| 796 }); |
| 797 Element elem3 = new Element.html('<div class="d"><br/>'); |
| 798 document.body.append(elem3); |
| 799 elem3.click(); |
| 800 expect(firedEvent3, false); |
| 801 elem3.classes.add('a'); |
| 802 elem3.click(); |
| 803 expect(firedEvent3, true); |
| 804 }); |
| 805 }); |
| 731 } | 806 } |
| OLD | NEW |