<!DOCTYPE HTML>
<html>

<head>
    <title>`strict-dynamic` does not drop allowed source expressions in `img-src`.</title>
    <script src='/resources/testharness.js' nonce='dummy'></script>
    <script src='/resources/testharnessreport.js' nonce='dummy'></script>

    <!-- CSP served: img-src 'strict-dynamic' 'self' -->
</head>

<body>
    <h1>`strict-dynamic` does not drop allowed source expressions in `img-src`.</h1>
    <div id='log'></div>

    <script nonce='dummy'>
        window.addEventListener('securitypolicyviolation', function(e) {
            assert_unreached('No CSP violation report has fired.');
        });

        async_test(function(t) {
            var e = document.createElement('img');
            e.id = 'allowedImage';
            e.src = '/content-security-policy/support/pass.png';
            e.onerror = t.unreached_func('Error should not be triggered.');
            e.onload = t.step_func_done();
            document.body.appendChild(e);
        }, '`strict-dynamic` does not drop allowed source expressions in `img-src`.');
    </script>
</body>

</html>
