<!DOCTYPE html>
<head>
<script>
onload = function() {
    if (!window.testRunner)
        return;

    testRunner.dumpAsText();
    document.body.offsetLeft;
    var target = document.querySelector('area');
    eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2,
                            target.offsetTop + target.offsetHeight / 2);
    document.getElementById('result').innerHTML = '' + window.getComputedStyle(target).cursor;
}
</script>
</head>
<body style="cursor:default">
  <map id="menu" name="menu">
   <area shape="rect" coords="0,0,199,199" href="dummy.gif"/>
  </map>
  <img style="cursor:auto;width:200px;height:200px" usemap="#menu" src="dummy.gif"/>
  <p>Test for <a href="crbug.com/455253">crbug.com/455253</a>: cursor pointer on image-link</p>
  <p>Result: <span id="result">default</span></p>
</body>
