chromium/third_party/blink/web_tests/http/tests/security/contentSecurityPolicy/1.1/scripthash-handler-allowed.html

<!DOCTYPE html>
<html>
    <head>
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
        <script>
            async_test(function (t) {
                window.expectSuccess = t.step_func_done(function (el) {
                    assert_equals(el, document.querySelector('#pass'));
                });
                window.addEventListener('load', t.step_func(function () {
                    document.querySelector('#pass').click();
                }));
            }, 'Inline event handlers whitelisted by the policy should fire.');

            async_test(function (t) {
                window.expectFailure = t.unreached_func("Handler should not execute.");
                document.addEventListener('securitypolicyviolation', t.step_func_done(function (e) {
                    assert_equals(e.target, document.querySelector('#fail'));
                }));
                window.addEventListener('load', t.step_func(function () {
                    document.querySelector('#fail').click();
                }));
            }, 'Inline event handlers not whitelisted by the policy should generate error events.');
        </script>

        <meta http-equiv="Content-Security-Policy" content="script-src 'sha256-nhtYaXCssBJTThiDLYewspQYue9tisulEwJ3nTJKcMI=' 'unsafe-hashes'">
    </head>
    <body>
        <button id="pass" onclick="expectSuccess(this)"></button>
        <button id="fail" onclick="expectFailure(this)"></button>
    </body>
</html>