Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Mouse Button Back/Forward</title>
<link rel="author" title="Google" href="http://www.google.com/" />
<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>
var testMouseUp = async_test('Tests that when pointer is locked, the mouseup is preventable.');
var received_back = false;
var received_forward = false;
const left_button = 0;
const back_button = 3;
const forward_button = 4;
window.addEventListener('mouseup', function(e) {
if (e.button == left_button) {
document.body.requestPointerLock();
} else if (e.button == back_button) {
received_back = true;
e.preventDefault();
} else if (e.button == forward_button) {
received_forward = true;
e.preventDefault();
}
if (document.pointerLockElement && received_back && received_forward) {
testMouseUp.done();
document.exitPointerLock();
}
});
document.addEventListener("pointerlockchange", function() {
assert_equals(document.pointerLockElement, document.body);
// Inject mouse input
var actions = new test_driver.Actions();
actions.pointerMove(1, 1)
.pointerDown({button: actions.ButtonType.BACK})
.pointerUp({button: actions.ButtonType.BACK})
.pointerDown({button: actions.ButtonType.FORWARD})
.pointerUp({button: actions.ButtonType.FORWARD})
.send();
}, { once: true });
document.addEventListener("pointerlockerror", function() {
assert_unreached("Pointer lock error");
});
// Inject mouse input
var actions = new test_driver.Actions();
actions.pointerMove(1, 1)
.pointerDown({button: actions.ButtonType.LEFT})
.pointerUp({button: actions.ButtonType.LEFT})
.send();
</script>
</head>
<body id="target">
<h4>Test Description: Tests that the mouseup event is prevented.
<ol>
<li>Click the left mouse button to lock pointer</li>
<li>Click the back mouse button</li>
<li>Click the forward mouse button</li>
</ol>
</h4>
</body>
</html>