| Index: third_party/WebKit/LayoutTests/external/wpt/mixed-content/generic/sanity-checker.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/generic/sanity-checker.js b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/generic/sanity-checker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..55a103adf0f29c615d40bc47943be1aec25c8f1e
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/generic/sanity-checker.js
|
| @@ -0,0 +1,53 @@
|
| +// 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);
|
| +}
|
|
|