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

Side by Side Diff: client/tests/client/view/view_tests.dart

Issue 8302012: Move test(), group(), and expect() to top level. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove unneeded explicit suite. Created 9 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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('view_tests'); 5 #library('view_tests');
6 6
7 #import('../../../base/base.dart'); 7 #import('../../../base/base.dart');
8 #import('dart:html'); 8 #import('dart:html');
9 #import('../../../testing/unittest/unittest.dart'); 9 #import('../../../testing/unittest/unittest.dart');
10 #import('../../../view/view.dart'); 10 #import('../../../view/view.dart');
11 11
12 #source('ViewTests.dart'); 12 void main() {
13 test('does not render immediately', () {
14 final view = new TestView();
15 expect(view.isRendered) == false;
13 16
14 void main() { 17 view.addToDocument(document.body);
15 new ViewTests().run(); 18 expect(view.isRendered) == true;
19 });
20
21 group('addToDocument()', () {
22 test('causes view to render', () {
23 final view = new TestView();
24 view.addToDocument(document.body);
25 expect(view.isRendered) == true;
26 });
27
28 test('calls afterRender()', () {
29 var result = '';
30 final view = new TestView();
31 view.renderFn = () {
32 result += 'render';
33 return new Element.html('<div class="test"></div>');
34 };
35
36 view.afterRenderFn = (node) { result += 'after'; };
37
38 view.addToDocument(document.body);
39 expect(result) == 'renderafter';
40 });
41
42 test('calls enterDocument()', () {
43 final view = new TestView();
44 bool entered = false;
45 view.enterDocumentFn = () { entered = true; };
46
47 view.addToDocument(document.body);
48 expect(entered) == true;
49 });
50 });
51
52 group('afterRender()', () {
53 test('passes rendered node', () {
54 final rendered = new Element.html('<div class="node"></div>');
55 final view = new TestView();
56 view.renderFn = () => rendered;
57 view.afterRenderFn = (node) { expect(node) == rendered; };
58
59 view.addToDocument(document.body);
60 });
61 });
62
63 group('childViewAdded()', () {
64 test('calls enterDocument() if parent is in document', () {
65 final parent = new TestView();
66 parent.addToDocument(document.body);
67
68 bool entered = false;
69 final child = new TestView();
70 child.enterDocumentFn = () { entered = true; };
71
72 // Add the child.
73 parent.childViews = [child];
74 parent.childViewAdded(child);
75
76 expect(entered) == true;
77 });
78
79 test('does not call enterDocument() if parent is not in document', () {
80 final parent = new TestView();
81
82 bool entered = false;
83 final child = new TestView();
84 child.enterDocumentFn = () { entered = true; };
85
86 // Add the child.
87 parent.childViews = [child];
88 parent.childViewAdded(child);
89
90 expect(entered) == false;
91 });
92
93 test('calls enterDocument() each time added', () {
94 final parent = new TestView();
95 parent.addToDocument(document.body);
96
97 var entered = 0;
98 final child = new TestView();
99 child.enterDocumentFn = () { entered++; };
100
101 // Add the child.
102 parent.childViews = [child];
103 parent.childViewAdded(child);
104 parent.childViewRemoved(child);
105 parent.childViewAdded(child);
106 parent.childViewRemoved(child);
107 parent.childViewAdded(child);
108 parent.childViewRemoved(child);
109
110 expect(entered) == 3;
111 });
112 });
113
114 group('childViewRemoved()', () {
115 test('calls exitDocument() if parent is in document', () {
116 final parent = new TestView();
117 parent.addToDocument(document.body);
118
119 bool exited = false;
120 final child = new TestView();
121 child.exitDocumentFn = () { exited = true; };
122
123 // Remove the child.
124 parent.childViews = [];
125 parent.childViewRemoved(child);
126
127 expect(exited) == true;
128 });
129
130 test('does not call exitDocument() if parent is not in document', () {
131 final parent = new TestView();
132
133 bool exited = false;
134 final child = new TestView();
135 child.exitDocumentFn = () { exited = true; };
136
137 // Remove the child.
138 parent.childViews = [];
139 parent.childViewRemoved(child);
140
141 expect(exited) == false;
142 });
143
144 test('calls exitDocument() each time removed', () {
145 final parent = new TestView();
146 parent.addToDocument(document.body);
147
148 var exited = 0;
149 final child = new TestView();
150 child.exitDocumentFn = () { exited++; };
151
152 // Add the child.
153 parent.childViews = [child];
154 parent.childViewAdded(child);
155 parent.childViewRemoved(child);
156 parent.childViewAdded(child);
157 parent.childViewRemoved(child);
158 parent.childViewAdded(child);
159 parent.childViewRemoved(child);
160
161 expect(exited) == 3;
162 });
163 });
164
165 group('enterDocument()', () {
166 test('children are called before parents', () {
167 var result = '';
168
169 final parent = new TestView();
170 parent.enterDocumentFn = () { result += 'parent'; };
171
172 final child = new TestView();
173 child.enterDocumentFn = () { result += 'child'; };
174
175 parent.childViews = [child];
176
177 parent.addToDocument(document.body);
178 expect(result) == 'childparent';
179 });
180 });
16 } 181 }
182
183 class TestView extends View {
184 Function renderFn;
185 Function afterRenderFn;
186 Function enterDocumentFn;
187 Function exitDocumentFn;
188 List<View> childViews;
189
190 TestView() : super(), childViews = [] {
191 // Default behavior.
192 renderFn = () => new Element.html('<div class="test"></div>');
193 afterRenderFn = (node) {};
194 enterDocumentFn = () {};
195 exitDocumentFn = () {};
196 }
197
198 Element render() => renderFn();
199 void afterRender(Element node) { afterRenderFn(node); }
200 void enterDocument() { enterDocumentFn(); }
201 void exitDocument() { exitDocumentFn(); }
202 }
OLDNEW
« client/testing/unittest/unittestsuite.dart ('K') | « client/tests/client/view/ViewTests.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698