Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(353)

Side by Side Diff: tests/html/streams_test.dart

Issue 11824072: Adding streams to dart:html. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 library streams_test;
2 import '../../pkg/unittest/lib/unittest.dart';
3 import '../../pkg/unittest/lib/html_config.dart';
4 import 'dart:async';
5 import 'dart:html';
6
7 main() {
8 useHtmlConfiguration();
9
10 test('simple', () {
11 var a = new TextInputElement();
12 document.body.append(a);
13
14 var callCount = 0;
15 a.onFocus.listen((Event e) {
16 ++callCount;
17 });
18
19 a.focus();
20 expect(callCount, 1);
21 });
22
23 // Validates that events are not automatically unsubscribed.
24 test('unsubscribeOnError', () {
25 var a = new TextInputElement();
26 document.body.append(a);
27
28 var b = new TextInputElement();
29 document.body.append(b);
30
31 var callCountOne = 0;
32 var callCountTwo = 0;
33 var callCountThree = 0;
34 // Unsubscribe on error handlers still get their events.
Jennifer Messerly 2013/01/11 21:57:17 Q: what is the effect of unsubscribeOnError? I thi
blois 2013/01/11 22:51:30 We have no way of triggering unsubscribeOnError fo
floitsch 2013/01/11 22:55:45 Correct. unsubscribeOnError (similar to the onErro
Jennifer Messerly 2013/01/11 23:30:14 Makes sense. Thanks for clarifying!
35 a.onFocus.listen((Event e) {
36 ++callCountOne;
37 throw 'this error should not cause any problems.';
38 }, unsubscribeOnError:true);
Jennifer Messerly 2013/01/11 21:57:17 I think we usually have space after : in named arg
blois 2013/01/11 22:51:30 Done.
39
40 // Handler which throws an exception should still get events.
41 a.onFocus.listen((Event e) {
42 ++callCountTwo;
43 if (callCountTwo == 0) {
44 throw 'this error should not cause any problems.';
45 }
46 });
47
48 // Standard handler should still always get events
49 a.onFocus.listen((Event e) {
50 ++callCountThree;
51 });
52
53 a.focus();
54 b.focus();
55 a.focus();
56 expect(callCountOne, 2);
57 expect(callCountTwo, 2);
58 expect(callCountThree, 2);
59 });
60
61 // Validates that capturing events fire on parent before child.
62 test('capture', () {
63 var parent = new DivElement();
64 document.body.append(parent);
65
66 var child = new TextInputElement();
67 parent.append(child);
68
69 var childCallCount = 0;
70 var parentCallCount = 0;
71 Element.focusEvent.forTarget(parent, useCapture:true).listen((Event e) {
72 ++parentCallCount;
73 expect(childCallCount, 0);
74 });
75
76 Element.focusEvent.forTarget(child, useCapture:true).listen((Event e) {
77 ++childCallCount;
78 expect(parentCallCount, 1);
79 });
80
81 child.focus();
82 expect(childCallCount, 1);
83 expect(parentCallCount, 1);
84 });
85 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698