| Index: tests/html/custom_elements_test.dart
|
| diff --git a/tests/html/custom_elements_test.dart b/tests/html/custom_elements_test.dart
|
| index 7e179121ff8d7cdd6593ff243c5115ba47574524..71714b38708761d56505f8205142f85bd25c7dbf 100644
|
| --- a/tests/html/custom_elements_test.dart
|
| +++ b/tests/html/custom_elements_test.dart
|
| @@ -2,9 +2,9 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -library blob_test;
|
| +library custom_elements_test;
|
| import '../../pkg/unittest/lib/unittest.dart';
|
| -import '../../pkg/unittest/lib/html_config.dart';
|
| +import '../../pkg/unittest/lib/html_individual_config.dart';
|
| import 'dart:html';
|
|
|
| class CustomType extends Element {
|
| @@ -17,77 +17,82 @@ class CustomType extends Element {
|
| class NotAnElement {}
|
|
|
| main() {
|
| - useHtmlConfiguration();
|
| + useHtmlIndividualConfiguration();
|
|
|
| - test('register', () {
|
| - document.register('x-type1', CustomType);
|
| + group('register', () {
|
| + test('register', () {
|
| + document.register('x-type1', CustomType);
|
|
|
| - var element = new Element.tag('x-type1');
|
| - expect(element, isNotNull);
|
| - expect(element is CustomType, isTrue);
|
| - expect(element.onCreatedCalled, isTrue);
|
| - });
|
| + var element = new Element.tag('x-type1');
|
| + expect(element, isNotNull);
|
| + expect(element is CustomType, isTrue);
|
| + expect(element.onCreatedCalled, isTrue);
|
| + });
|
|
|
| - test('register twice', () {
|
| - document.register('x-type2', CustomType);
|
| - expect(() {
|
| + test('register twice', () {
|
| document.register('x-type2', CustomType);
|
| - }, throws, reason: 'Cannot register a tag more than once.');
|
| -
|
| - document.register('x-type3', CustomType);
|
| -
|
| - var element = new Element.tag('x-type3');
|
| - expect(element, isNotNull);
|
| - expect(element is CustomType, isTrue);
|
| - });
|
| -
|
| - test('register null', () {
|
| - expect(() {
|
| - document.register('x-type4', null);
|
| - }, throws, reason: 'Cannot register a null type.');
|
| - });
|
| + expect(() {
|
| + document.register('x-type2', CustomType);
|
| + }, throws, reason: 'Cannot register a tag more than once.');
|
|
|
| - test('register native', () {
|
| - expect(() {
|
| - document.register('x-type5', BodyElement);
|
| - }, throws, reason: 'Cannot register a native element.');
|
| - });
|
| -
|
| - test('register non-element', () {
|
| - expect(() {
|
| - document.register('x-type6', NotAnElement);
|
| - }, throws, reason: 'Cannot register a non-element.');
|
| - });
|
| + document.register('x-type3', CustomType);
|
|
|
| - test('pre-registration construction', () {
|
| - var dom = new Element.html('<div><x-type7></x-type7></div>');
|
| - var preElement = dom.children[0];
|
| - expect(preElement, isNotNull);
|
| - expect(preElement is UnknownElement, isTrue);
|
| - var firedOnPre = false;
|
| - preElement.onFocus.listen((_) {
|
| - firedOnPre = true;
|
| + var element = new Element.tag('x-type3');
|
| + expect(element, isNotNull);
|
| + expect(element is CustomType, isTrue);
|
| });
|
|
|
| - document.register('x-type7', CustomType);
|
| + test('register null', () {
|
| + expect(() {
|
| + document.register('x-type4', null);
|
| + }, throws, reason: 'Cannot register a null type.');
|
| + });
|
|
|
| - var postElement = dom.children[0];
|
| - expect(postElement, isNotNull);
|
| - expect(postElement is CustomType, isTrue);
|
| - expect(postElement.onCreatedCalled, isTrue);
|
| + test('register native', () {
|
| + expect(() {
|
| + document.register('x-type5', BodyElement);
|
| + }, throws, reason: 'Cannot register a native element.');
|
| + });
|
|
|
| - // Element from first query remains an UnknownElement.
|
| - expect(preElement is UnknownElement, isTrue);
|
| - expect(preElement.parent, isNull);
|
| - expect(dom.children.length, 1);
|
| + test('register non-element', () {
|
| + expect(() {
|
| + document.register('x-type6', NotAnElement);
|
| + }, throws, reason: 'Cannot register a non-element.');
|
| + });
|
| + });
|
|
|
| - var firedOnPost = false;
|
| - postElement.onFocus.listen((_) {
|
| - firedOnPost = true;
|
| + group('preregister', () {
|
| + // TODO(vsm): Modify this test once we agree on the proper semantics.
|
| + test('pre-registration construction', () {
|
| + var dom = new Element.html('<div><x-type7></x-type7></div>');
|
| + var preElement = dom.children[0];
|
| + expect(preElement, isNotNull);
|
| + expect(preElement is UnknownElement, isTrue);
|
| + var firedOnPre = false;
|
| + preElement.onFocus.listen((_) {
|
| + firedOnPre = true;
|
| + });
|
| +
|
| + document.register('x-type7', CustomType);
|
| +
|
| + var postElement = dom.children[0];
|
| + expect(postElement, isNotNull);
|
| + expect(postElement is CustomType, isTrue);
|
| + expect(postElement.onCreatedCalled, isTrue);
|
| +
|
| + // Element from first query remains an UnknownElement.
|
| + expect(preElement is UnknownElement, isTrue);
|
| + expect(preElement.parent, isNull);
|
| + expect(dom.children.length, 1);
|
| +
|
| + var firedOnPost = false;
|
| + postElement.onFocus.listen((_) {
|
| + firedOnPost = true;
|
| + });
|
| + // Event handlers should not persist to new element.
|
| + postElement.dispatchEvent(new Event('focus'));
|
| + expect(firedOnPre, isFalse);
|
| + expect(firedOnPost, isTrue);
|
| });
|
| - // Event handlers should not persist to new element.
|
| - postElement.dispatchEvent(new Event('focus'));
|
| - expect(firedOnPre, isFalse);
|
| - expect(firedOnPost, isTrue);
|
| });
|
| }
|
|
|