<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
    // basic tests.
    test(function() {
      assert_throws(TypeError(),
                    function() { new SecurityPolicyViolationEvent(); });
    }, "SecurityPolicyViolationEvent constructor should throw with no parameters");

    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        referrer: "http://example.com",
        blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        sourceFile: "example.js",
        sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        lineNumber: 1,
        columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor works with an init dict");

    // missing required members
    test(function() {
      assert_throws(TypeError(),
        function() { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          // documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })});
    }, "SecurityPolicyViolationEvent constructor requires documentURI");

    test(function() {
      assert_throws(TypeError(),
        function() { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          // violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })});
    }, "SecurityPolicyViolationEvent constructor requires violatedDirective");

    test(function() {
      assert_throws(TypeError(),
        function() { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          // effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })});
    }, "SecurityPolicyViolationEvent constructor requires effectiveDirective");

    test(function() {
      assert_throws(TypeError(),
        function() { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          // originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })});
    }, "SecurityPolicyViolationEvent constructor requires originalPolicy");

    test(function() {
      assert_throws(TypeError(),
        function() { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          // disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })});
    }, "SecurityPolicyViolationEvent constructor requires disposition");

    test(function() {
      assert_throws(TypeError(),
        function() { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          // statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })});
    }, "SecurityPolicyViolationEvent constructor requires statusCode");

    // missing optional members
    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        // referrer: "http://example.com",
        blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        sourceFile: "example.js",
        sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        lineNumber: 1,
        columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor does not require referrer");

    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        referrer: "http://example.com",
        // blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        sourceFile: "example.js",
        sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        lineNumber: 1,
        columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor does not require blockedURI");

    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        referrer: "http://example.com",
        blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        // sourceFile: "example.js",
        sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        lineNumber: 1,
        columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor does not require sourceFile");

    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        referrer: "http://example.com",
        blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        sourceFile: "example.js",
        // sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        lineNumber: 1,
        columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor does not require sample");

    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        referrer: "http://example.com",
        blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        sourceFile: "example.js",
        sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        // lineNumber: 1,
        columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor does not require lineNumber");

    test(function() {
      assert_not_equals(new SecurityPolicyViolationEvent("securitypolicyviolation", {
        documentURI: "http://example.com",
        referrer: "http://example.com",
        blockedURI: "http://example.com",
        violatedDirective: "default-src",
        effectiveDirective: "default-src",
        originalPolicy: "default-src 'none'",
        sourceFile: "example.js",
        sample: "<script>alert('1');</scr" + "ipt>",
        disposition: "enforce",
        statusCode: 200,
        lineNumber: 1,
        // columnNumber: 1,
      }), undefined);
    }, "SecurityPolicyViolationEvent constructor does not require columnNumber");
</script>
