<!DOCTYPE html>
<html>
<body>
<p>This test records target and relatedTarget at each element while dispatching a mouse click event at an input element.</p>
<div id="detailsContainer"><details><summary><div id="divInsideSummary"><input id="target" type="text" size="10"></summary></div></detials></div>
<pre id="log"></pre>
<script src="resources/shadow-event-path-shared.js"></script>
<script>

var detailsContainer = document.getElementById('detailsContainer');
log('Content:' + detailsContainer.outerHTML + '\n');

if (window.testRunner && !window.eventSender)
    log('This test requires eventSender.');
else if (window.eventSender) {
    var target = document.getElementById('target');
    eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2, target.offsetTop + target.offsetHeight / 2);
    eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth + 100, target.offsetTop + target.offsetHeight / 2);
    eventSender.mouseDown();
    eventSender.mouseUp();
}

</script>
</body>
</html>
