<html>
<head>
<script>
if (window.testRunner)
    testRunner.waitUntilDone();

function loadedFirstPart()
{
    if (!window.testRunner)
        return;
    var count = 0;
    setInterval(function() {
        var img = document.getElementById("test");
        /* width of abe.png */
        if (img.offsetWidth == 76)
            testRunner.notifyDone();
        if (++count > 100) // Wait up to 10 seconds in failure case.
            testRunner.notifyDone();
    }, 100);
}
</script>
</head>
<body>
<!--
    The last image is repeated due to https://bugs.webkit.org/show_bug.cgi?id=36536, which causes last part to not render. 
    It's repeated three times because otherwise the test didn't pass in 10.8, for an unknown mysterious reason.
-->
<img id=test src="resources/multipart.py?interval=0.1&img1=green-100x100.png&img2=abe.png&img3=abe.png&img4=abe.png" onload="loadedFirstPart()">
</html>
