mongo-dart / third_party / unittest / dom_config.dart

// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/** Configuration for running tests in a browser using dart:dom_deprecated. */



class DomConfiguration extends Configuration {
  /** Whether this is run within dartium layout tests. */
  final bool _isLayoutTest;


  // TODO(rnystrom): Get rid of this if we get canonical closures for methods.
  EventListener _onErrorClosure;

  void onInit() {
    _onErrorClosure = (e) {
      // TODO(vsm): figure out how to expose the stack trace here
      // Currently e.message works in dartium, but not in dartc.
      reportTestError('(DOM callback has errors) Caught $e', '');

  void onStart() {
    window.postMessage('unittest-suite-wait-for-done', '*');
    // Listen for uncaught errors.
    window.addEventListener('error', _onErrorClosure, true);

  void onTestResult(TestCase testCase) {}

  void onDone(int passed, int failed, int errors, List<TestCase> results,
      String uncaughtError) {
    window.removeEventListener('error', _onErrorClosure);
    _showResultsInPage(passed, failed, errors, results, _isLayoutTest,
    window.postMessage('unittest-suite-done', '*');

void useDomConfiguration([bool isLayoutTest = false]) {
  configure(new DomConfiguration(isLayoutTest));