4 Copyright (c) 2013 The Chromium Authors. All rights reserved.
5 Use of this source code is governed by a BSD-style license that can be
6 found in the LICENSE file.
9 <title>tvcm/module_test_case_backend.html</title>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
11 <script src="/polymer.js"></script>
12 <link rel="import" href="/tvcm/unittest.html">
13 <link rel="import" href="/tvcm/unittest/text_test_results.html">
14 <link rel="import" href="/tvcm/unittest/suite_loader.html">
15 <link rel="import" href="/tvcm/unittest/test_runner.html">
23 * Polled by tvcm.module_test_case
25 window.__readyToRun = false;
27 var statusEl = document.querySelector('#status');
28 function discoverTestsInModules(testModuleNames) {
29 statusEl.textContent = 'Discovering tests...';
30 var loader = new tvcm.unittest.SuiteLoader(testModuleNames);
31 return loader.allSuitesLoadedPromise.then(function() {
32 return loader.getAllTests().filter(function(test) {
33 return test.testType == tvcm.unittest.TestTypes.UNITTEST;
34 }).map(function(test) {
35 statusEl.textContent = 'Idle';
36 return test.fullyQualifiedName;
41 function runTestNamed(fullyQualifiedTestName) {
42 statusEl.textContent = 'Running ' + fullyQualifiedTestName;
44 statusEl.textContent = '';
46 return _runTestNamedImpl(fullyQualifiedTestName).then(
50 function _runTestNamedImpl(fullyQualifiedTestName) {
51 var p = tvcm.unittest.TestCase.parseFullyQualifiedName(
52 fullyQualifiedTestName);
53 var suiteNameToLoad = p.suiteName;
54 var testCaseNameToRun = p.testCaseName;
57 var runTestPromise = new Promise(function(resolve, reject) {
64 var loader = new tvcm.unittest.SuiteLoader([suiteNameToLoad]);
65 loader.allSuitesLoadedPromise.then(
69 var results = new tvcm.unittest.TextTestResults();
70 function loadSuiteFailed(e) {
71 var normalizedException = tvcm.normalizeException(e);
72 runTestResolver.reject(e);
75 function beginRunningTestCase() {
76 var testCase = loader.findTestWithFullyQualifiedName(
77 fullyQualifiedTestName);
78 var runner = new tvcm.unittest.TestRunner(results, [testCase]);
79 runner.beginRunning();
80 return runner.runCompletedPromise.then(
85 function runTestCaseComplete() {
86 if (results.numTestsThatFailed === 0) {
87 runTestResolver.resolve();
91 runTestResolver.reject(results.buffer);
93 return runTestPromise;
96 window.addEventListener('load', function() {
97 window.__readyToRun = true;