<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <meta http-equiv="Content-Security-Policy" content="img-src 'none'">
    <title>combine-header-and-meta-policies</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src='../support/logTest.sub.js?logs=["TEST COMPLETE"]'></script>
    <script src="../support/alertAssert.sub.js?alerts=[]"></script>
    <!-- enforcing multiple policies:
Content-Security-Policy: script-src 'self' 'unsafe-inline'; connect-src 'self'; style-src 'self'
Content-Security-Policy: img-src 'none'
-->
</head>

<body>
<p>Test passes if both style and image are blocked and a report is generated for the
    style block from the header-supplied policy.</p>

    <script>
        var img = document.createElement('img');
        img.src = '../support/fail.png';
        img.onerror = function() {
            log("TEST COMPLETE");
        };
        img.onload = function() {
            log("FAIL");
        };
        document.body.appendChild(img);

    </script>
    <style>
        body {
            background-color: blue;
        }

    </style>
    <script>
        var el = document.querySelector('body');
        test(function() {
            assert_equals(window.getComputedStyle(el).color, "rgb(0, 0, 0)")
        });

    </script>
    <div id="log"></div>
    <script async defer src="../support/checkReport.sub.js?reportExists=true&amp;reportField=violated-directive&amp;reportValue=style-src%20&apos;self&apos;"></script>
</body>

</html>
