Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: test/iron_selector_template_repeat_test.dart

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/iron_selector_multi_test.html ('k') | test/paper_badge_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 @TestOn('browser') 4 @TestOn('browser')
5 library polymer_elements.test.iron_selector_template_repeat_test; 5 library polymer_elements.test.iron_selector_template_repeat_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'dart:js'; 9 import 'dart:js';
10 import 'package:polymer/polymer.dart';
10 import 'package:polymer_elements/iron_selector.dart'; 11 import 'package:polymer_elements/iron_selector.dart';
11 import 'package:test/test.dart'; 12 import 'package:test/test.dart';
12 import 'package:web_components/web_components.dart'; 13 import 'package:web_components/web_components.dart';
13 import 'common.dart'; 14 import 'common.dart';
14 15
15 main() async { 16 main() async {
16 await initWebComponents(); 17 await initWebComponents();
17 18
18 group('dom-repeat', () { 19 group('dom-repeat', () {
19 JsObject scope, t; 20 DomBind scope;
21 DomRepeat t;
20 IronSelector s; 22 IronSelector s;
21 23
22 setUp(() { 24 setUp(() {
23 scope = new JsObject.fromBrowserObject( 25 scope = document.querySelector('template[is="dom-bind"]');
24 document.querySelector('template[is="dom-bind"]')); 26 s = scope.$['selector'];
25 s = scope[r'$']['selector']; 27 t = scope.$['t'];
26 t = new JsObject.fromBrowserObject(scope[r'$']['t']); 28 t.items = [
27 t['items'] = new JsObject.jsify([
28 {'name': 'item0'}, 29 {'name': 'item0'},
29 {'name': 'item1'}, 30 {'name': 'item1'},
30 {'name': 'item2'}, 31 {'name': 'item2'},
31 {'name': 'item3'} 32 {'name': 'item3'}
32 ]); 33 ];
33 }); 34 });
34 35
35 tearDown(() { 36 tearDown(() {
36 t['items'] = new JsObject.jsify([]); 37 t.items = [];
37 }); 38 });
38 39
39 test('supports repeated items', () { 40 test('supports repeated items', () {
40 return wait(1).then((_) { 41 return wait(1).then((_) {
41 // check items 42 // check items
42 expect(s.items.length, 4); 43 expect(s.items.length, 4);
43 // check selected 44 // check selected
44 expect(s.selected, '1'); 45 expect(s.selected, '1');
45 // check selected item 46 // check selected item
46 var item = s.selectedItem; 47 var item = s.selectedItem;
47 expect(s.items[1], item); 48 expect(s.items[1], item);
48 // check selected class 49 // check selected class
49 expect(item.classes.contains('iron-selected'), isTrue); 50 expect(item.classes.contains('iron-selected'), isTrue);
50 }); 51 });
51 }); 52 });
52 53
53 test('update items', () { 54 test('update items', () {
54 var done = new Completer(); 55 var done = new Completer();
55 wait(1).then((_) { 56 wait(1).then((_) {
56 // check items 57 // check items
57 expect(s.items.length, 4); 58 expect(s.items.length, 4);
58 // check selected 59 // check selected
59 expect(s.selected, '1'); 60 expect(s.selected, '1');
60 // update items 61 // update items
61 t['items'] = new JsObject.jsify([{'name': 'foo'}, {'name': 'bar'}]); 62 t.items = [{'name': 'foo'}, {'name': 'bar'}];
62 wait(1).then((_) { 63 wait(1).then((_) {
63 // check items 64 // check items
64 expect(s.items.length, 2); 65 expect(s.items.length, 2);
65 // check selected (should still honor the selected) 66 // check selected (should still honor the selected)
66 expect(s.selected, '1'); 67 expect(s.selected, '1');
67 // check selected class 68 // check selected class
68 expect(s.querySelector('#bar').classes.contains('iron-selected'), 69 expect(s.querySelector('#bar').classes.contains('iron-selected'),
69 isTrue); 70 isTrue);
70 done.complete(); 71 done.complete();
71 }); 72 });
72 }); 73 });
73 return done.future; 74 return done.future;
74 }); 75 });
75 76
76 test('set selected to something else', () { 77 test('set selected to something else', () {
77 return wait(1).then((_) { 78 return wait(1).then((_) {
78 // set selected to something else 79 // set selected to something else
79 s.selected = 3; 80 s.selected = 3;
80 // check selected item 81 // check selected item
81 var item = s.selectedItem; 82 var item = s.selectedItem;
82 expect(s.items[3], item); 83 expect(s.items[3], item);
83 // check selected class 84 // check selected class
84 expect(item.classes.contains('iron-selected'), isTrue); 85 expect(item.classes.contains('iron-selected'), isTrue);
85 }); 86 });
86 }); 87 });
87 }); 88 });
88 } 89 }
OLDNEW
« no previous file with comments | « test/iron_selector_multi_test.html ('k') | test/paper_badge_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698