DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (cdf352f02ac4)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=365410
-->
<title>Test for Bug 365410</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"/>
<style>
  select { box-sizing: content-box }
</style>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=365410">Mozilla Bug 365410</a>
<p id="display">
<select id="test0" multiple="multiple">
	<option id="option">Item 1</option>
	<option>Item 2</option>
	<option>Item 3</option>
	<option>Item 4</option>
	<option>Item 5</option>
	<option>Item 6</option>
	<option>Item 7</option>
	<option>Item 8</option>
	<option>Item 9</option>
	<option>Item 10</option>
	<option>Item 11</option>
	<option>Item 12</option>
	<option>Item 13</option>
	<option>Item 14</option>
	<option>Item 15</option>
</select>
<select id="test1" multiple="multiple" size="1">
	<option>Item 1</option>
	<option>Item 2</option>
	<option>Item 3</option>
	<option>Item 4</option>
	<option>Item 5</option>
	<option>Item 6</option>
	<option>Item 7</option>
	<option>Item 8</option>
	<option>Item 9</option>
	<option>Item 10</option>
	<option>Item 11</option>
	<option>Item 12</option>
	<option>Item 13</option>
	<option>Item 14</option>
	<option>Item 15</option>
</select>
<select id="test2" multiple="multiple" size="1" style="height:0.9em">
	<option>Item 1</option>
	<option>Item 2</option>
	<option>Item 3</option>
	<option>Item 4</option>
	<option>Item 5</option>
	<option>Item 6</option>
	<option>Item 7</option>
	<option>Item 8</option>
	<option>Item 9</option>
	<option>Item 10</option>
	<option>Item 11</option>
	<option>Item 12</option>
	<option>Item 13</option>
	<option>Item 14</option>
	<option>Item 15</option>
</select>
<select id="test3" multiple="multiple" size="1"></select>
<select id="test4" multiple="multiple" size="1" style="height:0.9em"></select>
</p>
<div id="content" style="display: none">
  
</div>
<pre id="test">
<script type="application/javascript">

/** Test for Bug 365410 **/

function pageUpDownTest(id,index) {
  var elm = document.getElementById(id);
  elm.focus();
  elm.selectedIndex = 0;
  sendKey("page_down");
  sendKey("page_down");
  sendKey("page_up");
  sendKey("page_down");
  is(elm.selectedIndex, index, "pageUpDownTest: selectedIndex for " + id + " is " + index);
}

function upDownTest(id,index) {
  var elm = document.getElementById(id);
  elm.focus();
  elm.selectedIndex = 0;
  sendKey("down");
  sendKey("down");
  sendKey("up");
  sendKey("down");
  is(elm.selectedIndex, index, "upDownTest: selectedIndex for " + id + " is " + index);
}

function setHeight(id, h) {
  var elm = document.getElementById(id);
  elm.style.height = h + 'px';
}

function runTest() {
  var h = document.getElementById("option").clientHeight;
  var list5itemsHeight = h * 5.5;
  setHeight("test0", list5itemsHeight);
  setHeight("test1", list5itemsHeight);
  setHeight("test3", list5itemsHeight);

  pageUpDownTest("test0",8);
  pageUpDownTest("test1",8);
  pageUpDownTest("test2",2);
  pageUpDownTest("test3",-1);
  pageUpDownTest("test4",-1);
  upDownTest("test0",2);
  upDownTest("test1",2);
  upDownTest("test2",2);
  upDownTest("test3",-1);
  upDownTest("test4",-1);

  SimpleTest.finish();
}

SimpleTest.waitForExplicitFinish();
// Turn off spatial nav so that it does not hijack the up and down events.
SimpleTest.waitForFocus(function() {
  SpecialPowers.pushPrefEnv({"set":[["snav.enabled", false]]}, runTest);
});

</script>
</pre>
</body>
</html>