<p>Test video sizing. You should see one bigger image (paused video) and 7 small ones of 1/4 its size. </p>
<video src="content/test.mp4"></video><br>
<video src="content/test.mp4" style="width: 160px; height:120px">

</video><div style="display:inline-block">
<video src="content/test.mp4" style="width: 160px;">
</video><video src="content/test.mp4" style="height: 120px;">
</video>

</div><div style="width: 320px; height:120px; display:inline-block; margin: 0">
<video src="content/test.mp4" style="height: 100%;">
</video><video src="content/test.mp4" style="width: 50%;"></video>

</div><div style="width: 320px; height:120px;position:relative; display:inline-block; margin: 0">
<video src="content/test.mp4" style="height: 120px; position: absolute;"></video>
<video src="content/test.mp4" style="left: 160px; width: 160px; position: absolute;">
</video>
</div>
<script>
if (window.layoutTestController) {
    layoutTestController.waitUntilDone();
    setTimeout(function() { 
        document.body.appendChild(document.createTextNode('FAIL')); 
        if (window.layoutTestController)
                layoutTestController.notifyDone();
    } , 8000);
}
var count = document.getElementsByTagName('video').length;
document.addEventListener("load", function () {
    if (!--count) {
        document.body.offsetLeft;
        if (window.layoutTestController)
            layoutTestController.notifyDone();
    }
}, true);
</script>
