<!DOCTYPE html>
<title>For the bug that click on the green strip in the scrollable iframe will not make the iframe get the focus. crbug.com/531929</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<input type='text' style="position: relative;"> <br>
<iframe style="left: 50px; width: 200px; height: 200px; position: absolute;" src="resources/scrollable-iframe-with-click-strip.html"> </iframe>
<script>
async_test(function(t) {
    var iframe = document.querySelector("iframe");
    iframe.onload = t.step_func_done(function() {
        document.querySelector("input").focus();
        var strip = iframe.contentDocument.getElementById("strip");

        var x = iframe.offsetLeft + strip.offsetLeft + 5;
        var y = iframe.offsetTop + 5;

        // send mouse event to click iframe's green strip;
        eventSender.mouseMoveTo(x, y);
        eventSender.mouseDown();
        eventSender.mouseUp();
        assert_true(iframe.contentDocument.hasFocus());
    });
});
</script>
