blob: e0714885ffcc9d13bf2acb8e60634a2dd62170dc [file] [log] [blame]
// The SanityChecker is used in debug mode to identify problems with the
// structure of the testsuite. In release mode it is mocked out to do nothing.
function SanityChecker() {}
SanityChecker.prototype.checkScenario = function(scenario) {
// Check if scenario is valid.
// TODO(kristijanburnik): Move to a sanity-checks.js for debug mode only.
test(function() {
// We extend the exsiting test_expansion_schema not to kill performance by
// copying.
var expectedFields = SPEC_JSON["test_expansion_schema"];
expectedFields["referrer_policy"] = SPEC_JSON["referrer_policy_schema"];
assert_own_property(scenario, "subresource_path",
"Scenario has the path to the subresource.");
for (var field in expectedFields) {
assert_own_property(scenario, field,
"The scenario contains field " + field)
assert_in_array(scenario[field], expectedFields[field],
"Scenario's " + field + " is one of: " +
expectedFields[field].join(", ")) + "."
}
// Check if the protocol is matched.
assert_equals(scenario["source_protocol"] + ":", location.protocol,
"Protocol of the test page should match the scenario.")
}, "[ReferrerPolicyTestCase] The test scenario is valid.");
}
SanityChecker.prototype.checkSubresourceResult = function(test,
scenario,
subresourceUrl,
result) {
test.step(function() {
assert_equals(Object.keys(result).length, 3);
assert_own_property(result, "location");
assert_own_property(result, "referrer");
assert_own_property(result, "headers");
// Skip location check for scripts.
if (scenario.subresource == "script-tag")
return;
// Sanity check: location of sub-resource matches reported location.
assert_equals(result.location, subresourceUrl,
"Subresource reported location.");
}, "Running a valid test scenario.");
};