blob: 0520b6bee42b64ca820b4414dd488d0556d6241c [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>Mouse Events with button depressed</title>
<meta name="timeout" content="long">
<meta name="viewport" content="width=device-width">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
div.box {
border: 2px solid lightgray;
margin: 25px;
padding: 25px;
float: left;
}
#lightyellow {
background-color: lightyellow;
}
#lightblue {
background-color: lightblue;
}
#lightgreen {
background-color: lightgreen;
}
</style>
</head>
<body onload="run()">
<h2>Mouse Events</h2>
<h4>Test Description: This test checks if mouse events set button property correctly
<ol>
<li>Put your mouse over the green rectangle</li>
<li>Press a non-primary button and hold it</li>
<li>Drag mouse to blue rectangle</li>
<li>Release mouse button</li>
</ol>
</h4>
<div class="box" id="lightyellow">
<div class="box" id="lightgreen"></div>
<div class="box" id="lightblue"></div>
</div>
<script>
var test = async_test("mouse events fired without button state");
var button = -1;
function run() {
var lightgreen = document.getElementById("lightgreen");
var lightyellow = document.getElementById("lightyellow");
var lightblue = document.getElementById("lightblue");
on_event(lightgreen, "contextmenu", function (event) {
event.preventDefault();
});
on_event(lightgreen, "mousedown", function (event) {
test.step(function() {assert_true(button === -1, "There must only be one mouse down event.");});
test.step(function() {assert_true(event.button != 0, "Must not be primary button.");});
button = event.button;
});
on_event(lightyellow, "click", function (event) {
test.step(function() {assert_true(event.button === button, "Button must be the same as mousedown.");});
});
on_event(lightyellow, "mousemove", function (event) {
if (button != -1) {
test.step(function() {assert_true(event.button === 0, "Button must be un-initialized for mousemove.");});
}
});
on_event(lightgreen, "mouseleave", function (event) {
if (button != -1) {
test.step(function() {assert_true(event.button === 0, "Button must be un-initialized for mouseleave.");});
}
});
on_event(lightblue, "mouseenter", function (event) {
if (button != -1) {
test.step(function() {assert_true(event.button === 0, "Button must be un-initialized for mouseenter.");});
}
});
on_event(lightblue, "mouseup", function (event) {
if (button != -1) {
test.step(function() {assert_true(event.button === button, "Button must be the same as mousedown.");});
test.done();
}
});
}
</script>
</body>
</html>