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>All Tracing Tests</title>
10 <script src="/tvcm/__init__.js"></script>
11 <link rel="shortcut icon" href="data:image/x-icon;base64," type="image/x-icon">
14 box-sizing: border-box;
20 body > x-base-interactive-test-runner {
29 tvcm.require('tvcm.unittest');
30 tvcm.require('tvcm.unittest.interactive_test_runner');
34 function loadAndRunTests() {
35 var loader = new tvcm.unittest.SuiteLoader();
36 return loader.allSuitesLoadedPromise.then(function() {
37 var results = new tvcm.unittest.InteractiveTestRunner();
38 results.testLinks = loader.testLinks;
39 results.allTests = loader.getAllTests();
40 document.body.appendChild(results);
42 results.setState(stateFromSearchString(
43 window.location.search.substring(1)));
45 function stateToSearchString(state) {
48 parts.push(encodeURI(k) + '=' +
49 encodeURI(JSON.stringify(state[k])));
50 return parts.join('&');
53 function stateFromSearchString(string) {
55 string.split('&').forEach(function(part) {
58 var kv = part.split('=');
59 state[decodeURI(kv[0])] = JSON.parse(decodeURI(kv[1]));
64 results.addEventListener('statechange', function() {
65 var state = results.getState();
66 var stateString = stateToSearchString(state);
67 if (window.location.search == stateString)
69 var stateURL = window.location.pathname + '?' + stateString;
70 window.history.pushState(state, document.title, stateURL);
73 window.addEventListener('popstate', function(state) {
74 results.setState(state);
77 results.getHRefForTestCase = function(testCase) {
78 var state = results.getState();
79 state.testFilterString = testCase.fullyQualifiedName;
80 state.shortFormat = false;
81 var stateString = stateToSearchString(state);
82 return window.location.pathname + '?' + stateString;
87 window.addEventListener('load', loadAndRunTests);