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

Side by Side Diff: client/testing/unittest/shared.dart

Issue 9369006: First prototype of import map generator. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix path to JSON. Created 8 years, 10 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 | « no previous file | client/testing/unittest/unittest_vm.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 /** 5 /**
6 * Description text of the current test group. If multiple groups are nested, 6 * Description text of the current test group. If multiple groups are nested,
7 * this will contain all of their text concatenated. 7 * this will contain all of their text concatenated.
8 */ 8 */
9 String _currentGroup = ''; 9 String _currentGroup = '';
10 10
11 /** Tests executed in this suite. */ 11 /** Tests executed in this suite. */
12 List<TestCase> _tests; 12 List<TestCase> _tests;
13 13
14 /** 14 /**
15 * Callback used to run tests. Entrypoints can replace this with their own 15 * Callback used to run tests. Entrypoints can replace this with their own
16 * if they want. 16 * if they want.
17 */ 17 */
18 Function _testRunner; 18 Function _testRunner;
19 19
20 /** Whether this is run within dartium layout tests. */ 20 /** Whether this is run within dartium layout tests. */
21 bool _isLayoutTest = false; 21 bool _isLayoutTest = false;
22 22
23 /** Current test being executed. */ 23 /** Current test being executed. */
24 int _currentTest = 0; 24 int _currentTest = 0;
25 25
26 /** Total number of callbacks that have been executed in the current test. */ 26 /** Total number of callbacks that have been executed in the current test. */
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 int i = 0; 92 int i = 0;
93 void invokeNext() { 93 void invokeNext() {
94 closures[i](); 94 closures[i]();
95 i++; 95 i++;
96 if (i < length) { 96 if (i < length) {
97 window.setTimeout(invokeNext, 0); 97 window.setTimeout(invokeNext, 0);
98 } 98 }
99 } 99 }
100 window.setTimeout(invokeNext, 0); 100 window.setTimeout(invokeNext, 0);
101 } 101 }
102 } 102 }
103 103
104 /** 104 /**
105 * Creates a new named group of tests. Calls to group() or test() within the 105 * Creates a new named group of tests. Calls to group() or test() within the
106 * body of the function passed to this will inherit this group's description. 106 * body of the function passed to this will inherit this group's description.
107 */ 107 */
108 void group(String description, void body()) { 108 void group(String description, void body()) {
109 _ensureInitialized(); 109 _ensureInitialized();
110 110
111 // Concatenate the new group. 111 // Concatenate the new group.
112 final oldGroup = _currentGroup; 112 final oldGroup = _currentGroup;
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 /** 237 /**
238 * Lazily initializes the test library if not already initialized. 238 * Lazily initializes the test library if not already initialized.
239 */ 239 */
240 _ensureInitialized() { 240 _ensureInitialized() {
241 if (_state != _UNINITIALIZED) return; 241 if (_state != _UNINITIALIZED) return;
242 242
243 _tests = <TestCase>[]; 243 _tests = <TestCase>[];
244 _currentGroup = ''; 244 _currentGroup = '';
245 _state = _READY; 245 _state = _READY;
246 _testRunner = _nextBatch; 246 _testRunner = _nextBatch;
247 247
248 _platformInitialize(); 248 _platformInitialize();
249 249
250 // Immediately queue the suite up. It will run after a timeout (i.e. after 250 // Immediately queue the suite up. It will run after a timeout (i.e. after
251 // main() has returned). 251 // main() has returned).
252 _platformDefer(_runTests); 252 _platformDefer(_runTests);
253 } 253 }
254 254
255 /** 255 /**
256 * Wraps an value and provides an "==" operator that can be used to verify that 256 * Wraps an value and provides an "==" operator that can be used to verify that
257 * the value matches a given expectation. 257 * the value matches a given expectation.
258 */ 258 */
259 class Expectation { 259 class Expectation {
260 final _value; 260 final _value;
261 261
262 Expectation(this._value); 262 Expectation(this._value);
263 263
264 /** Asserts that the value is equivalent to [expected]. */ 264 /** Asserts that the value is equivalent to [expected]. */
265 void equals(expected) { 265 void equals(expected) {
266 // Use the type-specialized versions when appropriate to give better
267 // error messages.
266 if (_value is String && expected is String) { 268 if (_value is String && expected is String) {
267 Expect.stringEquals(expected, _value); 269 Expect.stringEquals(expected, _value);
270 } else if (_value is Map && expected is Map) {
271 Expect.mapEquals(expected, _value);
272 } else if (_value is Set && expected is Set) {
273 Expect.setEquals(expected, _value);
268 } else { 274 } else {
269 Expect.equals(expected, _value); 275 Expect.equals(expected, _value);
270 } 276 }
271 } 277 }
272 278
273 /** 279 /**
274 * Asserts that the difference between [expected] and the value is within 280 * Asserts that the difference between [expected] and the value is within
275 * [tolerance]. If no tolerance is given, it is assumed to be the value 4 281 * [tolerance]. If no tolerance is given, it is assumed to be the value 4
276 * significant digits smaller than the expected value. 282 * significant digits smaller than the expected value.
277 */ 283 */
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 /** Error or failure message. */ 337 /** Error or failure message. */
332 String message = ''; 338 String message = '';
333 339
334 /** 340 /**
335 * One of [_PASS], [_FAIL], or [_ERROR] or [null] if the test hasn't run yet. 341 * One of [_PASS], [_FAIL], or [_ERROR] or [null] if the test hasn't run yet.
336 */ 342 */
337 String result; 343 String result;
338 344
339 /** Stack trace associated with this test, or null if it succeeded. */ 345 /** Stack trace associated with this test, or null if it succeeded. */
340 String stackTrace; 346 String stackTrace;
341 347
342 Date startTime; 348 Date startTime;
343 349
344 Duration runningTime; 350 Duration runningTime;
345 351
346 TestCase(this.id, this.description, this.test, this.callbacks); 352 TestCase(this.id, this.description, this.test, this.callbacks);
347 353
348 bool get isComplete() => result != null; 354 bool get isComplete() => result != null;
349 355
350 void pass() { 356 void pass() {
351 result = _PASS; 357 result = _PASS;
352 } 358 }
353 359
354 void fail(String message_, String stackTrace_) { 360 void fail(String message_, String stackTrace_) {
355 result = _FAIL; 361 result = _FAIL;
356 this.message = message_; 362 this.message = message_;
357 this.stackTrace = stackTrace_; 363 this.stackTrace = stackTrace_;
358 } 364 }
359 365
360 void error(String message_, String stackTrace_) { 366 void error(String message_, String stackTrace_) {
361 result = _ERROR; 367 result = _ERROR;
362 this.message = message_; 368 this.message = message_;
363 this.stackTrace = stackTrace_; 369 this.stackTrace = stackTrace_;
364 } 370 }
365 } 371 }
366 372
367 typedef void TestFunction(); 373 typedef void TestFunction();
OLDNEW
« no previous file with comments | « no previous file | client/testing/unittest/unittest_vm.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698