/* 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 // is required in XHTML documents : document.documentElement; // fallback for optional 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: