Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /pointerevents/pointerevent_pointerrawupdate.https.html - WPT Dashboard Interop Dashboard
<!doctype html>
<title>Firing of pointerrawupdate in secure contexts</title>
<link rel="help"
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script type="text/javascript" src="pointerevent_support.js"></script>
<style>
#target {
width: 50px;
height: 50px;
}
</style>
<div id="target"></div>
<script>
"use strict";
let event_log = [];
const eventLogger = e => event_log.push(e.type);
const target = document.getElementById("target");
["pointerrawupdate", "pointerdown", "pointermove", "pointerup"].forEach(
ename => target.addEventListener(ename, eventLogger));
promise_test(async test => {
let pointerup_promise = getEvent("pointerup", target, test);
var actions = new test_driver.Actions();
actions = actions.pointerMove(0, 0, {origin: target})
.pointerDown({button: actions.ButtonType.LEFT})
.pointerDown({button: actions.ButtonType.MIDDLE})
.pointerUp({button: actions.ButtonType.MIDDLE})
.pointerUp({button: actions.ButtonType.LEFT});
await actions.send();
await pointerup_promise;
// Main assertion for this test. Note that non-secure contexts are covered
// in pointerevent_pointerrawupdate.html.
assert_true(event_log.includes("pointerrawupdate"),
"pointerrawupdate received");
// Assert the order of pointerrawupdate with respect to other events. Note
// that chorded buttons fire pointermoves.
const expected_events = [
"pointerrawupdate", "pointermove", "pointerdown",
"pointerrawupdate", "pointermove", "pointerrawupdate", "pointermove",
"pointerup"
];
assert_equals(event_log.toString(), expected_events.toString(),
"events received");
}, "pointerrawupdate event is fired");
promise_test(async test => {
assert_true("onpointerrawupdate" in window,
"Window should have event handler onpointerrawupdate");
assert_true("onpointerrawupdate" in window.document,
"Document should have event handler onpointerrawupdate");
assert_true("onpointerrawupdate" in window.document.documentElement,
"Element should have event handler onpointerrawupdate");
}, "onpointerrawupdate is exposed");
</script>