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

Unified Diff: pkg/unittest/lib/test_controller.js

Issue 807193003: Re-apply "Remove unittest and matcher from the repo." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/unittest/lib/src/utils.dart ('k') | pkg/unittest/lib/unittest.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/unittest/lib/test_controller.js
diff --git a/pkg/unittest/lib/test_controller.js b/pkg/unittest/lib/test_controller.js
deleted file mode 100644
index 8a62d6aecd0ba2679cacd864bd8fe505171cc2b2..0000000000000000000000000000000000000000
--- a/pkg/unittest/lib/test_controller.js
+++ /dev/null
@@ -1,233 +0,0 @@
-// 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.
-
-/**
- * Test controller logic - used by unit test harness to embed tests in
- * conent shell.
- */
-
-// Clear the console before every test run - this is Firebug specific code.
-if (typeof console == "object" && typeof console.clear == "function") {
- console.clear();
-}
-
-// Some tests may expect and have no way to suppress global errors.
-var testExpectsGlobalError = false;
-var testSuppressedGlobalErrors = [];
-
-// Set window onerror to make sure that we catch test harness errors across all
-// browsers.
-window.onerror = function (message, url, lineNumber) {
- if (testExpectsGlobalError) {
- testSuppressedGlobalErrors.push({
- message: message
- });
- return;
- }
- if (url) {
- showErrorAndExit(
- "\n\n" + url + ":" + lineNumber + ":\n" + message + "\n\n");
- } else {
- showErrorAndExit(message);
- }
- window.postMessage('unittest-suite-external-error', '*');
-};
-
-// Start Dartium/content_shell, unless we are waiting for HTML Imports to load.
-// HTML Imports allows a document to link to other HTMLs documents via
-// <link rel=import>. It also allows for those other documents to contain
-// <script> tags, which must be run before scripts on the main page.
-// We have package:web_components to polyfill this feature, and it will handle
-// starting Dartium/content_shell in that case. HTML Imports is used by Polymer,
-// but it could be used by itself too. See the specification:
-// https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/imports/index.html
-if (navigator.webkitStartDart && !window.HTMLImports) {
- navigator.webkitStartDart();
-}
-
-// testRunner is provided by content shell.
-// It is not available in browser tests.
-var testRunner = window.testRunner || window.layoutTestController;
-
-var waitForDone = false;
-
-// Returns the driving window object if available
-function getDriverWindow() {
- if (window != window.parent) {
- // We're running in an iframe.
- return window.parent;
- } else if (window.opener) {
- // We were opened by another window.
- return window.opener;
- }
- return null;
-}
-
-function notifyStart() {
- var driver = getDriverWindow();
- if (driver) {
- driver.postMessage("STARTING", "*");
- }
-}
-// We call notifyStart here to notify the encapsulating browser.
-notifyStart();
-
-function notifyDone() {
- if (testRunner) testRunner.notifyDone();
-
- // TODO(ricow): REMOVE, debug info, see issue 13292
- if (!testRunner) {
- printMessage('Calling notifyDone()');
- }
- // To support in browser launching of tests we post back start and result
- // messages to the window.opener.
- var driver = getDriverWindow();
- if (driver) {
- driver.postMessage(window.document.body.innerHTML, "*");
- }
-}
-
-function processMessage(msg) {
- if (typeof msg != 'string') return;
- // TODO(ricow): REMOVE, debug info, see issue 13292
- if (!testRunner) {
- // Filter out ShadowDOM polyfill messages which are random floats.
- if (msg != parseFloat(msg)) {
- printMessage('processMessage(): ' + msg);
- }
- }
- if (msg == 'unittest-suite-done') {
- notifyDone();
- } else if (msg == 'unittest-suite-wait-for-done') {
- waitForDone = true;
- if (testRunner) {
- testRunner.startedDartTest = true;
- }
- } else if (msg == 'dart-calling-main') {
- if (testRunner) {
- testRunner.startedDartTest = true;
- }
- } else if (msg == 'dart-main-done') {
- if (!waitForDone) {
- printMessage('PASS');
- notifyDone();
- }
- } else if (msg == 'unittest-suite-success') {
- printMessage('PASS');
- notifyDone();
- } else if (msg == 'unittest-suite-fail') {
- showErrorAndExit('Some tests failed.');
- }
-}
-
-function onReceive(e) {
- processMessage(e.data);
-}
-
-if (testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
-}
-window.addEventListener("message", onReceive, false);
-
-function showErrorAndExit(message) {
- if (message) {
- printMessage('Error: ' + String(message));
- }
- // dart/tools/testing/test_runner.dart is looking for either PASS or
- // FAIL in a browser test's output.
- printMessage('FAIL');
- notifyDone();
-}
-
-function onLoad(e) {
- // needed for dartium compilation errors.
- if (window.compilationError) {
- showErrorAndExit(window.compilationError);
- }
-}
-
-window.addEventListener("DOMContentLoaded", onLoad, false);
-
-// Note: before renaming this function, note that it is also included in an
-// inlined error handler in the HTML files that wrap DRT tests.
-// See: tools/testing/dart/browser_test.dart
-function externalError(e) {
- // needed for dartium compilation errors.
- showErrorAndExit(e && e.message);
- window.postMessage('unittest-suite-external-error', '*');
-}
-
-document.addEventListener('readystatechange', function () {
- if (document.readyState != "loaded") return;
- // If 'startedDartTest' is not set, that means that the test did not have
- // a chance to load. This will happen when a load error occurs in the VM.
- // Give the machine time to start up.
- setTimeout(function() {
- // A window.postMessage might have been enqueued after this timeout.
- // Just sleep another time to give the browser the time to process the
- // posted message.
- setTimeout(function() {
- if (testRunner && !testRunner.startedDartTest) {
- notifyDone();
- }
- }, 0);
- }, 50);
-});
-
-// dart2js will generate code to call this function to handle the Dart
-// [print] method.
-//
-// dartium will invoke this method for [print] calls if the environment variable
-// "DART_FORWARDING_PRINT" was set when launching dartium.
-//
-// Our tests will be wrapped, so we can detect when [main] is called and when
-// it has ended.
-// The wrapping happens either via "dartMainRunner" (for dart2js) or wrapped
-// tests for dartium.
-//
-// The following messages are handled specially:
-// dart-calling-main: signals that the dart [main] function will be invoked
-// dart-main-done: signals that the dart [main] function has finished
-// unittest-suite-wait-for-done: signals the start of an asynchronous test
-// unittest-suite-success: signals the end of an asynchrounous test
-//
-// These messages are used to communicate with the test and will be posted so
-// [processMessage] above can see it.
-function dartPrint(msg) {
- if ((msg === 'unittest-suite-success')
- || (msg === 'unittest-suite-done')
- || (msg === 'unittest-suite-wait-for-done')
- || (msg === 'dart-calling-main')
- || (msg === 'dart-main-done')) {
- window.postMessage(msg, '*');
- return;
- }
- printMessage(msg);
-}
-
-// Prints 'msg' to the console (if available) and to the body of the html
-// document.
-function printMessage(msg) {
- if (typeof console === 'object') console.warn(msg);
- var pre = document.createElement('pre');
- pre.appendChild(document.createTextNode(String(msg)));
- document.body.appendChild(pre);
- document.body.appendChild(document.createTextNode('\n'));
-}
-
-// dart2js will generate code to call this function instead of calling
-// Dart [main] directly. The argument is a closure that invokes main.
-function dartMainRunner(main) {
- dartPrint('dart-calling-main');
- try {
- main();
- } catch (e) {
- dartPrint(e);
- if (e.stack) dartPrint(e.stack);
- window.postMessage('unittest-suite-fail', '*');
- return;
- }
- dartPrint('dart-main-done');
-}
« no previous file with comments | « pkg/unittest/lib/src/utils.dart ('k') | pkg/unittest/lib/unittest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698