<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; default-src
                'sha256-7kQ1KhZCpEzWtsa0RSpbIL7FU3kPNhE3IJMaNeTclMU='
                'sha384-OliBBQtittDq3qDaEttMlHG1viNf50PLjSlvXirHZHpeKApMClrTJz+7VB5RTWdN'
                'sha512-4/SpqCV0WGbb2QZXBViFlnms4M0I+aUGg9/tIhr10twU89nlMSBLOhi3cVli39kyBZbUAlzk9xcVTMy+JDY+VA=='">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>

    <script>
      var t = async_test("All style elements should load because they have proper hashes")
      document.addEventListener("securitypolicyviolation", t.unreached_func("Should not trigger a security policy violation"));
    </script>

    <style>#content1 { margin-left: 2px; }</style>
    <style>#content2 { margin-left: 2px; }</style>
    <style>#content3 { margin-left: 2px; }</style>
</head>
<body>
    <div id='log'></div>

    <div id="content1">Lorem ipsum</div>
    <div id="content2">Lorem ipsum</div>
    <div id="content3">Lorem ipsum</div>

    <script>
      function make_assert(contentId) {
        var contentEl = document.getElementById(contentId);
        var marginLeftVal = getComputedStyle(contentEl).getPropertyValue('margin-left');
        assert_true(marginLeftVal == "2px")
      }
      t.step(function() {
        make_assert("content1");
        make_assert("content2");
        make_assert("content3");
        t.done();
      });
    </script>

</body>
</html>
