<!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>
