diff options
Diffstat (limited to 'layout/generic/test/test_selection_touchevents.html')
-rw-r--r-- | layout/generic/test/test_selection_touchevents.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/layout/generic/test/test_selection_touchevents.html b/layout/generic/test/test_selection_touchevents.html new file mode 100644 index 0000000000..082f879d01 --- /dev/null +++ b/layout/generic/test/test_selection_touchevents.html @@ -0,0 +1,55 @@ +<!DOCTYPE> +<html> +<head> +<title>selection expanding test</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="/tests/SimpleTest/EventUtils.js"></script> +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<div id="div1" class="testingDiv"> + aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa +</div> +<pre id="test"> +<script class="testbody" type="text/javascript"> +var div1 = document.getElementById("div1"); + +function sendTouch(aType, aX, aY) { + var cwu = SpecialPowers.getDOMWindowUtils(window); + cwu.sendTouchEvent(aType, [0], [aX], [aY], [1], [1], [0], [1], [0], [0], [0], 0, true); +} + +function test() +{ + var selection = window.getSelection(); + selection.removeAllRanges(); + var rect = div1.getBoundingClientRect(); + + // Position the caret using a fake mouse click + var Ci = SpecialPowers.Ci; + var cwu = SpecialPowers.getDOMWindowUtils(window); + cwu.sendMouseEventToWindow("mousedown", rect.left + rect.width/2, rect.top + rect.height/2, 0, 0, 0, true); + cwu.sendMouseEventToWindow("mouseup", rect.left + rect.width/2, rect.top + rect.height/2, 0, 0, 0, true); + var selectionController = SpecialPowers.wrap(window).docShell. + QueryInterface(Ci.nsIInterfaceRequestor). + getInterface(Ci.nsISelectionDisplay). + QueryInterface(Ci.nsISelectionController); + + selectionController.wordMove(false, false); + selectionController.wordMove(true, true); + isnot(selection.rangeCount, 0, "Something should be selected"); + var string = selection.toString(); + + sendTouch("touchstart", rect.right, rect.top + rect.height/2); + sendTouch("touchmove", rect.left, rect.top + rect.height/2); + sendTouch("touchend", rect.left, rect.top + rect.height/2); + is(selection.toString(), string, "touch events should not affect the selection"); + + SimpleTest.finish(); +} +window.onload = function() { setTimeout(test, 0); }; +SimpleTest.waitForExplicitFinish(); +</script> +</pre> +</body> +</html> |