summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/referrer-policy/generic/sanity-checker.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/referrer-policy/generic/sanity-checker.js')
-rw-r--r--testing/web-platform/tests/referrer-policy/generic/sanity-checker.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/referrer-policy/generic/sanity-checker.js b/testing/web-platform/tests/referrer-policy/generic/sanity-checker.js
new file mode 100644
index 000000000..e0714885f
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/generic/sanity-checker.js
@@ -0,0 +1,52 @@
+// 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.");
+};