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 @CustomTag('x-foo') | |
11 class XFoo extends PolymerElement { | |
12 XFoo.created() : super.created(); | |
13 | |
14 @published bool boolean = false; | |
15 @published num number = 42; | |
16 @published String str = "don't panic"; | |
17 } | |
18 | |
19 @CustomTag('x-bar') | |
20 class XBar extends PolymerElement { | |
21 XBar.created() : super.created(); | |
22 | |
23 @observable bool boolean = false; | |
24 @observable num number = 42; | |
25 @observable String str = "don't panic"; | |
26 } | |
27 | |
28 @CustomTag('x-zot') | |
29 class XZot extends XBar { | |
30 XZot.created() : super.created(); | |
31 @observable num number = 84; | |
32 } | |
33 | |
34 @CustomTag('x-date') | |
35 class XDate extends PolymerElement { | |
36 XDate.created() : super.created(); | |
37 @observable var value = new DateTime(2013, 9, 25); | |
38 } | |
39 | |
40 @CustomTag('x-array') | |
41 class XArray extends PolymerElement { | |
42 XArray.created() : super.created(); | |
43 @observable List values; | |
44 } | |
45 | |
46 @CustomTag('x-obj') | |
47 class XObj extends PolymerElement { | |
48 XObj.created() : super.created(); | |
49 @observable var values = {}; | |
50 } | |
51 | |
52 main() => initPolymer().then((zone) => zone.run(() { | |
53 useHtmlConfiguration(); | |
54 | |
55 setUp(() => Polymer.onReady); | |
56 | |
57 test('take attributes', () { | |
58 queryXTag(x) => document.querySelector(x); | |
59 | |
60 expect(queryXTag("#foo0").boolean, true); | |
61 expect(queryXTag("#foo1").boolean, false); | |
62 expect(queryXTag("#foo2").boolean, true); | |
63 expect(queryXTag("#foo3").boolean, false); | |
64 // this one is only 'truthy' | |
65 expect(queryXTag("#foo4").boolean, true); | |
66 // this one is also 'truthy', but should it be? | |
67 expect(queryXTag("#foo5").boolean, true); | |
68 // | |
69 expect(queryXTag("#foo0").number, 42); | |
70 expect(queryXTag("#foo0").str, "don't panic"); | |
71 // | |
72 expect(queryXTag("#bar0").boolean, true); | |
73 expect(queryXTag("#bar1").boolean, false); | |
74 expect(queryXTag("#bar2").boolean, true); | |
75 expect(queryXTag("#bar3").boolean, false); | |
76 // this one is only 'truthy' | |
77 expect(queryXTag("#bar4").boolean, true); | |
78 // this one is also 'truthy', but should it be? | |
79 expect(queryXTag("#bar5").boolean, true); | |
80 // | |
81 expect(queryXTag("#bar0").number, 42); | |
82 expect(queryXTag("#bar0").str, "don't panic"); | |
83 // | |
84 expect(queryXTag("#zot0").boolean, true); | |
85 expect(queryXTag("#zot1").boolean, false); | |
86 expect(queryXTag("#zot2").boolean, true); | |
87 expect(queryXTag("#zot3").boolean, false); | |
88 // this one is only 'truthy' | |
89 expect(queryXTag("#zot4").boolean, true); | |
90 // this one is also 'truthy', but should it be? | |
91 expect(queryXTag("#zot5").boolean, true); | |
92 // | |
93 // Issue 14096 - field initializers are in the incorrect order. | |
94 // This should be expecting 84. | |
95 //expect(queryXTag("#zot0").number, 84); | |
96 expect(queryXTag("#zot6").number, 185); | |
97 expect(queryXTag("#zot0").str, "don't panic"); | |
98 // | |
99 // Date deserialization tests | |
100 expect(queryXTag("#date1").value, new DateTime(2014, 12, 25)); | |
101 expect(queryXTag("#date2").value, isNot(equals(new DateTime(2014, 12, 25))), | |
102 reason: 'Dart does not support this format'); | |
103 expect(queryXTag("#date3").value, new DateTime(2014, 12, 25, 11, 45)); | |
104 expect(queryXTag("#date4").value, new DateTime(2014, 12, 25, 11, 45, 30)); | |
105 // Failures on Firefox. Need to fix this with custom parsing | |
106 //expect(String(queryXTag("#date5").value), String(new Date(2014, 11, 25, 11
, 45, 30))); | |
107 // | |
108 // milliseconds in the Date string not supported on Firefox | |
109 //expect(queryXTag("#date5").value.getMilliseconds(), new Date(2014, 11, 25,
11, 45, 30, 33).getMilliseconds()); | |
110 // | |
111 // Array deserialization tests | |
112 expect(queryXTag("#arr1").values, [0, 1, 2]); | |
113 expect(queryXTag("#arr2").values, [33]); | |
114 // Object deserialization tests | |
115 expect(queryXTag("#obj1").values, {'name': 'Brandon', 'nums': [1, 22, 33]}); | |
116 expect(queryXTag("#obj2").values, {"color": "Red"}); | |
117 expect(queryXTag("#obj3").values, { | |
118 'movie': 'Buckaroo Banzai', | |
119 'DOB': '07/31/1978' | |
120 }); | |
121 }); | |
122 })); | |
OLD | NEW |