Index: tests/html/element_types_test.dart |
diff --git a/tests/html/element_types_test.dart b/tests/html/element_types_test.dart |
index df0c48862c955285bae04f24e889de874897d0be..7e1aee5b54e807df4b94a16dd43a0be35590831c 100644 |
--- a/tests/html/element_types_test.dart |
+++ b/tests/html/element_types_test.dart |
@@ -82,17 +82,17 @@ main() { |
}); |
}); |
- check(String name, bool fn(), [bool supported = true]) { |
- test(name, () { |
- var expectation = supported ? returnsNormally : throws; |
- expect(() { |
- expect(fn(), isTrue); |
- }, expectation); |
- }); |
- |
- } |
group('constructors', () { |
+ check(String name, bool fn(), [bool supported = true]) { |
+ test(name, () { |
+ var expectation = supported ? returnsNormally : throws; |
+ expect(() { |
+ expect(fn(), isTrue); |
+ }, expectation); |
+ }); |
+ } |
+ |
check('a', () => new AnchorElement() is AnchorElement); |
check('area', () => new AreaElement() is AreaElement); |
check('audio', () => new AudioElement() is AudioElement); |
@@ -185,4 +185,113 @@ main() { |
check('video', () => new VideoElement() is VideoElement); |
check('unknown', () => new Element.tag('someunknown') is UnknownElement); |
}); |
+ |
+ group('constructors_dynamic', () { |
+ check(String name, create(), bool typeTest(e), [bool supported = true]) { |
+ test(name, () { |
+ var expectation = supported ? returnsNormally : throws; |
+ expect(() { |
+ expect(typeTest(create()), isTrue); |
+ }, expectation); |
+ }); |
+ } |
+ |
+ check('a', () => new AnchorElement(), (e) => e is AnchorElement); |
+ check('area', () => new AreaElement(), (e) => e is AreaElement); |
+ check('audio', () => new AudioElement(), (e) => e is AudioElement); |
+ check('body', () => new BodyElement(), (e) => e is BodyElement); |
+ check('br', () => new BRElement(), (e) => e is BRElement); |
+ check('base', () => new BaseElement(), (e) => e is BaseElement); |
+ check('button', () => new ButtonElement(), (e) => e is ButtonElement); |
+ check('canvas', () => new CanvasElement(), (e) => e is CanvasElement); |
+ check('caption', () => new TableCaptionElement(), |
+ (e) => e is TableCaptionElement); |
+ check('content', () => new ContentElement(), (e) => e is ContentElement, |
+ ContentElement.supported); |
+ check('details', () => new DetailsElement(), (e) => e is DetailsElement, |
+ DetailsElement.supported); |
+ check('datalist', () => new DataListElement(), (e) => e is DataListElement, |
+ DataListElement.supported); |
+ check('dl', () => new DListElement(), (e) => e is DListElement); |
+ check('div', () => new DivElement(), (e) => e is DivElement); |
+ check('embed', () => new EmbedElement(), (e) => e is EmbedElement, |
+ EmbedElement.supported); |
+ check('fieldset', () => new FieldSetElement(), (e) => e is FieldSetElement); |
+ check('form', () => new FormElement(), (e) => e is FormElement); |
+ check('head', () => new HeadElement(), (e) => e is HeadElement); |
+ check('hr', () => new HRElement(), (e) => e is HRElement); |
+ check('html', () => new HtmlHtmlElement(), (e) => e is HtmlHtmlElement); |
+ check('h1', () => new HeadingElement.h1(), (e) => e is HeadingElement); |
+ check('h2', () => new HeadingElement.h2(), (e) => e is HeadingElement); |
+ check('h3', () => new HeadingElement.h3(), (e) => e is HeadingElement); |
+ check('h4', () => new HeadingElement.h4(), (e) => e is HeadingElement); |
+ check('h5', () => new HeadingElement.h5(), (e) => e is HeadingElement); |
+ check('h6', () => new HeadingElement.h6(), (e) => e is HeadingElement); |
+ check('iframe', () => new IFrameElement(), (e) => e is IFrameElement); |
+ check('img', () => new ImageElement(), (e) => e is ImageElement); |
+ check('input', () => new InputElement(), (e) => e is InputElement); |
+ check('keygen', () => new KeygenElement(), (e) => e is KeygenElement, |
+ KeygenElement.supported); |
+ check('li', () => new LIElement(), (e) => e is LIElement); |
+ check('label', () => new LabelElement(), (e) => e is LabelElement); |
+ check('legen', () => new LegendElement(), (e) => e is LegendElement); |
+ check('link', () => new LinkElement(), (e) => e is LinkElement); |
+ check('map', () => new MapElement(), (e) => e is MapElement); |
+ check('menu', () => new MenuElement(), (e) => e is MenuElement); |
+ check('meta', () => new MetaElement(), (e) => e is MetaElement); |
+ check('meter', () => new MeterElement(), (e) => e is MeterElement, |
+ MeterElement.supported); |
+ check('del', () => new Element.tag('del'), (e) => e is ModElement); |
+ check('ins', () => new Element.tag('ins'), (e) => e is ModElement); |
+ check('object', () => new ObjectElement(), (e) => e is ObjectElement, |
+ ObjectElement.supported); |
+ check('ol', () => new OListElement(), (e) => e is OListElement); |
+ check('optgroup', () => new OptGroupElement(), (e) => e is OptGroupElement); |
+ check('option', () => new OptionElement(), (e) => e is OptionElement); |
+ check('output', () => new OutputElement(), (e) => e is OutputElement, |
+ OutputElement.supported); |
+ check('p', () => new ParagraphElement(), (e) => e is ParagraphElement); |
+ check('param', () => new ParamElement(), (e) => e is ParamElement); |
+ check('pre', () => new PreElement(), (e) => e is PreElement); |
+ check('progress', () => new ProgressElement(), (e) => e is ProgressElement, |
+ ProgressElement.supported); |
+ check('q', () => new QuoteElement(), (e) => e is QuoteElement); |
+ check('script', () => new ScriptElement(), (e) => e is ScriptElement); |
+ check('select', () => new SelectElement(), (e) => e is SelectElement); |
+ check('shadow', () => new ShadowElement(), (e) => e is ShadowElement, |
+ ShadowElement.supported); |
+ check('source', () => new SourceElement(), (e) => e is SourceElement); |
+ check('span', () => new SpanElement(), (e) => e is SpanElement); |
+ check('style', () => new StyleElement(), (e) => e is StyleElement); |
+ check('table', () => new TableElement(), (e) => e is TableElement); |
+ check('template', () => new TemplateElement(), (e) => e is TemplateElement, |
+ TemplateElement.supported); |
+ check('textarea', () => new TextAreaElement(), (e) => e is TextAreaElement); |
+ check('title', () => new TitleElement(), (e) => e is TitleElement); |
+ check('td', () => new TableCellElement(), (e) => e is TableCellElement); |
+ check('col', () => new TableColElement(), (e) => e is TableColElement); |
+ check('colgroup', () => new Element.tag('colgroup'), |
+ (e) => e is TableColElement); |
+ check('tr', () => new TableRowElement(), (e) => e is TableRowElement); |
+ check('tbody', () => new Element.tag('tbody'), |
+ (e) => e is TableSectionElement); |
+ check('tfoot', () => new Element.tag('tfoot'), |
+ (e) => e is TableSectionElement); |
+ check('thead', () => new Element.tag('thead'), |
+ (e) => e is TableSectionElement); |
+ check('track', () => new TrackElement(), (e) => e is TrackElement, |
+ TrackElement.supported); |
+ group('ul', () { |
+ check('ul', () => new UListElement(), (e) => e is UListElement); |
+ |
+ test('accepts li', () { |
+ var ul = new UListElement(); |
+ var li = new LIElement(); |
+ ul.append(li); |
+ }); |
+ }); |
+ check('video', () => new VideoElement(), (e) => e is VideoElement); |
+ check('unknown', () => new Element.tag('someunknown'), |
+ (e) => e is UnknownElement); |
+ }); |
} |