<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test-pre.js"></script>
<style>
    #shape {
        float: left;
        width: 200px;
        height: 200px;
        -webkit-shape-outside: url("/resources/load-and-stall.py?name=square100.png&stallAt=0&stallFor=1");
    }
</style>
</head>
<body>
<p>Verify that a image valued shape-outside layout is updated after the image has been loaded. This test
checks that left edge of the "Hello World" text span is defined by the 200px wide float before shape-outside
image has been loaded and by the 100px wide image after it's been laoded.</p>

<div id="container">
  <div id="shape"></div><span id="text">Hello World</span>
</div>
<p id="console"></p>

<script>
window.jsTestIsAsync = true;
function elementRect(elementId) 
{
    var s = document.getElementById("container").getBoundingClientRect();
    var r = document.getElementById(elementId).getBoundingClientRect();
    return {left: r.left - s.left, top: r.top - s.top, width: r.width, height: r.height};
}

shouldBe('elementRect("text").left', "200"); // image hasn't loaded yet

window.onload = function() {
    document.body.offsetTop; // fetch offsetTop to force a layout
    shouldBe('elementRect("text").left', "100");
    finishJSTest();
};

</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>
