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

Side by Side Diff: runtime/observatory/tests/observatory_ui/curly_block_test.dart

Issue 2119733003: Wrapping leaf nodes in non polymer elements (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Converted error-ref tag Created 4 years, 5 months 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
OLDNEW
(Empty)
1 // Copyright (c) 2016, 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 import 'dart:html';
5 import 'package:unittest/unittest.dart';
6 import 'package:observatory/src/elements/curly_block.dart';
7 import 'helpers/webcomponents.dart';
8
9 main() async {
10 await loadWebComponents();
11 CurlyBlockElement.tag.ensureRegistration();
12
13 group('instantiation', () {
14 test('default', () {
15 final CurlyBlockElement e = new CurlyBlockElement();
16 expect(e, isNotNull, reason: 'element correctly created');
17 expect(e.expanded, isFalse);
18 expect(e.disabled, isFalse);
19 });
20 test('not expanded', () {
21 final CurlyBlockElement e = new CurlyBlockElement(expanded: false);
22 expect(e, isNotNull, reason: 'element correctly created');
23 expect(e.expanded, isFalse);
24 expect(e.disabled, isFalse);
25 });
26 test('not expanded / not disabled', () {
27 final CurlyBlockElement e = new CurlyBlockElement(expanded: false,
28 disabled: false);
29 expect(e, isNotNull, reason: 'element correctly created');
30 expect(e.expanded, isFalse);
31 expect(e.disabled, isFalse);
32 });
33 test('not expanded / disabled', () {
34 final CurlyBlockElement e = new CurlyBlockElement(expanded: false,
35 disabled: true);
36 expect(e, isNotNull, reason: 'element correctly created');
37 expect(e.expanded, isFalse);
38 expect(e.disabled, isTrue);
39 });
40 test('expanded', () {
41 final CurlyBlockElement e = new CurlyBlockElement(expanded: true);
42 expect(e, isNotNull, reason: 'element correctly created');
43 expect(e.expanded, isTrue);
44 expect(e.disabled, isFalse);
45 });
46 test('expanded / not disabled', () {
47 final CurlyBlockElement e = new CurlyBlockElement(expanded: true,
48 disabled: false);
49 expect(e, isNotNull, reason: 'element correctly created');
50 expect(e.expanded, isTrue);
51 expect(e.disabled, isFalse);
52 });
53 test('expanded / disabled', () {
54 final CurlyBlockElement e = new CurlyBlockElement(expanded: true,
55 disabled: true);
56 expect(e, isNotNull, reason: 'element correctly created');
57 expect(e.expanded, isTrue);
58 expect(e.disabled, isTrue);
59 });
60 test('not disabled', () {
61 final CurlyBlockElement e = new CurlyBlockElement(disabled: false);
62 expect(e, isNotNull, reason: 'element correctly created');
63 expect(e.expanded, isFalse);
64 expect(e.disabled, isFalse);
65 });
66 test('disabled', () {
67 final CurlyBlockElement e = new CurlyBlockElement(disabled: true);
68 expect(e, isNotNull, reason: 'element correctly created');
69 expect(e.expanded, isFalse);
70 expect(e.disabled, isTrue);
71 });
72 });
73 group('elements', () {
74 test('created after attachment', () {
75 final CurlyBlockElement e = new CurlyBlockElement();
76 expect(e.shadowRoot, isNotNull, reason: 'shadowRoot is created');
77 expect(e.shadowRoot.children.length, isZero,
78 reason: 'shadowRoot is empty');
79 document.body.append(e);
80 expect(e.shadowRoot.children.length, isNonZero,
81 reason: 'shadowRoot has elements');
82 e.remove();
83 });
84 });
85 group('content', () {
86 CurlyBlockElement e;
87 setUp((){
88 e = new CurlyBlockElement();
89 document.body.append(e);
90 });
91 tearDown(() {
92 e.remove();
93 });
94 test('toggles visibility', () {
95 expect(e.shadowRoot.querySelector('content'), isNull);
96 e.toggle();
97 expect(e.shadowRoot.querySelector('content'), isNotNull);
98 e.toggle();
99 expect(e.shadowRoot.querySelector('content'), isNull);
100 e.remove();
101 });
102 test('toggles visibility (manually)', () {
103 expect(e.shadowRoot.querySelector('content'), isNull);
104 e.expanded = true;
105 expect(e.shadowRoot.querySelector('content'), isNotNull);
106 e.expanded = false;
107 expect(e.shadowRoot.querySelector('content'), isNull);
108 e.remove();
109 });
110 test('does not toggle if disabled', () {
111 e.disabled = true;
112 expect(e.expanded, isFalse);
113 expect(e.shadowRoot.querySelector('content'), isNull);
114 e.toggle();
115 expect(e.expanded, isFalse);
116 expect(e.shadowRoot.querySelector('content'), isNull);
117 e.disabled = false;
118 e.toggle();
119 expect(e.expanded, isTrue);
120 expect(e.shadowRoot.querySelector('content'), isNotNull);
121 e.disabled = true;
122 e.toggle();
123 expect(e.expanded, isTrue);
124 expect(e.shadowRoot.querySelector('content'), isNotNull);
125 e.remove();
126 });
127 test('toggles visibility (manually) if disabled', () {
128 e.disabled = true;
129 expect(e.shadowRoot.querySelector('content'), isNull);
130 e.expanded = true;
131 expect(e.shadowRoot.querySelector('content'), isNotNull);
132 e.expanded = false;
133 expect(e.shadowRoot.querySelector('content'), isNull);
134 e.remove();
135 });
136 });
137 group('event', () {
138 CurlyBlockElement e;
139 setUp((){
140 e = new CurlyBlockElement();
141 document.body.append(e);
142 });
143 tearDown(() {
144 e.remove();
145 });
146 test('fires on toggle', (){
147 e.onToggle.listen(expectAsync((CurlyBlockToggleEvent event){
148 expect(event, isNotNull);
149 expect(event.control, equals(e));
150 }, count: 1));
151 e.toggle();
152 });
153 test('fires on manual toggle', (){
154 e.onToggle.listen(expectAsync((CurlyBlockToggleEvent event){
155 expect(event, isNotNull);
156 expect(event.control, equals(e));
157 }, count: 1));
158 e.expanded = !e.expanded;
159 });
160 test('does not fire if setting same expanded value', (){
161 e.onToggle.listen(expectAsync((_){}, count: 0));
162 e.expanded = e.expanded;
163 });
164 });
165 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698