| Index: chrome/browser/resources/hterm/js/test_manager.js
|
| diff --git a/chrome/browser/resources/hterm/js/test_manager.js b/chrome/browser/resources/hterm/js/test_manager.js
|
| index 66444b62367f55830d278488b55b6579548cef72..bb8faf3d59fe3b4dfbc546c6f4e46020fd933a3e 100644
|
| --- a/chrome/browser/resources/hterm/js/test_manager.js
|
| +++ b/chrome/browser/resources/hterm/js/test_manager.js
|
| @@ -332,6 +332,22 @@ TestManager.Suite.prototype.setup = function(cx) {};
|
| TestManager.Suite.prototype.preamble = function(result, cx) {};
|
|
|
| /**
|
| + * Subclassable method called to do post-test tear-down.
|
| + *
|
| + * The default implementation of this method is a no-op. If your test suite
|
| + * requires some kind of pre-test setup, this is the place to do it.
|
| + *
|
| + * This can be used to avoid a bunch of boilerplate setup/teardown code in
|
| + * this suite's testcases.
|
| + *
|
| + * Any exception here will abort the remainder of the test run.
|
| + *
|
| + * @param {TestManager.Result} result The result object for the upcoming test.
|
| + * @param {Object} cx The context object for a test run.
|
| + */
|
| +TestManager.Suite.prototype.postamble = function(result, cx) {};
|
| +
|
| +/**
|
| * Object representing a single test in a test suite.
|
| *
|
| * These are created as part of the TestManager.Suite.addTest() method. You
|
| @@ -474,9 +490,9 @@ TestManager.TestRun.prototype.selectTest = function(test) {
|
| this.testQueue_.push(test);
|
| };
|
|
|
| -TestManager.TestRun.prototype.selectSuite = function(suiteClass, pattern) {
|
| +TestManager.TestRun.prototype.selectSuite = function(suiteClass, opt_pattern) {
|
| + var pattern = opt_pattern || this.ALL_TESTS;
|
| var selectCount = 0;
|
| -
|
| var testList = suiteClass.getTestList();
|
|
|
| for (var j = 0; j < testList.length; j++) {
|
| @@ -487,7 +503,7 @@ TestManager.TestRun.prototype.selectSuite = function(suiteClass, pattern) {
|
| if (pattern instanceof RegExp) {
|
| if (!pattern.test(test.testName))
|
| continue;
|
| - } else if (testName != pattern) {
|
| + } else if (test.testName != pattern) {
|
| continue;
|
| }
|
| }
|
| @@ -537,7 +553,7 @@ TestManager.TestRun.prototype.onUncaughtException_ = function(
|
| // This is a result.pass() or result.fail() call from a callback. We're
|
| // already going to deal with it as part of the completeTest_() call
|
| // that raised it. We can safely squelch this error message.
|
| - return false;
|
| + return true;
|
| }
|
|
|
| if (!this.currentResult)
|
| @@ -605,6 +621,14 @@ TestManager.TestRun.prototype.onTestRunComplete_ = function(opt_skipTimeout) {
|
| * completed.
|
| */
|
| TestManager.TestRun.prototype.onResultComplete = function(result) {
|
| + try {
|
| + result.suite.postamble();
|
| + } catch (ex) {
|
| + this.log.println('Unexpected exception in postamble: ' +
|
| + (ex.stack ? ex.stack : ex));
|
| + this.panic = true;
|
| + }
|
| +
|
| this.log.popPrefix();
|
| this.log.print('} ' + result.status + ', ' +
|
| this.msToSeconds_(result.duration));
|
| @@ -749,7 +773,7 @@ TestManager.TestRun.prototype.run = function() {
|
| * Format milliseconds as fractional seconds.
|
| */
|
| TestManager.TestRun.prototype.msToSeconds_ = function(ms) {
|
| - var secs = (ms / 100).toFixed(2);
|
| + var secs = (ms / 1000).toFixed(2);
|
| return secs + 's';
|
| };
|
|
|
|
|