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

Side by Side Diff: samples/tests/samples/lib/view/view_test.dart

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

Powered by Google App Engine
This is Rietveld 408576698