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

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

Issue 896723009: Annotate dart:html constructor expressions with precise non-nullable types. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 element_types; 5 library element_types;
6 import 'package:unittest/unittest.dart'; 6 import 'package:unittest/unittest.dart';
7 import 'package:unittest/html_individual_config.dart'; 7 import 'package:unittest/html_individual_config.dart';
8 import 'dart:html'; 8 import 'dart:html';
9 9
10 main() { 10 main() {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 expect(TemplateElement.supported, true); 75 expect(TemplateElement.supported, true);
76 }); 76 });
77 }); 77 });
78 78
79 group('supported_track', () { 79 group('supported_track', () {
80 test('supported', () { 80 test('supported', () {
81 expect(TrackElement.supported, true); 81 expect(TrackElement.supported, true);
82 }); 82 });
83 }); 83 });
84 84
85 check(String name, bool fn(), [bool supported = true]) {
86 test(name, () {
87 var expectation = supported ? returnsNormally : throws;
88 expect(() {
89 expect(fn(), isTrue);
90 }, expectation);
91 });
92
93 }
94 85
95 group('constructors', () { 86 group('constructors', () {
87 check(String name, bool fn(), [bool supported = true]) {
88 test(name, () {
89 var expectation = supported ? returnsNormally : throws;
90 expect(() {
91 expect(fn(), isTrue);
92 }, expectation);
93 });
94 }
95
96 check('a', () => new AnchorElement() is AnchorElement); 96 check('a', () => new AnchorElement() is AnchorElement);
97 check('area', () => new AreaElement() is AreaElement); 97 check('area', () => new AreaElement() is AreaElement);
98 check('audio', () => new AudioElement() is AudioElement); 98 check('audio', () => new AudioElement() is AudioElement);
99 check('body', () => new BodyElement() is BodyElement); 99 check('body', () => new BodyElement() is BodyElement);
100 check('br', () => new BRElement() is BRElement); 100 check('br', () => new BRElement() is BRElement);
101 check('base', () => new BaseElement() is BaseElement); 101 check('base', () => new BaseElement() is BaseElement);
102 check('button', () => new ButtonElement() is ButtonElement); 102 check('button', () => new ButtonElement() is ButtonElement);
103 check('canvas', () => new CanvasElement() is CanvasElement); 103 check('canvas', () => new CanvasElement() is CanvasElement);
104 check('caption', () => new TableCaptionElement() is TableCaptionElement); 104 check('caption', () => new TableCaptionElement() is TableCaptionElement);
105 check('content', () => new ContentElement() is ContentElement, 105 check('content', () => new ContentElement() is ContentElement,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 178
179 test('accepts li', () { 179 test('accepts li', () {
180 var ul = new UListElement(); 180 var ul = new UListElement();
181 var li = new LIElement(); 181 var li = new LIElement();
182 ul.append(li); 182 ul.append(li);
183 }); 183 });
184 }); 184 });
185 check('video', () => new VideoElement() is VideoElement); 185 check('video', () => new VideoElement() is VideoElement);
186 check('unknown', () => new Element.tag('someunknown') is UnknownElement); 186 check('unknown', () => new Element.tag('someunknown') is UnknownElement);
187 }); 187 });
188
189 group('constructors_dynamic', () {
190 check(String name, create(), bool typeTest(e), [bool supported = true]) {
191 test(name, () {
192 var expectation = supported ? returnsNormally : throws;
193 expect(() {
194 expect(typeTest(create()), isTrue);
195 }, expectation);
196 });
197 }
198
199 check('a', () => new AnchorElement(), (e) => e is AnchorElement);
200 check('area', () => new AreaElement(), (e) => e is AreaElement);
201 check('audio', () => new AudioElement(), (e) => e is AudioElement);
202 check('body', () => new BodyElement(), (e) => e is BodyElement);
203 check('br', () => new BRElement(), (e) => e is BRElement);
204 check('base', () => new BaseElement(), (e) => e is BaseElement);
205 check('button', () => new ButtonElement(), (e) => e is ButtonElement);
206 check('canvas', () => new CanvasElement(), (e) => e is CanvasElement);
207 check('caption', () => new TableCaptionElement(),
208 (e) => e is TableCaptionElement);
209 check('content', () => new ContentElement(), (e) => e is ContentElement,
210 ContentElement.supported);
211 check('details', () => new DetailsElement(), (e) => e is DetailsElement,
212 DetailsElement.supported);
213 check('datalist', () => new DataListElement(), (e) => e is DataListElement,
214 DataListElement.supported);
215 check('dl', () => new DListElement(), (e) => e is DListElement);
216 check('div', () => new DivElement(), (e) => e is DivElement);
217 check('embed', () => new EmbedElement(), (e) => e is EmbedElement,
218 EmbedElement.supported);
219 check('fieldset', () => new FieldSetElement(), (e) => e is FieldSetElement);
220 check('form', () => new FormElement(), (e) => e is FormElement);
221 check('head', () => new HeadElement(), (e) => e is HeadElement);
222 check('hr', () => new HRElement(), (e) => e is HRElement);
223 check('html', () => new HtmlHtmlElement(), (e) => e is HtmlHtmlElement);
224 check('h1', () => new HeadingElement.h1(), (e) => e is HeadingElement);
225 check('h2', () => new HeadingElement.h2(), (e) => e is HeadingElement);
226 check('h3', () => new HeadingElement.h3(), (e) => e is HeadingElement);
227 check('h4', () => new HeadingElement.h4(), (e) => e is HeadingElement);
228 check('h5', () => new HeadingElement.h5(), (e) => e is HeadingElement);
229 check('h6', () => new HeadingElement.h6(), (e) => e is HeadingElement);
230 check('iframe', () => new IFrameElement(), (e) => e is IFrameElement);
231 check('img', () => new ImageElement(), (e) => e is ImageElement);
232 check('input', () => new InputElement(), (e) => e is InputElement);
233 check('keygen', () => new KeygenElement(), (e) => e is KeygenElement,
234 KeygenElement.supported);
235 check('li', () => new LIElement(), (e) => e is LIElement);
236 check('label', () => new LabelElement(), (e) => e is LabelElement);
237 check('legen', () => new LegendElement(), (e) => e is LegendElement);
238 check('link', () => new LinkElement(), (e) => e is LinkElement);
239 check('map', () => new MapElement(), (e) => e is MapElement);
240 check('menu', () => new MenuElement(), (e) => e is MenuElement);
241 check('meta', () => new MetaElement(), (e) => e is MetaElement);
242 check('meter', () => new MeterElement(), (e) => e is MeterElement,
243 MeterElement.supported);
244 check('del', () => new Element.tag('del'), (e) => e is ModElement);
245 check('ins', () => new Element.tag('ins'), (e) => e is ModElement);
246 check('object', () => new ObjectElement(), (e) => e is ObjectElement,
247 ObjectElement.supported);
248 check('ol', () => new OListElement(), (e) => e is OListElement);
249 check('optgroup', () => new OptGroupElement(), (e) => e is OptGroupElement);
250 check('option', () => new OptionElement(), (e) => e is OptionElement);
251 check('output', () => new OutputElement(), (e) => e is OutputElement,
252 OutputElement.supported);
253 check('p', () => new ParagraphElement(), (e) => e is ParagraphElement);
254 check('param', () => new ParamElement(), (e) => e is ParamElement);
255 check('pre', () => new PreElement(), (e) => e is PreElement);
256 check('progress', () => new ProgressElement(), (e) => e is ProgressElement,
257 ProgressElement.supported);
258 check('q', () => new QuoteElement(), (e) => e is QuoteElement);
259 check('script', () => new ScriptElement(), (e) => e is ScriptElement);
260 check('select', () => new SelectElement(), (e) => e is SelectElement);
261 check('shadow', () => new ShadowElement(), (e) => e is ShadowElement,
262 ShadowElement.supported);
263 check('source', () => new SourceElement(), (e) => e is SourceElement);
264 check('span', () => new SpanElement(), (e) => e is SpanElement);
265 check('style', () => new StyleElement(), (e) => e is StyleElement);
266 check('table', () => new TableElement(), (e) => e is TableElement);
267 check('template', () => new TemplateElement(), (e) => e is TemplateElement,
268 TemplateElement.supported);
269 check('textarea', () => new TextAreaElement(), (e) => e is TextAreaElement);
270 check('title', () => new TitleElement(), (e) => e is TitleElement);
271 check('td', () => new TableCellElement(), (e) => e is TableCellElement);
272 check('col', () => new TableColElement(), (e) => e is TableColElement);
273 check('colgroup', () => new Element.tag('colgroup'),
274 (e) => e is TableColElement);
275 check('tr', () => new TableRowElement(), (e) => e is TableRowElement);
276 check('tbody', () => new Element.tag('tbody'),
277 (e) => e is TableSectionElement);
278 check('tfoot', () => new Element.tag('tfoot'),
279 (e) => e is TableSectionElement);
280 check('thead', () => new Element.tag('thead'),
281 (e) => e is TableSectionElement);
282 check('track', () => new TrackElement(), (e) => e is TrackElement,
283 TrackElement.supported);
284 group('ul', () {
285 check('ul', () => new UListElement(), (e) => e is UListElement);
286
287 test('accepts li', () {
288 var ul = new UListElement();
289 var li = new LIElement();
290 ul.append(li);
291 });
292 });
293 check('video', () => new VideoElement(), (e) => e is VideoElement);
294 check('unknown', () => new Element.tag('someunknown'),
295 (e) => e is UnknownElement);
296 });
188 } 297 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698