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

Side by Side Diff: pkg/polymer/test/event_path_declarative_test.dart

Issue 44573005: Update polymer to commit b7200854b2441a22ce89f6563963f36c50f5150d (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
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.
4
5 // This is ported from event-path-declarative-test.dart in polymer/test/html/.
6 // While the original test was intended to test event.path support, we changed
7 // the test structure just to check that the event was handled in the expected
8 // order.
9 library polymer.test.event_path_declarative_test;
10
11 import 'dart:async';
12 import 'dart:collection';
13 import 'dart:html';
14
15 @MirrorsUsed(targets: const [XZug, XFoo, XBar],
16 override: 'polymer.test.event_path_declarative_test')
Jennifer Messerly 2013/10/25 22:00:41 consider: using @reflectable instead. it's cleaner
Siggi Cherem (dart-lang) 2013/10/26 00:02:35 good point. done.
17 import 'dart:mirrors';
18
19 import 'package:unittest/unittest.dart';
20 import 'package:unittest/html_config.dart';
21 import 'package:polymer/polymer.dart';
22 import 'package:template_binding/template_binding.dart';
23 import 'package:polymer/platform.dart' as Platform;
24
25 var _observedEvents = [];
26 var _testFired;
27
28 main() => initPolymer();
29
30 class XZug extends PolymerElement {
31
32 XZug.created() : super.created();
33
34 ready() {
35 shadowRoot.on['test-event'].listen((e) {
36 _testFired.complete(null);
37 });
38 }
39
40
41 contentTestEventHandler(e, detail, sender) {
42 _observedEvents.add(sender);
43 }
44
45 divTestEventHandler(e, detail, sender) {
46 _observedEvents.add(sender);
47 }
48
49 testEventHandler(e, detail, sender) {
50 _observedEvents.add(sender);
51 }
52 }
53
54 class XFoo extends PolymerElement {
55 XFoo.created() : super.created();
56
57 contentTestEventHandler(e, detail, sender) {
58 _observedEvents.add(sender);
59 }
60
61 divTestEventHandler(e, detail, sender) {
62 _observedEvents.add(sender);
63 }
64
65 testEventHandler(e, detail, sender) {
66 _observedEvents.add(sender);
67 }
68 }
69
70 class XBar extends PolymerElement {
71 XBar.created() : super.created();
72
73 contentTestEventHandler(e, detail, sender) {
74 _observedEvents.add(sender);
75 }
76
77 divTestEventHandler(e, detail, sender) {
78 _observedEvents.add(sender);
79 }
80
81 testEventHandler(e, detail, sender) {
82 _observedEvents.add(sender);
83 }
84 }
85
86 @initMethod _init() {
87 useHtmlConfiguration();
88 // TODO(sigmund): switch back to use @CustomTag. We seem to be running into a
89 // problem where using @CustomTag doesn't guarantee that we register the tags
90 // in the following order (the query from mirrors is non deterministic).
91 // We shouldn't care about registration order though. See dartbug.com/14459
Jennifer Messerly 2013/10/25 22:00:41 hmmm. I think registration order does matter. Gene
Siggi Cherem (dart-lang) 2013/10/26 00:02:35 we talked about this offline - I'll keep the comme
92 Polymer.register('x-zug', XZug);
93 Polymer.register('x-foo', XFoo);
94 Polymer.register('x-bar', XBar);
95
96 _testFired = new Completer();
97
98 setUp(() => Polymer.onReady);
99 test('event paths', () {
100 var target = document.querySelector('#target');
101 target.dispatchEvent(new CustomEvent('test-event', canBubble: true));
102 return _testFired.future.then((_) {
103 var xBar = querySelector('x-bar');
104 var xBarDiv = xBar.shadowRoot.querySelector('#xBarDiv');
105 var xBarContent = xBar.shadowRoot.querySelector('#xBarContent');
106 var xFoo = xBar.shadowRoot.querySelector('x-foo');
107 var xFooDiv = xFoo.shadowRoot.querySelector('#xFooDiv');
108 var xFooContent = xFoo.shadowRoot.querySelector('#xFooContent');
109 var xZug = xFoo.shadowRoot.querySelector('x-zug');
110 var xZugDiv = xZug.shadowRoot.querySelector('#xZugDiv');
111 var xZugContent = xZug.shadowRoot.querySelector('#xZugContent');
112
113 var expectedPath = [ xBarContent, xBarDiv, xFooContent,
114 xZugContent, xZugDiv, xZug, xFooDiv, xFoo, xBar];
115 debugName(e) => '${e.localName}#${e.id}';
116 expect(_observedEvents, expectedPath, reason:
117 '<br>\nexpected: ${expectedPath.map(debugName).join(',')}'
118 '<br>\nactual: ${_observedEvents.map(debugName).join(',')}'
119 );
120 });
121 });
122 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698