<!DOCTYPE HTML>
<html>
<head>
    <title>setTimeout() and setInterval() should not run without 'unsafe-eval' script-src directive.</title>
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';"> 
    <script src='/resources/testharness.js'></script>
    <script src='/resources/testharnessreport.js'></script>
</head>
<body>
    <h1>setTimeout() and setInterval() should not run without 'unsafe-eval' script-src directive.</h1>
    <div id='log'></div>

   	<script>
        var t1 = async_test("window.setTimeout()");
        var t2 = async_test("window.setInterval()");
        var t_spv = async_test("Test that securitypolicyviolation event is fired");
        var test_count = 2;
        
        window.addEventListener("securitypolicyviolation", t_spv.step_func_done(function(e) {
            assert_equals(e.violatedDirective, "script-src");
            if (--test_count <= 0) {
                t_spv.done();
            }
        }));


        onload = function() {t1.done(); t2.done()}

        window.setTimeout('t1.step(function() {assert_unreached("window.setTimeout() ran without unsafe-eval.")})',0);
        window.setInterval('t2.step(function() {assert_unreached("window.setInterval() ran without unsafe-eval.")})',0);
    </script>
</body>
</html>
