| OLD | NEW | 
 | (Empty) | 
|   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 |  | 
|   3 // BSD-style license that can be found in the LICENSE file. |  | 
|   4  |  | 
|   5 /** |  | 
|   6  * A simple unit test library for running tests in a browser. |  | 
|   7  */ |  | 
|   8 #library('unittest'); |  | 
|   9  |  | 
|  10 #import('dart:html'); |  | 
|  11 #import('dart:isolate'); |  | 
|  12  |  | 
|  13 #source('config.dart'); |  | 
|  14 #source('shared.dart'); |  | 
|  15 #source('html_print.dart'); |  | 
|  16  |  | 
|  17 /** Whether this is run within dartium layout tests. */ |  | 
|  18 bool _isLayoutTest = false; |  | 
|  19  |  | 
|  20 void forLayoutTests() { |  | 
|  21   _isLayoutTest = true; |  | 
|  22 } |  | 
|  23  |  | 
|  24 class PlatformConfiguration extends Configuration { |  | 
|  25   // TODO(rnystrom): Get rid of this if we get canonical closures for methods. |  | 
|  26   EventListener _onErrorClosure; |  | 
|  27  |  | 
|  28   void onInit() { |  | 
|  29     _onErrorClosure = (e) { _onError(e); }; |  | 
|  30   } |  | 
|  31  |  | 
|  32   void _onError(e) { |  | 
|  33    if (_currentTest < _tests.length) { |  | 
|  34       final testCase = _tests[_currentTest]; |  | 
|  35       // TODO(vsm): figure out how to expose the stack trace here |  | 
|  36       // Currently e.message works in dartium, but not in dartc. |  | 
|  37       testCase.error('(DOM callback has errors) Caught ${e}', ''); |  | 
|  38       _state = _UNCAUGHT_ERROR; |  | 
|  39       if (testCase.callbacks > 0) { |  | 
|  40         _currentTest++; |  | 
|  41         _testRunner(); |  | 
|  42       } |  | 
|  43     } |  | 
|  44   } |  | 
|  45  |  | 
|  46   void onStart() { |  | 
|  47     window.postMessage('unittest-suite-wait-for-done', '*'); |  | 
|  48     // Listen for uncaught errors. |  | 
|  49     window.on.error.add(_onErrorClosure); |  | 
|  50   } |  | 
|  51  |  | 
|  52   void onTestResult(TestCase testCase) {} |  | 
|  53  |  | 
|  54   void onDone(int passed, int failed, int errors, List<TestCase> results) { |  | 
|  55     window.on.error.remove(_onErrorClosure); |  | 
|  56     _showResultsInPage(passed, failed, errors, results, _isLayoutTest); |  | 
|  57     window.postMessage('unittest-suite-done', '*'); |  | 
|  58   } |  | 
|  59 } |  | 
| OLD | NEW |