Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / third_party / tvcm / src / tvcm / unittest / module_test_case_runner.html
1 <!DOCTYPE html>
2 <html>
3 <!--
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.
7 -->
8 <head>
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">
17 </head>
18 <body>
19   <h1 id="status">
20   </h1>
21   <script>
22     'use strict';
23     /**
24      * Polled by tvcm.module_test_case
25      */
26     window.__readyToRun = false;
27
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;
38         });
39       });
40     }
41
42     function runTestNamed(fullyQualifiedTestName) {
43       statusEl.textContent = 'Running ' + fullyQualifiedTestName;
44       function cleanup() {
45         statusEl.textContent = '';
46       }
47       return _runTestNamedImpl(fullyQualifiedTestName).then(
48         cleanup, cleanup);
49     }
50
51     function _runTestNamedImpl(fullyQualifiedTestName) {
52       var p = tvcm.unittest.TestCase.parseFullyQualifiedName(
53           fullyQualifiedTestName);
54       var suiteNameToLoad = p.suiteName;
55       var testCaseNameToRun = p.testCaseName;
56
57       var runTestResolver;
58       var runTestPromise = new Promise(function(resolve, reject) {
59         runTestResolver = {
60           resolve: resolve,
61           reject: reject
62         };
63       });
64
65       var loader = new tvcm.unittest.SuiteLoader([suiteNameToLoad]);
66       loader.allSuitesLoadedPromise.then(
67         beginRunningTestCase,
68         loadSuiteFailed);
69
70       var results = new tvcm.unittest.TextTestResults();
71       function loadSuiteFailed(e) {
72         var normalizedException = tvcm.normalizeException(e);
73         runTestResolver.reject(e);
74       }
75
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(
82           runTestCaseComplete,
83           runTestCaseComplete);
84       }
85
86       function runTestCaseComplete() {
87         if (results.numTestsThatFailed === 0) {
88           runTestResolver.resolve();
89           return;
90         }
91
92         runTestResolver.reject(results.buffer);
93       }
94       return runTestPromise;
95     }
96
97     window.addEventListener('load', function() {
98       window.__readyToRun = true;
99     });
100   </script>
101 </body>
102 </html>