mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-30 07:31:47 +00:00
wpt: first draft for tests
This commit is contained in:
4941
tests/wpt/resources/testharness.js
Normal file
4941
tests/wpt/resources/testharness.js
Normal file
File diff suppressed because it is too large
Load Diff
57
tests/wpt/resources/testharnessreport.js
Normal file
57
tests/wpt/resources/testharnessreport.js
Normal file
@@ -0,0 +1,57 @@
|
||||
/* 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:
|
||||
Reference in New Issue
Block a user