summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/reporting/document-reporting-named-endpoints.https.sub.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/reporting/document-reporting-named-endpoints.https.sub.html')
-rw-r--r--testing/web-platform/tests/reporting/document-reporting-named-endpoints.https.sub.html54
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/web-platform/tests/reporting/document-reporting-named-endpoints.https.sub.html b/testing/web-platform/tests/reporting/document-reporting-named-endpoints.https.sub.html
new file mode 100644
index 0000000000..c24601147a
--- /dev/null
+++ b/testing/web-platform/tests/reporting/document-reporting-named-endpoints.https.sub.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML>
+<html>
+
+<head>
+ <title>Test that reports are sent to multiple named endpoints</title>
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <script src='resources/report-helper.js'></script>
+</head>
+
+<body>
+ <script>
+ const t = async_test("Test that image does not load");
+ async_test(function (t) {
+ const observer = new ReportingObserver((reports, observer) => {
+ t.step(() => {
+ assert_equals(reports[0].type, 'csp-violation');
+ });
+ t.done();
+ }, { types: ['csp-violation'] });
+ observer.observe();
+ }, "csp violation report observed");
+
+ promise_test(async t => {
+ return new Promise(resolve => {
+ new ReportingObserver((reports, observer) => resolve(reports),
+ { types: ['document-policy-violation'] }).observe();
+ }).then((reports) => {
+ assert_equals(reports[0].type, 'document-policy-violation');
+ })
+ }, "document policy violation observed");
+ </script>
+ <img src='/reporting/resources/fail.png' onload='t.unreached_func("The image should not have loaded");'
+ onerror='t.done();'>
+ <script>document.write("This should be written into the document");</script>
+ <script>
+ const base_url = `${location.protocol}//${location.host}`;
+ const endpoint = `${base_url}/reporting/resources/report.py`;
+ const group1_id = '0d334af1-1c5c-4e59-9079-065131ff2a45';
+ const group2_id = '09c1a265-5fc7-4c49-b35c-32078c2d0c19';
+ promise_test(async t => {
+ await wait(3000);
+ // Verify CSP reports are sent to configured endpoint.
+ const csp_reports = await pollReports(endpoint, group1_id);
+ checkReportExists(csp_reports, 'csp-violation', location.href);
+ // Verify Document Policy reports are sent to configured endpoint.
+ const dp_reports = await pollReports(endpoint, group2_id);
+ checkReportExists(dp_reports, 'document-policy-violation', location.href);
+ }, "Reporting endpoints received reports.");
+ </script>
+
+</body>
+
+</html>