Chromium Code Reviews| Index: tests/html/custom_element_created_test.dart |
| diff --git a/tests/html/custom_element_created_test.dart b/tests/html/custom_element_created_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..be100b913ecca202b5cae049d7742cd96a350336 |
| --- /dev/null |
| +++ b/tests/html/custom_element_created_test.dart |
| @@ -0,0 +1,85 @@ |
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| +// 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 custom_element_created_test; |
| +import '../../pkg/unittest/lib/unittest.dart'; |
| +import '../../pkg/unittest/lib/html_individual_config.dart'; |
| +import 'dart:html'; |
| + |
| +class CustomA extends HtmlElement { |
| + static final tag = 'x-a'; |
| + factory CustomA() => new Element.tag(tag); |
| + |
| + static int createdInvocations = 0; |
| + |
| + void onCreated() { |
| + createdInvocations++; |
| + } |
| +} |
| + |
| +class CustomB extends HtmlElement { |
| + static final tag = 'x-b'; |
| + factory CustomB() => new Element.tag(tag); |
| +} |
| + |
| +class CustomC extends HtmlElement { |
| + static final tag = 'x-c'; |
| + factory CustomC() => new Element.tag(tag); |
| + |
| + static int createdInvocations = 0; |
| + static var div; |
| + |
| + void onCreated() { |
| + createdInvocations++; |
| + |
| + if (this.id != 'v') { |
| + return; |
| + } |
| + |
| + var t = div.query('#t'); |
| + var u = div.query('#u'); |
| + var w = div.query('#w'); |
| + |
| + expect(query('x-c:not(:unresolved)'), this); |
|
dominicc (has gone to gerrit)
2013/08/17 00:45:56
FYI this test changed in r156141. Upgrade happens
vsm
2013/08/19 17:00:10
Thanks for the catch!
On 2013/08/17 00:45:56, dom
|
| + expect(queryAll(':unresolved'), [t, u]); |
| + |
| + // Note, this is different from JavaScript where both would be false. |
| + // As per: |
| + // http://www.w3.org/TR/2013/WD-custom-elements-20130514/#serializing-and-parsing |
| + // creation order is w, v, u, t. |
| + expect(t is CustomC, isTrue); |
| + expect(u is CustomB, isTrue); |
| + } |
| +} |
| + |
| +main() { |
| + useHtmlIndividualConfiguration(); |
|
blois
2013/08/16 23:37:48
I wouldn't use the individual config unless we exp
vsm
2013/08/19 17:00:10
I've refactored all the tests to:
(a) go under htm
|
| + |
| + // Adapted from Blink's |
| + // fast/dom/custom/created-callback test. |
| + group('callback', () { |
| + test('transfer created callback', () { |
| + document.register(CustomA.tag, CustomA); |
| + var x = new CustomA(); |
| + expect(CustomA.createdInvocations, 1); |
| + }); |
| + |
| + test(':unresolved and created callback timing', () { |
| + document.register(CustomB.tag, CustomB); |
| + document.register(CustomC.tag, CustomC); |
| + |
| + var div = new DivElement(); |
| + CustomC.div = div; |
| + div.innerHtml = """ |
| +<x-c id="t"></x-c> |
| +<x-b id="u"></x-b> |
| +<x-c id="v"></x-c> |
| +<x-b id="w"></x-b> |
| +"""; |
| + |
| + expect(CustomC.createdInvocations, 2); |
| + expect(div.query('#t') is CustomC, isTrue); |
| + }); |
| + }); |
| +} |