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="/platform.min.js"></script>
12 <script src="/polymer.min.js"></script>
13 <link rel="import" href="/tvcm/unittest.html">
14 <link rel="import" href="/tvcm/unittest/text_test_results.html">
15 <link rel="import" href="/tvcm/unittest/suite_loader.html">
16 <link rel="import" href="/tvcm/unittest/test_runner.html">
24 * Polled by tvcm.module_test_case
26 window.__readyToRun = false;
28 var statusEl = document.querySelector('#status');
29 function discoverTestsInModules(testModuleNames) {
30 statusEl.textContent = 'Discovering tests...';
31 var loader = new tvcm.unittest.SuiteLoader(testModuleNames);
32 return loader.allSuitesLoadedPromise.then(function() {
33 return loader.getAllTests().filter(function(test) {
34 return test.testType == tvcm.unittest.TestTypes.UNITTEST;
35 }).map(function(test) {
36 statusEl.textContent = 'Idle';
37 return test.fullyQualifiedName;
42 function runTestNamed(fullyQualifiedTestName) {
43 statusEl.textContent = 'Running ' + fullyQualifiedTestName;
45 statusEl.textContent = '';
47 return _runTestNamedImpl(fullyQualifiedTestName).then(
51 function _runTestNamedImpl(fullyQualifiedTestName) {
52 var p = tvcm.unittest.TestCase.parseFullyQualifiedName(
53 fullyQualifiedTestName);
54 var suiteNameToLoad = p.suiteName;
55 var testCaseNameToRun = p.testCaseName;
58 var runTestPromise = new Promise(function(resolve, reject) {
65 var loader = new tvcm.unittest.SuiteLoader([suiteNameToLoad]);
66 loader.allSuitesLoadedPromise.then(
70 var results = new tvcm.unittest.TextTestResults();
71 function loadSuiteFailed(e) {
72 var normalizedException = tvcm.normalizeException(e);
73 runTestResolver.reject(e);
76 function beginRunningTestCase() {
77 var testCase = loader.findTestWithFullyQualifiedName(
78 fullyQualifiedTestName);
79 var runner = new tvcm.unittest.TestRunner(results, [testCase]);
80 runner.beginRunning();
81 return runner.runCompletedPromise.then(
86 function runTestCaseComplete() {
87 if (results.numTestsThatFailed === 0) {
88 runTestResolver.resolve();
92 runTestResolver.reject(results.buffer);
94 return runTestPromise;
97 window.addEventListener('load', function() {
98 window.__readyToRun = true;