OLD | NEW |
1 <!doctype html> | 1 <!doctype html> |
2 <!-- | 2 <!-- |
3 Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 3 Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
4 for details. All rights reserved. Use of this source code is governed by a | 4 for details. All rights reserved. Use of this source code is governed by a |
5 BSD-style license that can be found in the LICENSE file. | 5 BSD-style license that can be found in the LICENSE file. |
6 --> | 6 --> |
7 <html lang="en"> | 7 <html lang="en"> |
8 <head> | 8 <head> |
9 <meta charset="utf-8"> | 9 <meta charset="utf-8"> |
10 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | 10 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
11 <script type="application/javascript" src="testing.js"></script> | 11 <script type="application/javascript" src="testing.js"></script> |
12 <style>x-greeter { display: block; }</style> | 12 <style>x-greeter { display: block; }</style> |
13 </head> | 13 </head> |
14 <body> | 14 <body> |
15 <element name="x-greeter" extends="div" constructor="Greeter"> | 15 <element name="x-greeter" extends="div" constructor="Greeter"> |
16 <template>{{greeting}}, {{name}}!</template> | 16 <template>{{greeting}}, {{title}}{{ending}}</template> |
17 <script type='application/dart'> | 17 <script type='application/dart'> |
18 import 'common.dart'; | 18 import 'common.dart'; |
19 import 'package:web_components/web_components.dart'; | 19 import 'package:web_components/web_components.dart'; |
20 class Greeter extends WebComponent { | 20 class Greeter extends WebComponent { |
21 String greeting, name; | 21 String greeting, ending; |
22 } | 22 } |
23 </script> | 23 </script> |
24 </element> | 24 </element> |
25 <p> | 25 <p> |
26 This test has two loops, each over two items, for a total of four different | 26 This test has three loops, each over two items, for a total of six different |
27 greeting messages: | 27 greeting messages: |
28 </p> | 28 </p> |
| 29 <!-- note: "title" is a DOM field on all elements. --> |
29 <template iterate="g in greetings"> | 30 <template iterate="g in greetings"> |
30 <template iterate="n in names"> | 31 <template iterate="n in names"> |
31 <x-greeter data-value="greeting:g, name:n"></x-greeter> | 32 <template iterate="e in endings"> |
| 33 <x-greeter greeting="{{g}}" title="{{n}}" ending="{{e}}"></x-greeter> |
| 34 </template> |
32 </template> | 35 </template> |
33 </template> | 36 </template> |
34 <script type="application/dart"> | 37 <script type="application/dart"> |
35 import 'dart:html'; | 38 import 'dart:html'; |
36 import 'package:unittest/unittest.dart'; | 39 import 'package:unittest/unittest.dart'; |
37 | 40 |
38 var greetings = ['hello', 'hi']; | 41 var greetings = ['hello', 'hi']; |
39 var names = ['world', 'universe']; | 42 var names = ['world', 'universe']; |
| 43 var endings = ['??', '!!']; |
40 main() { | 44 main() { |
41 window.setTimeout(() { | 45 window.setTimeout(() { |
42 expect(query('x-greeter').attributes, equals({})); | 46 expect(query('x-greeter').attributes, { 'title': 'world' }); |
43 window.postMessage('done', '*'); | 47 window.postMessage('done', '*'); |
44 }, 0); | 48 }, 0); |
45 } | 49 } |
46 </script> | 50 </script> |
47 </body> | 51 </body> |
48 </html> | 52 </html> |
OLD | NEW |