OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 EventCustomEventTest; | 5 library EventCustomEventTest; |
6 import '../../pkg/unittest/lib/unittest.dart'; | 6 import '../../pkg/unittest/lib/unittest.dart'; |
7 import '../../pkg/unittest/lib/html_config.dart'; | 7 import '../../pkg/unittest/lib/html_config.dart'; |
8 import 'dart:html'; | 8 import 'dart:html'; |
9 | 9 |
10 // TODO(nweiz): Make this private to testEvents when Frog supports closures with | 10 // TODO(nweiz): Make this private to testEvents when Frog supports closures with |
11 // optional arguments. | 11 // optional arguments. |
12 eventTest(String name, Event eventFn(), void validate(Event), | 12 eventTest(String name, Event eventFn(), void validate(Event), |
13 [String type = 'foo']) { | 13 [String type = 'foo']) { |
14 test(name, () { | 14 test(name, () { |
15 final el = new Element.tag('div'); | 15 final el = new Element.tag('div'); |
16 var fired = false; | 16 var fired = false; |
17 el.on[type].add((ev) { | 17 el.on[type].add((ev) { |
18 fired = true; | 18 fired = true; |
19 validate(ev); | 19 validate(ev); |
20 }); | 20 }); |
21 el.on[type].dispatch(eventFn()); | 21 el.on[type].dispatch(eventFn()); |
22 expect(fired, isTrue, reason: 'Expected event to be dispatched.'); | 22 expect(fired, isTrue, reason: 'Expected event to be dispatched.'); |
23 }); | 23 }); |
24 } | 24 } |
25 | 25 |
26 main() { | 26 main() { |
27 useHtmlConfiguration(); | 27 useHtmlConfiguration(); |
28 | 28 |
29 eventTest('CustomEvent.initCustomEvent', () { | 29 test('custom events', () { |
30 return new CustomEvent('foo', canBubble: false, cancelable: false, | 30 var provider = new EventStreamProvider<CustomEvent>('foo'); |
| 31 var el = new DivElement(); |
| 32 |
| 33 var fired = false; |
| 34 provider.forTarget(el).listen((ev) { |
| 35 fired = true; |
| 36 expect(ev.detail, 'detail'); |
| 37 }); |
| 38 |
| 39 var ev = new CustomEvent('foo', canBubble: false, cancelable: false, |
31 detail: 'detail'); | 40 detail: 'detail'); |
32 }, | 41 el.dispatchEvent(ev); |
33 (ev) { expect(ev.detail, equals('detail')); }); | 42 expect(fired, isTrue); |
| 43 }); |
34 } | 44 } |
OLD | NEW |