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

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

Issue 23451006: Changing onCreated callback to created. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 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 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 custom_elements_test; 5 library custom_elements_test;
6 import 'dart:async'; 6 import 'dart:async';
7 import 'dart:html'; 7 import 'dart:html';
8 import 'package:unittest/html_individual_config.dart'; 8 import 'package:unittest/html_individual_config.dart';
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 10
11 class CustomMixin { 11 class CustomMixin {
12 var mixinMethodCalled; 12 var mixinMethodCalled;
13 13
14 void mixinMethod() { 14 void mixinMethod() {
15 mixinMethodCalled = true; 15 mixinMethodCalled = true;
16 } 16 }
17 } 17 }
18 18
19 class CustomType extends HtmlElement with CustomMixin{ 19 class CustomType extends HtmlElement with CustomMixin{
20 factory CustomType() => null; 20 factory CustomType() => null;
21 bool onCreatedCalled; // = false; 21 bool createdCalled; // = false;
22 void onCreated() { 22 void created() {
23 onCreatedCalled = true; 23 createdCalled = true;
24 customCreatedCount++; 24 customCreatedCount++;
25 } 25 }
26 26
27 void invokeMixinMethod() { 27 void invokeMixinMethod() {
28 mixinMethod(); 28 mixinMethod();
29 } 29 }
30 } 30 }
31 31
32 int customCreatedCount = 0; 32 int customCreatedCount = 0;
33 33
(...skipping 20 matching lines...) Expand all
54 setUp(loadPolyfills); 54 setUp(loadPolyfills);
55 55
56 group('register', () { 56 group('register', () {
57 test('register', () { 57 test('register', () {
58 var tag = nextTag; 58 var tag = nextTag;
59 document.register(tag, CustomType); 59 document.register(tag, CustomType);
60 60
61 var element = new Element.tag(tag); 61 var element = new Element.tag(tag);
62 expect(element, isNotNull); 62 expect(element, isNotNull);
63 expect(element is CustomType, isTrue); 63 expect(element is CustomType, isTrue);
64 expect(element.onCreatedCalled, isTrue); 64 expect(element.createdCalled, isTrue);
65 }); 65 });
66 66
67 test('register twice', () { 67 test('register twice', () {
68 var tag = nextTag; 68 var tag = nextTag;
69 document.register(tag, CustomType); 69 document.register(tag, CustomType);
70 expect(() { 70 expect(() {
71 document.register(tag, CustomType); 71 document.register(tag, CustomType);
72 }, throws, reason: 'Cannot register a tag more than once.'); 72 }, throws, reason: 'Cannot register a tag more than once.');
73 73
74 var newTag = nextTag; 74 var newTag = nextTag;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 preElement.onFocus.listen((_) { 114 preElement.onFocus.listen((_) {
115 firedOnPre = true; 115 firedOnPre = true;
116 }); 116 });
117 117
118 document.register(tag, CustomType); 118 document.register(tag, CustomType);
119 Platform.upgradeCustomElements(dom); 119 Platform.upgradeCustomElements(dom);
120 120
121 var postElement = dom.children[0]; 121 var postElement = dom.children[0];
122 expect(postElement, isNotNull); 122 expect(postElement, isNotNull);
123 expect(postElement is CustomType, isTrue); 123 expect(postElement is CustomType, isTrue);
124 expect(postElement.onCreatedCalled, isTrue); 124 expect(postElement.createdCalled, isTrue);
125 125
126 // Element from first query remains an UnknownElement. 126 // Element from first query remains an UnknownElement.
127 expect(preElement is HtmlElement, isTrue); 127 expect(preElement is HtmlElement, isTrue);
128 expect(preElement.parent, dom); 128 expect(preElement.parent, dom);
129 expect(dom.children.length, 1); 129 expect(dom.children.length, 1);
130 130
131 var firedOnPost = false; 131 var firedOnPost = false;
132 postElement.onFocus.listen((_) { 132 postElement.onFocus.listen((_) {
133 firedOnPost = true; 133 firedOnPost = true;
134 }); 134 });
135 // Event handlers persist on old and new element. 135 // Event handlers persist on old and new element.
136 postElement.dispatchEvent(new Event('focus')); 136 postElement.dispatchEvent(new Event('focus'));
137 expect(firedOnPre, isTrue); 137 expect(firedOnPre, isTrue);
138 expect(firedOnPost, isTrue); 138 expect(firedOnPost, isTrue);
139 }); 139 });
140 });*/ 140 });*/
141 141
142 group('innerHtml', () { 142 group('innerHtml', () {
143 test('query', () { 143 test('query', () {
144 var tag = nextTag; 144 var tag = nextTag;
145 document.register(tag, CustomType); 145 document.register(tag, CustomType);
146 var element = new DivElement(); 146 var element = new DivElement();
147 element.innerHtml = '<$tag></$tag>'; 147 element.innerHtml = '<$tag></$tag>';
148 document.body.nodes.add(element); 148 document.body.nodes.add(element);
149 var queried = query(tag); 149 var queried = query(tag);
150 150
151 expect(queried, isNotNull); 151 expect(queried, isNotNull);
152 expect(queried is CustomType, isTrue); 152 expect(queried is CustomType, isTrue);
153 expect(queried.onCreatedCalled, isTrue); 153 expect(queried.createdCalled, isTrue);
154 }); 154 });
155 155
156 test('query id', () { 156 test('query id', () {
157 var tag = nextTag; 157 var tag = nextTag;
158 document.register(tag, CustomType); 158 document.register(tag, CustomType);
159 var element = new DivElement(); 159 var element = new DivElement();
160 element.innerHtml = '<$tag id="someid"></$tag>'; 160 element.innerHtml = '<$tag id="someid"></$tag>';
161 document.body.nodes.add(element); 161 document.body.nodes.add(element);
162 var queried = query('#someid'); 162 var queried = query('#someid');
163 163
164 expect(queried, isNotNull); 164 expect(queried, isNotNull);
165 expect(queried is CustomType, isTrue); 165 expect(queried is CustomType, isTrue);
166 expect(queried.id, "someid"); 166 expect(queried.id, "someid");
167 }); 167 });
168 }); 168 });
169 169
170 group('lifecycle', () { 170 group('lifecycle', () {
171 test('onCreated', () { 171 test('created', () {
172 int oldCount = customCreatedCount; 172 int oldCount = customCreatedCount;
173 var tag = nextTag; 173 var tag = nextTag;
174 document.register(tag, CustomType); 174 document.register(tag, CustomType);
175 var element = new DivElement(); 175 var element = new DivElement();
176 element.innerHtml = '<$tag></$tag>'; 176 element.innerHtml = '<$tag></$tag>';
177 Platform.upgradeCustomElements(element); 177 Platform.upgradeCustomElements(element);
178 document.body.nodes.add(element); 178 document.body.nodes.add(element);
179 expect(customCreatedCount, oldCount + 1); 179 expect(customCreatedCount, oldCount + 1);
180 }); 180 });
181 }); 181 });
182 182
183 group('mixins', () { 183 group('mixins', () {
184 test('can invoke mixin methods', () { 184 test('can invoke mixin methods', () {
185 var tag = nextTag; 185 var tag = nextTag;
186 document.register(tag, CustomType); 186 document.register(tag, CustomType);
187 187
188 var element = new Element.tag(tag); 188 var element = new Element.tag(tag);
189 element.invokeMixinMethod(); 189 element.invokeMixinMethod();
190 expect(element.mixinMethodCalled, isTrue); 190 expect(element.mixinMethodCalled, isTrue);
191 }); 191 });
192 }); 192 });
193 } 193 }
OLDNEW
« no previous file with comments | « tests/html/custom/created_callback_test.dart ('k') | tools/dom/src/dart2js_CustomElementSupport.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698