chromium/third_party/blink/web_tests/http/tests/security/subresourceIntegrity/subresource-integrity-style-attribute-changed.html

<!DOCTYPE html>
<html>
    <head>
        <title>Subresource integrity for style resources when
            the integrity attribute is chaned after fetch is started</title>
        <script src="../../resources/testharness.js"></script>
        <script src="../../resources/testharnessreport.js"></script>

    </head>
    <body>
        <script>
        var test1 = async_test(
            'Integrity attribute at the time of fetch start should be used ' +
            '(correct -> wrong)');
        var link1 = document.createElement('link');
        link1.setAttribute('rel', 'stylesheet');
        link1.setAttribute('href', 'style-1-of-3.css?test=attribute-changed');
        link1.setAttribute('integrity',
            'sha256-RvLeYLQyPa_ZQk95Rj0XQpfsoBHW9Vrqb3zwo5DScrI=');
        link1.addEventListener('load', test1.step_func_done(function() {
            var color =
                window.getComputedStyle(document.querySelector('#p1')).color;
            assert_equals(color, "rgb(0, 128, 0)",
                "The p#1 element's text should be green.");
        }));
        link1.addEventListener('error',
            test1.unreached_func('Integrity check failed unexpectedly'));
        document.head.appendChild(link1);
        link1.setAttribute('integrity',
            'sha256-wrongwrongwrongwrongwrongwrongwrongwrongwro=');

        var test2 = async_test(
            'Integrity attribute at the time of fetch start should be used ' +
            '(wrong -> correct)');
        var link2 = document.createElement('link');
        link2.setAttribute('rel', 'stylesheet');
        link2.setAttribute('href', 'style-2-of-3.css?test=attribute-changed');
        link2.setAttribute('integrity',
            'sha384-wrongwrongwrongwrongwrongwrongwrongwrongwrongwrongwrongwrongwron');
        link2.addEventListener('load',
            test2.unreached_func('Integrity check passed unexpectedly'));
        link2.addEventListener('error', test2.step_func_done());
        document.head.appendChild(link2);
        link2.setAttribute('integrity',
            'sha384-j1bGpDxu0bZAb4jBJzciDWuVUuOTXlLvB9WNKDh7Gik9ygF6CctjgYISUwShHmFM');
        </script>
        <p id="p1">Test 1</p>
        <p id="p2">Test 2</p>
    </body>
</html>