summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/reporting/generateTestReport.html
blob: 1c6e7dc225726f46f42c5f50e54bd54b46cf9be6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<meta charset="utf-8" />
<title>Reporting: Generate Test Report</title>
<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script>
  // Test that the "generate_test_report" API works.
  async_test(function(test) {
    var observer = new ReportingObserver(function(reports) {
      test.step(function() {
        assert_equals(reports.length, 1);
        // Ensure that the contents of the report are valid.
        assert_equals(reports[0].type, "test");
        assert_true(reports[0].url.endsWith("reporting/generateTestReport.html"));
        assert_equals(reports[0].body.message, "Test message.");
        // Ensure that the toJSON() call of the report are valid.
        const reportJSON = reports[0].toJSON();
        assert_equals(reports[0].type, reportJSON.type);
        assert_equals(reports[0].url, reportJSON.url);
        assert_equals(reports[0].body.message, reportJSON.body.message);
        // Ensure that report can be successfully JSON serialized.
        assert_equals(JSON.stringify(reports[0]), JSON.stringify(reportJSON));
      });
      test.done();
    });
    observer.observe();

    // This should result in a "test" type report being generated and observed.
    test_driver.generate_test_report("Test message.")
      .catch(test.unreached_func('generate test report failed'));
  }, "Generate Test Report");
</script>