author Karl Tomlinson <>
Tue, 17 Apr 2012 13:00:25 +1200
changeset 91816 8bea9978c445a4a6dac7f2d05796e113746ce863
parent 74315 1188456710819d4606e74396be333ead9fe63261
child 231925 fa8bd3194aca6a90360994c17869845f7b7da5ac
permissions -rw-r--r--
b=497498 use event coordinates for source drag end point instead of new cursor position r=roc

  <title>Test for Bug 644542</title>
  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <style type="text/css">
    select:after {
	    content: ' appended string';
<a target="_blank" href="">Mozilla Bug 644542</a>
<p id="display">
  <form method="post" action="">
    <select id="select">
      <option value="1">1</option>
      <option value="2">2</option>
<div id="content" style="display: none">
<pre id="test">
<script type="application/javascript">

/** Test for Bug 644542 **/

var select = document.getElementById("select");

var clicks = 0;

function click() {
    synthesizeMouseAtCenter(select, { });

    // At least two clicks were required for bug 644542, sometimes more;
    // delay is long enough that this doesn't look like a double
    // click, and also allows time for popup to show and for painting.
    setTimeout(clicks < 4 ? click : done, 500);

function done() {
    ok(true, "No crash on opening dropdown");

// waitForFocus is most likely not the right thing to wait for, but
// without this the first click is ineffective (even with a reflow forced
// before synthesizeMouse).