<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<script src="../../resources/js-test.js"></script>
<script type="text/javascript">
description('Test that mouse events from real mouse device should have a sourceCapabilities and its firesTouchEvents should be false.');

function mouseHandler(event) {
    debug(event.type);
    shouldBeNonNull("event.sourceCapabilities");
    shouldBeFalse("event.sourceCapabilities.firesTouchEvents");
}

if (window.eventSender) {
    for (var evt of ['mousemove', 'mousedown', 'mouseup', 'click', 'dblclick']) {
        document.addEventListener(evt, mouseHandler);
    }
     
    eventSender.mouseMoveTo(1,1);
    eventSender.mouseDown();
    eventSender.mouseUp();
    eventSender.mouseDown();
    eventSender.mouseUp();
    
} else {
   debug('This test requires eventSender.');
}

</script>