OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 import 'dart:html'; | |
6 import 'package:polymer/polymer.dart'; | |
7 import 'package:unittest/unittest.dart'; | |
8 import 'package:unittest/html_config.dart'; | |
9 | |
10 @CustomTag('x-html') | |
11 class XHtmlElement extends PolymerElement { | |
12 XHtmlElement.created() : super.created(); | |
13 } | |
14 | |
15 @CustomTag('x-html-two') | |
16 class XHtml2Element extends XHtmlElement { | |
17 XHtml2Element.created() : super.created(); | |
18 } | |
19 | |
20 @CustomTag('x-div') | |
21 class XDivElement extends DivElement with Polymer, Observable { | |
22 XDivElement.created() : super.created() { | |
23 polymerCreated(); | |
24 } | |
25 } | |
26 | |
27 @CustomTag('x-div-two') | |
28 class XDiv2Element extends XDivElement { | |
29 XDiv2Element.created() : super.created(); | |
30 } | |
31 | |
32 /// Dart-specific test: | |
33 /// This element is registered from code without an associated polymer-element. | |
34 class XPolymerElement extends PolymerElement { | |
35 XPolymerElement.created() : super.created(); | |
36 } | |
37 | |
38 /// Dart-specific test: | |
39 /// This element is registered from code without an associated polymer-element. | |
40 class XButtonElement extends ButtonElement with Polymer, Observable { | |
41 XButtonElement.created() : super.created() { | |
42 polymerCreated(); | |
43 } | |
44 } | |
45 | |
46 main() => initPolymer().then((zone) => zone.run(() { | |
47 useHtmlConfiguration(); | |
48 | |
49 setUp(() => Polymer.onReady); | |
50 | |
51 test('elements upgraded', () { | |
52 expect(querySelector('x-html') is XHtmlElement, isTrue); | |
53 expect(querySelector('x-html-two') is XHtml2Element, isTrue); | |
54 expect(querySelector('#x-div') is XDivElement, isTrue); | |
55 expect(querySelector('#x-div-two') is XDiv2Element, isTrue); | |
56 }); | |
57 | |
58 group('register without polymer-element', () { | |
59 test('custom element', () { | |
60 Polymer.registerSync('x-polymer', XPolymerElement, | |
61 template: new Element.html('<template>FOOBAR')); | |
62 | |
63 expect(document.createElement('x-polymer') is XPolymerElement, isTrue, | |
64 reason: 'should have been registered'); | |
65 | |
66 var e = document.querySelector('x-polymer'); | |
67 expect(e is XPolymerElement, isTrue, | |
68 reason: 'elements on page should be upgraded'); | |
69 expect(e.shadowRoot, isNotNull, | |
70 reason: 'shadowRoot was created from template'); | |
71 expect(e.shadowRoot.nodes[0].text, 'FOOBAR'); | |
72 }); | |
73 | |
74 test('type extension', () { | |
75 Polymer.registerSync('x-button', XButtonElement, extendsTag: 'button'); | |
76 | |
77 expect(document.createElement('button', 'x-button') is XButtonElement, | |
78 isTrue, reason: 'should have been registered'); | |
79 expect(document.querySelector('[is=x-button]') is XButtonElement, isTrue, | |
80 reason: 'elements on page should be upgraded'); | |
81 }); | |
82 }); | |
83 })); | |
OLD | NEW |