OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library todomvc.test.listorder_test; | 5 library todomvc.test.listorder_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:html'; | 8 import 'dart:html'; |
9 import 'package:polymer/polymer.dart'; | 9 import 'package:polymer/polymer.dart'; |
10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
11 import 'package:unittest/html_config.dart'; | 11 import 'package:unittest/html_config.dart'; |
12 import '../web/model.dart'; | 12 import '../web/model.dart'; |
13 | 13 |
14 /** | 14 /** |
15 * This test runs the TodoMVC app, adds a few elements, marks some as done, and | 15 * This test runs the TodoMVC app, adds a few elements, marks some as done, and |
16 * switches from back and forth between "Active" and "All". This will make some | 16 * switches from back and forth between "Active" and "All". This will make some |
17 * nodes to be hidden and readded to the page. | 17 * nodes to be hidden and readded to the page. |
18 */ | 18 */ |
19 main() { | 19 main() { |
20 initPolymer(); | 20 initPolymer(); |
21 useHtmlConfiguration(); | 21 useHtmlConfiguration(); |
22 | 22 |
23 ShadowRoot root; | 23 ShadowRoot root; |
24 | 24 |
25 setUp(() => Polymer.onReady.then((_) { | 25 setUp(() => Polymer.onReady.then((_) { |
26 root = query('todo-app').shadowRoot; | 26 root = querySelector('todo-app').shadowRoot; |
27 })); | 27 })); |
28 | 28 |
29 test('programmatically add items to model', () { | 29 test('programmatically add items to model', () { |
30 appModel.todos.addAll([ | 30 appModel.todos.addAll([ |
31 new Todo('one (unchecked)'), | 31 new Todo('one (unchecked)'), |
32 new Todo('two (checked)')..done = true, | 32 new Todo('two (checked)')..done = true, |
33 new Todo('three (unchecked)') | 33 new Todo('three (unchecked)') |
34 ]); | 34 ]); |
35 Observable.dirtyCheck(); | 35 Observable.dirtyCheck(); |
36 return window.animationFrame.then((_) { | 36 return window.animationFrame.then((_) { |
37 expect(root.queryAll('#todo-list li[is=todo-row]').length, 3); | 37 expect(root.querySelectorAll('#todo-list li[is=todo-row]').length, 3); |
38 | 38 |
39 // TODO(jmesserly): HTML Imports breaks relative hash links when the | 39 // TODO(jmesserly): HTML Imports breaks relative hash links when the |
40 // component is at a different path from the main HTML document. For now | 40 // component is at a different path from the main HTML document. For now |
41 // fix it programmatically. | 41 // fix it programmatically. |
42 for (var a in root.queryAll('#filters > li > a')) { | 42 for (var a in root.querySelectorAll('#filters > li > a')) { |
43 a.href = '#${Uri.parse(a.href).fragment}'; | 43 a.href = '#${Uri.parse(a.href).fragment}'; |
44 } | 44 } |
45 }); | 45 }); |
46 }); | 46 }); |
47 | 47 |
48 test('navigate to #/active', () { | 48 test('navigate to #/active', () { |
49 windowLocation.hash = '#/active'; | 49 windowLocation.hash = '#/active'; |
50 return window.animationFrame.then((_) { | 50 return window.animationFrame.then((_) { |
51 expect(root.queryAll('#todo-list li[is=todo-row]').length, 2); | 51 expect(root.querySelectorAll('#todo-list li[is=todo-row]').length, 2); |
52 }); | 52 }); |
53 }); | 53 }); |
54 | 54 |
55 test('navigate to #/completed', () { | 55 test('navigate to #/completed', () { |
56 windowLocation.hash = '#/completed'; | 56 windowLocation.hash = '#/completed'; |
57 return window.animationFrame.then((_) { | 57 return window.animationFrame.then((_) { |
58 expect(root.queryAll('#todo-list li[is=todo-row]').length, 1); | 58 expect(root.querySelectorAll('#todo-list li[is=todo-row]').length, 1); |
59 }); | 59 }); |
60 }); | 60 }); |
61 | 61 |
62 test('navigate back to #/', () { | 62 test('navigate back to #/', () { |
63 windowLocation.hash = '#/'; | 63 windowLocation.hash = '#/'; |
64 return window.animationFrame.then((_) { | 64 return window.animationFrame.then((_) { |
65 expect(root.queryAll('#todo-list li[is=todo-row]').length, 3); | 65 expect(root.querySelectorAll('#todo-list li[is=todo-row]').length, 3); |
66 }); | 66 }); |
67 }); | 67 }); |
68 } | 68 } |
OLD | NEW |