mirror of
				https://github.com/lightpanda-io/browser.git
				synced 2025-10-30 07:31:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* global add_completion_callback */
 | |
| /* global setup */
 | |
| 
 | |
| /*
 | |
|  * This file is intended for vendors to implement code needed to integrate
 | |
|  * testharness.js tests with their own test systems.
 | |
|  *
 | |
|  * Typically test system integration will attach callbacks when each test has
 | |
|  * run, using add_result_callback(callback(test)), or when the whole test file
 | |
|  * has completed, using
 | |
|  * add_completion_callback(callback(tests, harness_status)).
 | |
|  *
 | |
|  * For more documentation about the callback functions and the
 | |
|  * parameters they are called with see testharness.js
 | |
|  */
 | |
| 
 | |
| function dump_test_results(tests, status) {
 | |
|     var results_element = document.createElement("script");
 | |
|     results_element.type = "text/json";
 | |
|     results_element.id = "__testharness__results__";
 | |
|     var test_results = tests.map(function(x) {
 | |
|         return {name:x.name, status:x.status, message:x.message, stack:x.stack}
 | |
|     });
 | |
|     var data = {test:window.location.href,
 | |
|                 tests:test_results,
 | |
|                 status: status.status,
 | |
|                 message: status.message,
 | |
|                 stack: status.stack};
 | |
|     results_element.textContent = JSON.stringify(data);
 | |
| 
 | |
|     // To avoid a HierarchyRequestError with XML documents, ensure that 'results_element'
 | |
|     // is inserted at a location that results in a valid document.
 | |
|     var parent = document.body
 | |
|         ? document.body                 // <body> is required in XHTML documents
 | |
|         : document.documentElement;     // fallback for optional <body> in HTML5, SVG, etc.
 | |
| 
 | |
|     parent.appendChild(results_element);
 | |
| }
 | |
| 
 | |
| add_completion_callback(dump_test_results);
 | |
| 
 | |
| /* If the parent window has a testharness_properties object,
 | |
|  * we use this to provide the test settings. This is used by the
 | |
|  * default in-browser runner to configure the timeout and the
 | |
|  * rendering of results
 | |
|  */
 | |
| try {
 | |
|     if (window.opener && "testharness_properties" in window.opener) {
 | |
|         /* If we pass the testharness_properties object as-is here without
 | |
|          * JSON stringifying and reparsing it, IE fails & emits the message
 | |
|          * "Could not complete the operation due to error 80700019".
 | |
|          */
 | |
|         setup(JSON.parse(JSON.stringify(window.opener.testharness_properties)));
 | |
|     }
 | |
| } catch (e) {
 | |
| }
 | |
| // vim: set expandtab shiftwidth=4 tabstop=4:
 | 
