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

Side by Side Diff: packages/polymer/test/event_handlers_test.dart

Issue 2312183003: Removed Polymer from Observatory deps (Closed)
Patch Set: Created 4 years, 3 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
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 library polymer.test.event_handlers_test;
6
7 import 'dart:async';
8 import 'dart:html';
9
10 import 'package:polymer/polymer.dart';
11 import 'package:template_binding/template_binding.dart';
12 import 'package:unittest/unittest.dart';
13 import 'package:unittest/html_config.dart';
14
15 @CustomTag('x-test')
16 class XTest extends PolymerElement {
17 int _testCount = 0;
18 String _lastEvent;
19 String _lastMessage;
20 List list1 = toObservable([]);
21 List list2 = toObservable([]);
22 Future _onTestDone;
23
24 XTest.created() : super.created();
25
26 @override
27 parseDeclaration(elementElement) {
28 var template = fetchTemplate(elementElement);
29 if (template != null) {
30 lightFromTemplate(template);
31 }
32 }
33
34 ready() {
35 super.ready();
36 for (var i = 0; i < 10; i++) {
37 var model = new MiniModel(this, i);
38 list1.add(model);
39 list2.add(model);
40 }
41
42 _onTestDone = new Future.sync(_runTests);
43 }
44
45 hostTapAction(event, detail, node) => _logEvent(event);
46
47 divTapAction(event, detail, node) => _logEvent(event);
48
49 focusAction(event, detail, node) => _logEvent(event);
50
51 blurAction(event, detail, node) => _logEvent(event);
52
53 scrollAction(event, detail, node) => _logEvent(event);
54
55 itemTapAction(event, detail, node) {
56 var model = nodeBind(event.target).templateInstance.model;
57 _logEvent(event, "x-test callback ${model['this']}");
58 }
59
60 _logEvent(event, [message]) {
61 _testCount++;
62 _lastEvent = event.type;
63 _lastMessage = message;
64 }
65
66 Future _runTests() {
67 fire('tap', onNode: $['div']);
68 expect(_testCount, 2, reason: 'event heard at div and host');
69 expect(_lastEvent, 'tap', reason: 'tap handled');
70 fire('focus', onNode: $['input'], canBubble: false);
71 expect(_testCount, 3, reason: 'event heard by input');
72 expect(_lastEvent, 'focus', reason: 'focus handled');
73 fire('blur', onNode: $['input'], canBubble: false);
74 expect(_testCount, 4, reason: 'event heard by input');
75 expect(_lastEvent, 'blur', reason: 'blur handled');
76 fire('scroll', onNode: $['list'], canBubble: false);
77 expect(_testCount, 5, reason: 'event heard by list');
78 expect(_lastEvent, 'scroll', reason: 'scroll handled');
79
80 return onMutation($['list']).then((_) {
81 var l1 = $['list'].querySelectorAll('.list1')[4];
82 fire('tap', onNode: l1, canBubble: false);
83 expect(_testCount, 6, reason: 'event heard by list1 item');
84 expect(_lastEvent, 'tap', reason: 'tap handled');
85 expect(_lastMessage, 'x-test callback <mini-model 4>');
86
87 var l2 = $['list'].querySelectorAll('.list2')[3];
88 fire('tap', onNode: l2, canBubble: false);
89 expect(_testCount, 7, reason: 'event heard by list2 item');
90 expect(_lastEvent, 'tap', reason: 'tap handled by model');
91 expect(_lastMessage, 'x-test callback x-test');
92 });
93 }
94 }
95
96 class MiniModel extends Observable {
97 XTest _element;
98 @observable final int index;
99 @reflectable void itemTapAction(e, d, n) {
100 _element._logEvent(e, 'mini-model callback $this');
101 e.stopPropagation();
102 }
103 MiniModel(this._element, this.index);
104 String toString() => "<mini-model $index>";
105 }
106
107 main() => initPolymer();
108
109 @initMethod init() {
110 useHtmlConfiguration();
111
112 setUp(() => Polymer.onReady);
113 test('events handled', () {
114 XTest test = querySelector('x-test');
115 expect(test._onTestDone, isNotNull, reason: 'ready was called');
116 return test._onTestDone;
117 });
118 }
OLDNEW
« no previous file with comments | « packages/polymer/test/event_controller_test.html ('k') | packages/polymer/test/event_handlers_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698