1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/base/test/test_bug560780.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,99 @@ 1.4 +<!DOCTYPE HTML> 1.5 +<html> 1.6 +<!-- 1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=560780 1.8 +--> 1.9 +<head> 1.10 + <title>Test for Bug 560780</title> 1.11 + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.12 + <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script> 1.13 + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 1.14 + 1.15 +<script type="text/javascript"> 1.16 +function init() { 1.17 + var elem = document.getElementById('body'); 1.18 + elem.addEventListener('mousedown', mousedown, true); 1.19 +} 1.20 +var seen_mousedown = 0; 1.21 +function mousedown(event) { 1.22 + var doc = event.target.ownerDocument; 1.23 + var win = doc.defaultView; 1.24 + var elem = doc.getElementById('body'); 1.25 + var selection = win.getSelection(); 1.26 + if (selection.rangeCount>0) { 1.27 + var ragne = selection.getRangeAt(0); 1.28 + var rect = ragne.getBoundingClientRect(); 1.29 + var p = elem.parentNode.appendChild(doc.createElement('p')); 1.30 + p.textContent = "width: " + (rect.right -rect.left); 1.31 + } 1.32 + ++seen_mousedown; 1.33 +} 1.34 +</script> 1.35 + 1.36 +</head> 1.37 +<body id="body"> 1.38 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=560780">Mozilla Bug 560780</a> 1.39 +<p id="display" style="margin:0;padding:0;border:0"><a id="testlink" href="#aaaaaaaaaaaaaaaaaaaaaa">abcdefghijklmnabcdefghijklmn</a></p> 1.40 +<div id="content" style="display: none"> 1.41 + 1.42 +</div> 1.43 +<pre id="test"> 1.44 + 1.Start Minefield with New Profile. 1.45 + 2.Select texts by alt + mouse dragging horizontaly from 'd' in the link above to far right of window. 1.46 + 3.Click on the selected text 1.47 + 4.Click empty area of page 1.48 + 5.Repeat STEP 2 to 4 till browser crashes. (at least 5 times) 1.49 + 1.50 +<script type="application/javascript"> 1.51 + 1.52 +/** Test for Bug 560780 **/ 1.53 + 1.54 +function selectByMouseThenClick(elm,startx,starty) { 1.55 + // select some text 1.56 + var ctrl = navigator.platform.indexOf("Linux") ? true : false; 1.57 + var alt = true; 1.58 + var x = startx; 1.59 + synthesizeMouse(elm, x, starty, { type:"mousedown", ctrlKey:ctrl, altKey:alt }); 1.60 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.61 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.62 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.63 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.64 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.65 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.66 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.67 + synthesizeMouse(elm, x += 100, starty, { type:"mousemove", ctrlKey:ctrl, altKey:alt }); 1.68 + synthesizeMouse(elm, x, starty, { type:"mouseup", ctrlKey:ctrl, altKey:alt }); 1.69 + 1.70 + // click on the selection 1.71 + synthesizeMouse(elm, startx + 10, starty + 1, {}); 1.72 + 1.73 + // click empty area of the page 1.74 + synthesizeMouse(document.getElementById('body'), 800, 800, {}); 1.75 +} 1.76 + 1.77 +function runTest() { 1.78 + var e = document.getElementById('testlink'); 1.79 + selectByMouseThenClick(e,110,5); 1.80 + selectByMouseThenClick(e,90,5); 1.81 + selectByMouseThenClick(e,70,5); 1.82 + selectByMouseThenClick(e,50,5); 1.83 + selectByMouseThenClick(e,30,5); 1.84 + selectByMouseThenClick(e,10,5); 1.85 + is(seen_mousedown, 12, "got the mousedown events"); 1.86 + SimpleTest.finish(); 1.87 +} 1.88 + 1.89 +function doTest() { 1.90 + init(); 1.91 + runTest(); 1.92 +} 1.93 + 1.94 +SimpleTest.waitForFocus(doTest, window); 1.95 +SimpleTest.waitForExplicitFinish(); 1.96 + 1.97 + 1.98 + 1.99 +</script> 1.100 +</pre> 1.101 +</body> 1.102 +</html>