gecko-dev/testing/web-platform/tests/mixed-content/generic/sanity-checker.js
James Graham 45ed80ae53 Bug 1187720 - Update web-platform-tests to revision 4bc69f287365a67585d470300a2ef109689cf465, a=testonly
--HG--
rename : testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/571.html => testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/571-haswarn.html
rename : testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/572.html => testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/572-haswarn.html
rename : testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/573.html => testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/573-haswarn.html
rename : testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/div.html => testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/div-haswarn.html
rename : testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-disparity.html => testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-disparity-haswarn.html
rename : testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-role.html => testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-role-haswarn.html
2015-07-26 18:49:16 +01:00

53 lines
2 KiB
JavaScript

// The SanityChecker is used in debug mode to identify problems with the
// structure of the testsuite and to force early test failures.
// In release mode it is mocked out to do nothing.
function SanityChecker() {}
SanityChecker.prototype.checkScenario = function(scenario, resourceInvoker) {
// Check if scenario is valid.
test(function() {
var expectedFields = SPEC_JSON["test_expansion_schema"];
for (var field in expectedFields) {
if (field == "expansion")
continue
assert_own_property(scenario, field,
"The scenario should contain field '" + field + "'.")
var expectedFieldList = expectedFields[field];
if (!expectedFieldList.hasOwnProperty('length')) {
var expectedFieldList = [];
for (var key in expectedFields[field]) {
expectedFieldList = expectedFieldList.concat(expectedFields[field][key])
}
}
assert_in_array(scenario[field], expectedFieldList,
"Scenario's " + field + " is one of: " +
expectedFieldList.join(", ")) + "."
}
// Check if the protocol is matched.
assert_equals(scenario["source_scheme"] + ":", location.protocol,
"Protocol of the test page should match the scenario.")
assert_own_property(resourceInvoker, scenario.subresource,
"Subresource should be supported");
}, "[MixedContentTestCase] The test scenario should be valid.");
}
// For easier debugging runs, we can fail a test earlier.
SanityChecker.prototype.setFailTimeout = function(test, timeout) {
// Due to missing implementations, tests time out, so we fail them early.
// TODO(kristijanburnik): Once WPT rolled in:
// https://github.com/w3c/testharness.js/pull/127
// Refactor to make use of step_timeout.
setTimeout(function() {
test.step(function() {
assert_equals(test.phase, test.phases.COMPLETE,
"Expected test to complete.");
test.done();
})
}, timeout || 1000);
}