<!DOCTYPE HTML>
<html>

<head>
    <title>Scripts injected via `new Function()` are not allowed with `strict-dynamic` without `unsafe-eval`.</title>
    <script src='/resources/testharness.js' nonce='dummy'></script>
    <script src='/resources/testharnessreport.js' nonce='dummy'></script>

    <!-- CSP served: script-src 'strict-dynamic' 'nonce-dummy' -->
</head>

<body>
    <h1>Scripts injected via `new Function()` are not allowed with `strict-dynamic` without `unsafe-eval`.</h1>
    <div id='log'></div>

    <script nonce='dummy'>
        var newFunctionScriptRan = false;

        async_test(function(t) {
            window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) {
                assert_false(newFunctionScriptRan);
                assert_equals(e.effectiveDirective, 'script-src');
            }));

            assert_throws_js(Error,
                function() {
                    try {
                        new Function('newFunctionScriptRan = true;')();
                    } catch (e) {
                        throw new Error();
                    }
                });
        }, "Script injected via 'eval' is not allowed with 'strict-dynamic' without 'unsafe-eval'.");
    </script>
</body>

</html>