| Index: tests/html/element_test.dart
|
| diff --git a/tests/html/element_test.dart b/tests/html/element_test.dart
|
| index 7e137419a1317a5691d198ce6897c32a5e5872c4..c053a8cc2c877cd44e2172e8789d0eab62cd39a8 100644
|
| --- a/tests/html/element_test.dart
|
| +++ b/tests/html/element_test.dart
|
| @@ -285,6 +285,17 @@ main() {
|
| expect(firedEvent, false);
|
| e.click();
|
| expect(firedEvent, true);
|
| +
|
| + var e2 = new DivElement();
|
| + var firedEvent2 = false;
|
| + e2.onClick.filter('.foo').listen((event) {
|
| + firedEvent2 = true;
|
| + });
|
| + e2.click();
|
| + expect(firedEvent2, false);
|
| + e2.classes.add('foo');
|
| + e2.click();
|
| + expect(firedEvent2, true);
|
| });
|
| });
|
|
|
| @@ -728,4 +739,68 @@ main() {
|
| expect(range[1], isInputElement);
|
| });
|
| });
|
| +
|
| + group('eventDelegation', () {
|
| + test('filter', () {
|
| + Element elem = new Element.div()..classes.addAll(['a', 'b']);
|
| + Element img = new Element.img()
|
| + ..classes.addAll(['b', 'a', 'd'])
|
| + ..id = 'cookie';
|
| + Element input = new InputElement()..classes.addAll(['c', 'd']);
|
| + var div = new Element.div()
|
| + ..classes.add('a')
|
| + ..id = 'wat';
|
| + document.body.append(elem);
|
| + document.body.append(img);
|
| + document.body.append(input);
|
| + document.body.append(div);
|
| +
|
| + var firedEvent = false;
|
| + var elems = queryAll('.a');
|
| + queryAll('.a').onClick.listen((event) {
|
| + firedEvent = true;
|
| + });
|
| + expect(firedEvent, false);
|
| + query('.c').click();
|
| + expect(firedEvent, false);
|
| + query('#wat').click();
|
| + expect(firedEvent, true);
|
| +
|
| + var firedEvent4 = false;
|
| + queryAll('.a').onClick.filter('.d').listen((event) {
|
| + firedEvent4 = true;
|
| + });
|
| + expect(firedEvent4, false);
|
| + query('.c').click();
|
| + expect(firedEvent4, false);
|
| + query('#wat').click();
|
| + expect(firedEvent4, false);
|
| + query('#cookie').click();
|
| + expect(firedEvent4, true);
|
| +
|
| + var firedEvent2 = false;
|
| + queryAll('.a').onClick.listen((event) {
|
| + firedEvent2 = true;
|
| + });
|
| + Element elem2 = new Element.html('<div class="a"><br/>');
|
| + document.body.append(elem2);
|
| + elem2.click();
|
| + expect(firedEvent2, false);
|
| + elem2.classes.add('a');
|
| + elem2.click();
|
| + expect(firedEvent2, false);
|
| +
|
| + var firedEvent3 = false;
|
| + queryAll(':root').onClick.filter('.a').listen((event) {
|
| + firedEvent3 = true;
|
| + });
|
| + Element elem3 = new Element.html('<div class="d"><br/>');
|
| + document.body.append(elem3);
|
| + elem3.click();
|
| + expect(firedEvent3, false);
|
| + elem3.classes.add('a');
|
| + elem3.click();
|
| + expect(firedEvent3, true);
|
| + });
|
| + });
|
| }
|
|
|