<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <meta http-equiv="Content-Security-Policy" content="connect-src 'self'; script-src 'self' 'unsafe-inline';"> 
    <title>connect-src-beacon-blocked</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src='../support/logTest.sub.js?logs=["Pass", "violated-directive=connect-src"]'></script>
    <script src="../support/alertAssert.sub.js?alerts=[]"></script>
    <!-- enforcing policy:
connect-src 'self' http://{{host}}:{{ports[http][0]}}; script-src 'self' 'unsafe-inline';
-->
</head>

<body>
    <script>
       window.addEventListener('securitypolicyviolation', function(e) {
            log("violated-directive=" + e.violatedDirective);
       });
       
       if (typeof navigator.sendBeacon != 'function') {
            t_log.set_status(t_log.NOTRUN, "No navigator.sendBeacon, cannot run test.");
            t_log.phase = t_log.phases.HAS_RESULT;
            t_log.done();
            log("Pass");
       } else {
	         try {
	             var es = navigator.sendBeacon("http://www1.{{host}}:{{ports[http][0]}}/security/contentSecurityPolicy/echo-report.php");
       	       log("Pass");
           } catch (e) {
               log("Fail");
           }
	     }
    </script>
    <div id="log"></div>
</body>

</html>
