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

Side by Side Diff: ui/webui/resources/js/webui_resource_test.js

Issue 2940933003: DO NOT SUBMIT results of new clang-format (Closed)
Patch Set: Created 3 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * Tests that an observation matches the expected value. 6 * Tests that an observation matches the expected value.
7 * @param {Object} expected The expected value. 7 * @param {Object} expected The expected value.
8 * @param {Object} observed The actual value. 8 * @param {Object} observed The actual value.
9 * @param {string=} opt_message Optional message to include with a test 9 * @param {string=} opt_message Optional message to include with a test
10 * failure. 10 * failure.
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } 112 }
113 } else { 113 } else {
114 assertEquals(expected, observed, opt_message); 114 assertEquals(expected, observed, opt_message);
115 } 115 }
116 } 116 }
117 117
118 /** 118 /**
119 * Defines runTests. 119 * Defines runTests.
120 */ 120 */
121 (function(exports) { 121 (function(exports) {
122 /** 122 /**
123 * List of test cases. 123 * List of test cases.
124 * @type {Array<string>} List of function names for tests to run. 124 * @type {Array<string>} List of function names for tests to run.
125 */ 125 */
126 var testCases = []; 126 var testCases = [];
127 127
128 /** 128 /**
129 * Indicates if all tests have run successfully. 129 * Indicates if all tests have run successfully.
130 * @type {boolean} 130 * @type {boolean}
131 */ 131 */
132 var cleanTestRun = true; 132 var cleanTestRun = true;
133 133
134 /** 134 /**
135 * Armed during setup of a test to call the matching tear down code. 135 * Armed during setup of a test to call the matching tear down code.
136 * @type {Function} 136 * @type {Function}
137 */ 137 */
138 var pendingTearDown = null; 138 var pendingTearDown = null;
139 139
140 /** 140 /**
141 * Runs all functions starting with test and reports success or 141 * Runs all functions starting with test and reports success or
142 * failure of the test suite. 142 * failure of the test suite.
143 */ 143 */
144 function runTests() { 144 function runTests() {
145 for (var name in window) { 145 for (var name in window) {
146 // To avoid unnecessary getting properties, test name first. 146 // To avoid unnecessary getting properties, test name first.
147 if (/^test/.test(name) && typeof window[name] == 'function') 147 if (/^test/.test(name) && typeof window[name] == 'function')
148 testCases.push(name); 148 testCases.push(name);
149 } 149 }
150 if (!testCases.length) { 150 if (!testCases.length) {
151 console.error('Failed to find test cases.'); 151 console.error('Failed to find test cases.');
152 cleanTestRun = false;
153 }
154 try {
155 if (window.setUpPage)
156 window.setUpPage();
157 } catch (err) {
158 cleanTestRun = false;
159 }
160 continueTesting();
161 }
162
163 /**
164 * Runs the next test in the queue. Reports the test results if the queue is
165 * empty.
166 * @param {boolean=} opt_asyncTestFailure Optional parameter indicated if the
167 * last asynchronous test failed.
168 */
169 function continueTesting(opt_asyncTestFailure) {
170 if (opt_asyncTestFailure)
171 cleanTestRun = false;
172 var done = false;
173 if (pendingTearDown) {
174 pendingTearDown();
175 pendingTearDown = null;
176 }
177 if (testCases.length > 0) {
178 var fn = testCases.pop();
179 var isAsyncTest = window[fn].length;
180 try {
181 if (window.setUp)
182 window.setUp();
183 pendingTearDown = window.tearDown;
184 window[fn](continueTesting);
185 } catch (err) {
186 console.error('Failure in test ' + fn + '\n' + err);
187 console.log(err.stack);
152 cleanTestRun = false; 188 cleanTestRun = false;
153 } 189 }
154 try { 190 // Asynchronous tests must manually call continueTesting when complete.
155 if (window.setUpPage) 191 if (!isAsyncTest)
156 window.setUpPage(); 192 continueTesting();
157 } catch (err) { 193 } else {
158 cleanTestRun = false; 194 done = true;
159 } 195 endTests(cleanTestRun);
160 continueTesting();
161 } 196 }
197 if (!done) {
198 domAutomationController.setAutomationId(1);
199 domAutomationController.send('PENDING');
200 }
201 }
162 202
163 /** 203 exports.runTests = runTests;
164 * Runs the next test in the queue. Reports the test results if the queue is
165 * empty.
166 * @param {boolean=} opt_asyncTestFailure Optional parameter indicated if the
167 * last asynchronous test failed.
168 */
169 function continueTesting(opt_asyncTestFailure) {
170 if (opt_asyncTestFailure)
171 cleanTestRun = false;
172 var done = false;
173 if (pendingTearDown) {
174 pendingTearDown();
175 pendingTearDown = null;
176 }
177 if (testCases.length > 0) {
178 var fn = testCases.pop();
179 var isAsyncTest = window[fn].length;
180 try {
181 if (window.setUp)
182 window.setUp();
183 pendingTearDown = window.tearDown;
184 window[fn](continueTesting);
185 } catch (err) {
186 console.error('Failure in test ' + fn + '\n' + err);
187 console.log(err.stack);
188 cleanTestRun = false;
189 }
190 // Asynchronous tests must manually call continueTesting when complete.
191 if (!isAsyncTest)
192 continueTesting();
193 } else {
194 done = true;
195 endTests(cleanTestRun);
196 }
197 if (!done) {
198 domAutomationController.setAutomationId(1);
199 domAutomationController.send('PENDING');
200 }
201 }
202
203 exports.runTests = runTests;
204 })(this); 204 })(this);
205 205
206 /** 206 /**
207 * Signals completion of a test. 207 * Signals completion of a test.
208 * @param {boolean} success Indicates if the test completed successfully. 208 * @param {boolean} success Indicates if the test completed successfully.
209 */ 209 */
210 function endTests(success) { 210 function endTests(success) {
211 domAutomationController.setAutomationId(1); 211 domAutomationController.setAutomationId(1);
212 domAutomationController.send(success ? 'SUCCESS' : 'FAILURE'); 212 domAutomationController.send(success ? 'SUCCESS' : 'FAILURE');
213 } 213 }
214 214
215 window.onerror = function() { 215 window.onerror = function() {
216 endTests(false); 216 endTests(false);
217 }; 217 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698