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:unittest/unittest.dart'; | |
7 import 'package:unittest/html_config.dart'; | |
8 import 'package:polymer/polymer.dart'; | |
9 | |
10 // Dart note: unlike JS, you can't publish something that doesn't | |
11 // have a corresponding field because we can't dynamically add properties. | |
12 // So we define XFoo and XBar types here. | |
13 @CustomTag('x-foo') | |
14 class XFoo extends PolymerElement { | |
15 XFoo.created() : super.created(); | |
16 | |
17 @observable var Foo; | |
18 @observable var baz; | |
19 } | |
20 | |
21 @CustomTag('x-bar') | |
22 class XBar extends XFoo { | |
23 XBar.created() : super.created(); | |
24 | |
25 @observable var Bar; | |
26 } | |
27 | |
28 @CustomTag('x-zot') | |
29 class XZot extends XBar { | |
30 XZot.created() : super.created(); | |
31 | |
32 @published int zot = 3; | |
33 } | |
34 | |
35 @CustomTag('x-squid') | |
36 class XSquid extends XZot { | |
37 XSquid.created() : super.created(); | |
38 | |
39 @published int baz = 13; | |
40 @published int zot = 3; | |
41 @published int squid = 7; | |
42 } | |
43 | |
44 // Test inherited "attriubtes" | |
45 class XBaz extends PolymerElement { | |
46 XBaz.created() : super.created(); | |
47 @observable int qux = 13; | |
48 } | |
49 | |
50 @CustomTag('x-qux') | |
51 class XQux extends XBaz { | |
52 XQux.created() : super.created(); | |
53 } | |
54 | |
55 main() => initPolymer().then((zone) => zone.run(() { | |
56 useHtmlConfiguration(); | |
57 | |
58 setUp(() => Polymer.onReady); | |
59 | |
60 test('published properties', () { | |
61 published(tag) => | |
62 (new Element.tag(tag) as PolymerElement).element.publishedProperties; | |
63 | |
64 expect(published('x-foo'), ['Foo', 'baz']); | |
65 expect(published('x-bar'), ['Foo', 'baz', 'Bar']); | |
66 expect(published('x-zot'), ['Foo', 'baz', 'Bar', 'zot']); | |
67 expect(published('x-squid'), ['Foo', 'baz', 'Bar', 'zot', 'squid']); | |
68 expect(published('x-qux'), ['qux']); | |
69 }); | |
70 })); | |
OLD | NEW |