Chromium Code Reviews| Index: pkg/polymer/test/event_handlers_test.dart |
| diff --git a/pkg/polymer/test/event_handlers_test.dart b/pkg/polymer/test/event_handlers_test.dart |
| index 779ccb65a239cf598f3bcdf8bbc5c7948f8391c2..31380465d20eeb7801e36bdf32d7db75b907c3d5 100644 |
| --- a/pkg/polymer/test/event_handlers_test.dart |
| +++ b/pkg/polymer/test/event_handlers_test.dart |
| @@ -7,10 +7,11 @@ library polymer.test.event_handlers_test; |
| import 'dart:async'; |
| import 'dart:html'; |
| -import 'package:unittest/unittest.dart'; |
| -import 'package:unittest/html_config.dart'; |
| +import 'package:logging/logging.dart'; |
| import 'package:polymer/polymer.dart'; |
| import 'package:template_binding/template_binding.dart'; |
| +import 'package:unittest/unittest.dart'; |
| +import 'package:unittest/html_config.dart'; |
| @CustomTag('x-test') |
| class XTest extends PolymerElement { |
| @@ -19,12 +20,9 @@ class XTest extends PolymerElement { |
| String _lastMessage; |
| List list1 = []; |
| List list2 = []; |
| - final _ready = new Completer(); |
| - Future _onTestDone; |
| + final _onTestDone = new Completer(); |
| - XTest.created() : super.created() { |
| - _onTestDone = _ready.future.then(_runTest); |
| - } |
| + XTest.created() : super.created(); |
| ready() { |
| super.ready(); |
| @@ -33,7 +31,10 @@ class XTest extends PolymerElement { |
| list1.add(model); |
| list2.add(model); |
| } |
| - _ready.complete(); |
| + |
| + // TODO(jmesserly): is there a cleaner way to do this? |
| + new Future.sync(_runTests).then((x) { _onTestDone.complete(x); }, |
| + onError: (e, s) { _onTestDone.completeError(e, s); }); |
|
Siggi Cherem (dart-lang)
2013/10/29 22:49:49
I'm still surprised by this. Especially that you n
Jennifer Messerly
2013/10/29 23:07:19
you're right. ready will be called sync from creat
|
| } |
| hostTapAction(event, detail, node) => _logEvent(event); |
| @@ -57,7 +58,7 @@ class XTest extends PolymerElement { |
| _lastMessage = message; |
| } |
| - _runTest(_) { |
| + Future _runTests() { |
| fire('tap', toNode: $['div']); |
| expect(_testCount, 2, reason: 'event heard at div and host'); |
| expect(_lastEvent, 'tap', reason: 'tap handled'); |
| @@ -70,6 +71,7 @@ class XTest extends PolymerElement { |
| fire('scroll', toNode: $['list'], canBubble: false); |
| expect(_testCount, 5, reason: 'event heard by list'); |
| expect(_lastEvent, 'scroll', reason: 'scroll handled'); |
| + |
| return onMutation($['list']).then((_) { |
| var l1 = $['list'].querySelectorAll('.list1')[4]; |
| fire('tap', toNode: l1, canBubble: false); |
| @@ -103,6 +105,9 @@ class MiniModel extends Observable { |
| } |
| main() { |
| + Logger.root..level = Level.FINE |
| + ..onRecord.listen((m) => print('${m.loggerName} ${m.message}')); |
| + |
| initPolymer(); |
| } |