| OLD | NEW |
| 1 /* | 1 /* |
| 2 * THIS FILE INTENTIONALLY LEFT BLANK | 2 * THIS FILE INTENTIONALLY LEFT BLANK |
| 3 * | 3 * |
| 4 * More specifically, this file is intended for vendors to implement | 4 * More specifically, this file is intended for vendors to implement |
| 5 * code needed to integrate testharness.js tests with their own test systems. | 5 * code needed to integrate testharness.js tests with their own test systems. |
| 6 * | 6 * |
| 7 * Typically such integration will attach callbacks when each test is | 7 * Typically such integration will attach callbacks when each test is |
| 8 * has run, using add_result_callback(callback(test)), or when the whole test fi
le has | 8 * has run, using add_result_callback(callback(test)), or when the whole test fi
le has |
| 9 * completed, using add_completion_callback(callback(tests, harness_status)). | 9 * completed, using add_completion_callback(callback(tests, harness_status)). |
| 10 * | 10 * |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 /* If the test has a meta tag named flags and the content contains "dom", then i
t's a CSSWG test. | 41 /* If the test has a meta tag named flags and the content contains "dom", then i
t's a CSSWG test. |
| 42 */ | 42 */ |
| 43 function isCSSWGTest() { | 43 function isCSSWGTest() { |
| 44 var flags = document.querySelector('meta[name=flags]'), | 44 var flags = document.querySelector('meta[name=flags]'), |
| 45 content = flags ? flags.getAttribute('content') : null; | 45 content = flags ? flags.getAttribute('content') : null; |
| 46 | 46 |
| 47 return content && content.match(/\bdom\b/); | 47 return content && content.match(/\bdom\b/); |
| 48 } | 48 } |
| 49 | 49 |
| 50 function isJSTest() { |
| 51 return !!document.querySelector('script[src*="/resources/testharness"]'); |
| 52 } |
| 53 |
| 50 /* Using a callback function, test results will be added to the page in a | 54 /* Using a callback function, test results will be added to the page in a |
| 51 * manner that allows dumpAsText to produce readable test results | 55 * manner that allows dumpAsText to produce readable test results |
| 52 */ | 56 */ |
| 53 add_completion_callback(function (tests, harness_status) { | 57 add_completion_callback(function (tests, harness_status) { |
| 54 | 58 |
| 55 // Create element to hold results | 59 // Create element to hold results |
| 56 var results = document.createElement("pre"); | 60 var results = document.createElement("pre"); |
| 57 | 61 |
| 58 // Declare result string | 62 // Declare result string |
| 59 var resultStr = "This is a testharness.js-based test.\n"; | 63 var resultStr = "This is a testharness.js-based test.\n"; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 87 } | 91 } |
| 88 } | 92 } |
| 89 resultStr += "Harness: the test ran to completion.\n"; | 93 resultStr += "Harness: the test ran to completion.\n"; |
| 90 | 94 |
| 91 // Set results element's textContent to the results string | 95 // Set results element's textContent to the results string |
| 92 results.textContent = resultStr; | 96 results.textContent = resultStr; |
| 93 | 97 |
| 94 function done() { | 98 function done() { |
| 95 if (self.testRunner) { | 99 if (self.testRunner) { |
| 96 var logDiv = document.getElementById('log'); | 100 var logDiv = document.getElementById('log'); |
| 97 if (isCSSWGTest() && logDiv) { | 101 if ((isCSSWGTest() || isJSTest()) && logDiv) { |
| 98 // Assume it's a CSSWG style test, and anything other than the l
og div isn't | 102 // Assume it's a CSSWG style test, and anything other than the l
og div isn't |
| 99 // material to the testrunner output, so should be hidden from t
he text dump | 103 // material to the testrunner output, so should be hidden from t
he text dump |
| 100 for (var i = 0; i < document.body.children.length; i++) { | 104 for (var i = 0; i < document.body.children.length; i++) { |
| 101 if (document.body.children[i] === logDiv) continue; | 105 if (document.body.children[i] === logDiv) continue; |
| 102 | 106 |
| 103 document.body.children[i].style.visibility = "hidden"; | 107 document.body.children[i].style.visibility = "hidden"; |
| 104 } | 108 } |
| 105 } | 109 } |
| 106 } | 110 } |
| 107 | 111 |
| 108 // Add results element to document | 112 // Add results element to document |
| 109 document.body.appendChild(results); | 113 document.body.appendChild(results); |
| 110 | 114 |
| 111 if (self.testRunner) | 115 if (self.testRunner) |
| 112 testRunner.notifyDone(); | 116 testRunner.notifyDone(); |
| 113 } | 117 } |
| 114 | 118 |
| 115 if (!document.body || document.readyState === 'loading') { | 119 if (!document.body || document.readyState === 'loading') { |
| 116 window.addEventListener('load', done); | 120 window.addEventListener('load', done); |
| 117 } else { | 121 } else { |
| 118 done(); | 122 done(); |
| 119 } | 123 } |
| 120 }); | 124 }); |
| OLD | NEW |