<html>
<head>
<script src="resources/srcset-helper.js"></script>
<script src="../../resources/js-test-pre.js"></script>
<script>
    if (window.testRunner) {
        testRunner.dumpAsText();
    }

    function updateSrc() {
        var img = document.getElementById("foo");
        // srcset must be set first, otherwise 'src' is loaded as well
        img.srcset = "resources/blue-100-px-square.png 1x, resources/green-400-px-square.png 2x";
        img.src = "resources/blue-100-px-square.png"
    }

    addEventListener("DOMContentLoaded", function() {
        if (sessionStorage.pageReloaded)
            testRunner.dumpResourceResponseMIMETypes();
        updateSrc();
    }, false);
    addEventListener("load", function() {
        shouldBeTrue('document.getElementById("foo").clientWidth==200');
    }, false);
</script>
</head>

<body id="body">
    <div>This test passes if this img tag below is a green square when the scale factor is 2.
      It ensures that attributes can be changed dynamically from javascript, and that only the correct resource is loaded.</div>
    <img id="foo">
</body>
</html>
