OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | |
rmacnak
2017/07/06 00:10:20
2017
cbernaschina
2017/07/06 00:33:46
Done.
| |
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:observatory/src/elements/containers/virtual_collection.dart'; | |
8 import 'package:observatory/src/elements/containers/virtual_tree.dart'; | |
9 | |
10 main() { | |
11 VirtualTreeElement.tag.ensureRegistration(); | |
12 | |
13 final cTag = VirtualCollectionElement.tag.name; | |
14 | |
15 var container; | |
16 setUp(() { | |
17 container = document.body.getElementsByClassName('test_container').first; | |
18 }); | |
19 group('instantiation', () { | |
20 test('default', () { | |
21 final e = new VirtualTreeElement((_) {}, (_1, _2, _3) {}, (_) {}); | |
22 expect(e, isNotNull, reason: 'element correctly created'); | |
23 expect(e.items, isNotNull, reason: 'items not null'); | |
24 expect(e.items, isEmpty, reason: 'no items'); | |
25 }); | |
26 test('items: []', () { | |
27 final items = ["1", 2, {}]; | |
28 final e = | |
29 new VirtualTreeElement((_) {}, (_1, _2, _3) {}, (_) {}, items: items); | |
30 expect(e, isNotNull, reason: 'element correctly created'); | |
31 expect(e.items, isNot(same(items)), reason: 'avoid side effect'); | |
32 expect(e.items, equals(items), reason: 'same items'); | |
33 }); | |
34 }); | |
35 test('elements created after attachment', () async { | |
36 final create = (toggle) => new DivElement()..classes = ['test_item']; | |
37 final update = (HtmlElement el, item, depth) { | |
38 el.text = item.toString(); | |
39 }; | |
40 final children = (item) => []; | |
41 final items = ["1", 2, {}]; | |
42 final e = new VirtualTreeElement(create, update, children); | |
43 container.append(e); | |
44 await e.onRendered.first; | |
45 expect(e.children.length, isNonZero, reason: 'has elements'); | |
46 expect(e.querySelectorAll(cTag).length, same(1)); | |
47 e.remove(); | |
48 await e.onRendered.first; | |
49 expect(e.children.length, isZero, reason: 'is empty'); | |
50 }); | |
51 test('expand single child', () async { | |
52 const max_depth = 100000; | |
53 final create = (toggle) => new DivElement()..classes = ['test_item']; | |
54 final update = (HtmlElement el, item, depth) { | |
55 el.text = item.toString(); | |
56 }; | |
57 final children = (item) => item >= max_depth ? [] : [item + 1]; | |
rmacnak
2017/07/06 00:10:20
Presumably you wanted to have multiple children he
cbernaschina
2017/07/06 00:33:46
Done.
| |
58 final items = [0]; | |
59 final e = new VirtualTreeElement(create, update, children, items: items); | |
60 container.append(e); | |
61 await e.onRendered.first; | |
62 expect(e.children.length, isNonZero, reason: 'has elements'); | |
63 final VirtualCollectionElement collection = e.querySelectorAll(cTag).first; | |
64 expect(collection.items.length, equals(1), reason: 'begin'); | |
65 e.expand(0, autoExpandSingleChildNodes: true); | |
66 await e.onRendered.first; | |
67 expect(collection.items.length, equals(max_depth + 1), reason: 'expanded'); | |
68 e.collapse(0, autoCollapseSingleChildNodes: true); | |
69 await e.onRendered.first; | |
70 expect(collection.items.length, equals(1), reason: 'collapsed'); | |
71 e.remove(); | |
72 await e.onRendered.first; | |
73 expect(e.children.length, isZero, reason: 'is empty'); | |
74 }); | |
75 | |
76 test('expand whole tree', () async { | |
77 const max_depth = 100000; | |
78 final create = (toggle) => new DivElement()..classes = ['test_item']; | |
79 final update = (HtmlElement el, item, depth) { | |
80 el.text = item.toString(); | |
81 }; | |
82 final children = (item) => item >= max_depth ? [] : [item + 1]; | |
83 final items = [0]; | |
84 final e = new VirtualTreeElement(create, update, children, items: items); | |
85 container.append(e); | |
86 await e.onRendered.first; | |
87 expect(e.children.length, isNonZero, reason: 'has elements'); | |
88 final VirtualCollectionElement collection = e.querySelectorAll(cTag).first; | |
89 expect(collection.items.length, equals(1), reason: 'begin'); | |
90 e.expand(0, autoExpandWholeTree: true); | |
91 await e.onRendered.first; | |
92 expect(collection.items.length, equals(max_depth + 1), reason: 'expanded'); | |
93 e.collapse(0, autoCollapseWholeTree: true); | |
94 await e.onRendered.first; | |
95 expect(collection.items.length, equals(1), reason: 'collapsed'); | |
96 e.remove(); | |
97 await e.onRendered.first; | |
98 expect(e.children.length, isZero, reason: 'is empty'); | |
99 }); | |
100 } | |
OLD | NEW |