<!doctype html>
<html>
<head>
<title>PointerEvent: Constructor test</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!-- Additional helper script for common checks across event types -->
</head>
<body>
<h1>PointerEvent: Dispatch custom event with coalesced events</h1>
<h4>Test Description: This test checks if PointerEvent constructor works properly with respect to the coalesced events.</h4>
<div id="target0"></div>
<script>
async_test(function() {
var target0 = document.getElementById("target0");
// set values for non-default constructor
on_event(target0, "pointermove", this.step_func(function(event) {
generate_tests(assert_equals, [
["getCoalescedEvents().length", event.getCoalescedEvents().length, 2],
["event.target", event.target, target0],
["event.currentTarget", event.currentTarget, target0],
["event.eventPhase", event.eventPhase, Event.AT_TARGET],
["event.clientX", event.clientX, 310],
["getCoalescedEvents()[0].clientX", event.getCoalescedEvents()[0].clientX, 300],
["getCoalescedEvents()[1].clientX", event.getCoalescedEvents()[1].clientX, 310],
]);
for (var i=0; i<event.getCoalescedEvents().length; i++) {
var coalescedEvent = event.getCoalescedEvents()[i];
generate_tests(assert_equals, [
["getCoalescedEvents()[" + i + "].pointerId", coalescedEvent.pointerId, event.pointerId],
["getCoalescedEvents()[" + i + "].pointerType", coalescedEvent.pointerType, event.pointerType],
["getCoalescedEvents()[" + i + "].isPrimary", coalescedEvent.isPrimary, event.isPrimary],
["getCoalescedEvents()[" + i + "].getCoalescedEvents().length", coalescedEvent.getCoalescedEvents().length, 0],
["getCoalescedEvents()[" + i + "].target", coalescedEvent.target, target0],
["getCoalescedEvents()[" + i + "].currentTarget", coalescedEvent.currentTarget, null],
["getCoalescedEvents()[" + i + "].eventPhase", coalescedEvent.eventPhase, Event.NONE],
["getCoalescedEvents()[" + i + "].cancelable", coalescedEvent.cancelable, false],
["getCoalescedEvents()[" + i + "].bubbles", coalescedEvent.bubbles, false],
["getCoalescedEvents()[" + i + "].offsetX", coalescedEvent.offsetX, event.offsetX + (i==0?-10:0)],
["getCoalescedEvents()[" + i + "].offsetY", coalescedEvent.offsetY, event.offsetY],
]);
}
}));
on_event(target0, "pointerout", this.step_func(function(event) {
generate_tests(assert_equals, [
["default getCoalescedEvents().length", event.getCoalescedEvents().length, 0],
]);
}));
on_event(window, "load", this.step_func_done(function() {
assert_not_equals(window.PointerEvent, undefined);
var pointerEventInitDict =
{
pointerId: 42,
pointerType: "pen",
isPrimary: true,
clientX: 300,
};
var p1 = new PointerEvent("pointermove", pointerEventInitDict);
pointerEventInitDict.clientX += 10;
var p2 = new PointerEvent("pointermove", pointerEventInitDict);
pointerEventInitDict.coalescedEvents = [p1, p2];
var event = new PointerEvent("pointermove", pointerEventInitDict);
target0.dispatchEvent(event);
var pointerEventDefault = new PointerEvent("pointerout");
target0.dispatchEvent(pointerEventDefault);
}, "PointerEvent constructor"));
})
</script>
<div id="complete-notice">
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
</div>
<div id="log"></div>
</body>
</html>