<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <title>stylenonce-allowed</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="../support/logTest.sub.js?logs=[]"></script>
    <script src="../support/alertAssert.sub.js?alerts=[]"></script>
    <!-- enforcing policy:
style-src 'self' nonce-noncynonce' 'nonce-noncy+/=nonce'; script-src 'self' 'unsafe-inline'; connect-src 'self';
-->
    <script></script>
    <style nonce="noncynonce">
        #test1 {
            color: green;
        }

    </style>
    <style>
        #test1 {
            color: red;
        }

    </style>
    <style nonce="noncynonce">
        #test2 {
            color: green;
        }

    </style>
</head>

<body>
    <p id="test1">This text should be green.</p>
    <p id="test2">This text should also be green.</p>
    <script>
        var el = document.querySelector('#test1');
        test(function() {
            assert_equals(window.getComputedStyle(el).color, "rgb(0, 128, 0)")
        });
        var el = document.querySelector('#test2');
        test(function() {
            assert_equals(window.getComputedStyle(el).color, "rgb(0, 128, 0)")
        });

    </script>
    <p>Style correctly whitelisted via a 'nonce-*' expression in 'style-src' should be applied to the page.</p>
    <div id="log"></div>
    <script async defer src="../support/checkReport.sub.js?reportExists=true&amp;reportField=violated-directive&amp;reportValue=style-src%20&apos;nonce-noncynonce&apos;%20&apos;nonce-noncy+/=nonce&apos;"></script>
</body>

</html>
