blob: d8912a2652b405e6a5882b21f657308142c5e77b [file] [log] [blame]
<!DOCTYPE HTML>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script type="text/javascript" src="../pointerevent_support.js"></script>
<style>
#obj {
width: 50px;
height: 50px;
padding: 50px;
}
</style>
<h1>Verifies that mouse activities on an object fire pointerevents. It expected to get pointerup when the pointerdown happened on the object for compatibility with flash objects.</h1>
<object id="obj"></object>
<button id="done"></button>
<div id="log"></div>
<script>
var target = document.getElementById("obj");
var done = document.getElementById("done");
var rect = target.getBoundingClientRect();
var done_clicked = false;
var receivedEvents = [];
["mousedown", "mouseup", "mousemove", "pointerdown", "pointerup", "pointermove"].forEach(function(eventName) {
target.addEventListener(eventName, function(event) {
receivedEvents.push(event.type);
});
});
document.getElementById('done').addEventListener('click', (e) => done_clicked = true);
promise_test(async() => {
done_clicked = false;
receivedEvents = [];
await new test_driver.Actions().pointerMove(rect.left+5, rect.top+5).pointerDown(0).pointerUp(0).send().then(() => {
return clickInTarget("mouse", done);
});
await resolveWhen(()=>{return done_clicked;});
assert_array_equals(receivedEvents, ["pointermove", "mousemove", "pointerdown", "mousedown", "pointerup", "mouseup"],
"Click on object should result in the correct sequence of events");
}, "Normal click event sequence within object");
promise_test(async() => {
done_clicked = false;
receivedEvents = [];
await new test_driver.Actions().pointerMove(rect.left+5, rect.top+5).pointerDown(0).pointerMove(rect.left-5, rect.top-5).pointerUp(0).send().then(() => {
return clickInTarget("mouse", done);
});
await resolveWhen(()=>{return done_clicked;});
assert_array_equals(receivedEvents, ["pointermove", "mousemove", "pointerdown", "mousedown", "pointermove", "mousemove", "pointerup", "mouseup"],
"Drag from object should result in the correct sequence of events");
}, "Click and drag outside of object event sequence");
</script>