105 lines
2.6 KiB
HTML
105 lines
2.6 KiB
HTML
<p>This test verifies that a right mousebutton click generates a mousedown, context and mouseup event.</p>
|
|
|
|
</p>
|
|
<p>If the test passes, you'll see a PASS message below.
|
|
</p>
|
|
|
|
<p>To run this test in Safari:
|
|
<ol>
|
|
<li>Right mouse down inside the box.</li>
|
|
<li>Right mouse up.</li>
|
|
</ol>
|
|
</p>
|
|
<hr>
|
|
<style id="mystyle">
|
|
.test-box {
|
|
border: solid;
|
|
}
|
|
</style>
|
|
<div class="test-box" id="click_target-1">box</div>
|
|
<pre id="log"></pre>
|
|
|
|
<script id="cody">
|
|
|
|
/**
|
|
* Base namespace for test
|
|
*/
|
|
var rlightclickbug = rlightclickbug || {};
|
|
|
|
/**
|
|
* Swallows an event.
|
|
*/
|
|
rlightclickbug.swallow = function(event) {
|
|
event.preventDefault && event.preventDefault();
|
|
event.stopImmediatePropagation && event.stopImmediatePropagation();
|
|
event.stopPropagation && event.stopPropagation();
|
|
event.preventBubble && event.preventBubble();
|
|
return false;
|
|
};
|
|
|
|
/**
|
|
* Dumps out a single line summary of a mouse event
|
|
*/
|
|
rlightclickbug.dumpShortEvent = function(event) {
|
|
var values = []
|
|
var keys = ['type', 'button'];
|
|
for (var i = 0; i < keys.length; i++) {
|
|
values.push(keys[i]);
|
|
values.push(': ');
|
|
values.push(event[keys[i]]);
|
|
values.push(', ');
|
|
}
|
|
return values.join('');
|
|
};
|
|
|
|
/**
|
|
* Writes a log message to the screen.
|
|
*/
|
|
rlightclickbug.logme = function(m) {
|
|
var loggy = document.getElementById('log');
|
|
loggy.innerHTML += ('\n' + m);
|
|
};
|
|
|
|
var _captureMouseEvents = function(event) {
|
|
rlightclickbug.logme(rlightclickbug.dumpShortEvent(event));
|
|
return rlightclickbug.swallow(event);
|
|
};
|
|
|
|
|
|
function main()
|
|
{
|
|
var targetBox = document.getElementById('click_target-1');
|
|
|
|
targetBox.addEventListener("mouseup", _captureMouseEvents, false);
|
|
targetBox.addEventListener("mousedown", _captureMouseEvents, false);
|
|
targetBox.addEventListener("click", _captureMouseEvents, false);
|
|
targetBox.addEventListener("contextmenu", _captureMouseEvents, false);
|
|
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
if (window.eventSender) {
|
|
// Confirm that left button works properly
|
|
eventSender.mouseMoveTo(targetBox.offsetLeft + 5,
|
|
targetBox.offsetTop + 5); // in box
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
|
|
// Confirm that right button works properly
|
|
eventSender.mouseDown(2);
|
|
eventSender.mouseUp(2);
|
|
|
|
// Confirm that moving mouse while down outside of box
|
|
// does not fire a mouseup event.
|
|
eventSender.mouseDown(2);
|
|
eventSender.mouseMoveTo(0, 0); // outside of box
|
|
eventSender.mouseUp(2);
|
|
|
|
// order in IE is mousedown contextmenu mouseup
|
|
}
|
|
}
|
|
|
|
|
|
main();
|
|
</script>
|