Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/html/test/forms/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 5 kB image not shown  

Quelle  test_select_input_change_event.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/html/test/forms/test_select_input_change_event.html


<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1265968
-->

<head>
  <title>Test for Bug 1024350</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>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024350">Mozilla Bug 1024350</a>
<p id="display"></p>
<div id="content">
  <select oninput='++selectInput;' onchange="++selectChange;">
    <option>one</option>
  </select>
  <select oninput='++selectInput;' onchange="++selectChange;">
    <option>one</option>
    <option>two</option>
  </select>
  <select multiple size='1' oninput='++selectInput;' onchange="++selectChange;">
    <option>one</option>
  </select>
  <select multiple oninput='++selectInput;' onchange="++selectChange;">
    <option>one</option>
    <option>two</option>
  </select>
</div>
<pre id="test">
<script type="application/javascript">
  var selectSingleOneItem = document.getElementsByTagName('select')[0];
  var selectSingle = document.getElementsByTagName('select')[1];
  var selectMultipleOneItem = document.getElementsByTagName('select')[2];
  var selectMultiple = document.getElementsByTagName('select')[3];

  var selectChange = 0;
  var selectInput = 0;
  var expectedChange = 0;
  var expectedInput = 0;

  selectSingleOneItem.focus();
  synthesizeKey("KEY_ArrowDown");
  is(selectInput, expectedInput, "Down key should not fire input event when reaching end of the list.");
  is(selectChange, expectedChange, "Down key should not fire change event when reaching end of the list.");

  synthesizeKey("KEY_ArrowUp");
  is(selectInput, expectedInput, "Up key should not fire input event when reaching top of the list.");
  is(selectChange, expectedChange, "Up key should not fire change event when reaching top of the list.");

  selectSingle.focus();
  for (var i = 1; i < selectSingle.length; i++) {
    synthesizeKey("KEY_ArrowDown");

    is(selectSingle.options[i].selected, true, "Option should be selected");
    is(selectInput, ++expectedInput, "Down key should fire input event.");
    is(selectChange, ++expectedChange, "Down key should fire change event.");
  }

  // We are at the end of the list, going down should not fire change event.
  synthesizeKey("KEY_ArrowDown");
  is(selectInput, expectedInput, "Down key should not fire input event when reaching end of the list.");
  is(selectChange, expectedChange, "Down key should not fire change event when reaching end of the list.");

  for (var i = selectSingle.length - 2; i >= 0; i--) {
    synthesizeKey("KEY_ArrowUp");

    is(selectSingle.options[i].selected, true, "Option should be selected");
    is(selectInput, ++expectedInput, "Up key should fire input event.");
    is(selectChange, ++expectedChange, "Up key should fire change event.");
  }

  // We are at the top of the list, going up should not fire change event.
  synthesizeKey("KEY_ArrowUp");
  is(selectInput, expectedInput, "Up key should not fire input event when reaching top of the list.");
  is(selectChange, expectedChange, "Up key should not fire change event when reaching top of the list.");

  selectMultipleOneItem.focus();
  synthesizeKey("KEY_ArrowDown");
  is(selectInput, ++expectedInput, "Down key should fire input event when reaching end of the list.");
  is(selectChange, ++expectedChange, "Down key should fire change event when reaching end of the list.");

  synthesizeKey("KEY_ArrowDown");
  is(selectInput, expectedInput, "Down key should not fire input event when reaching end of the list.");
  is(selectChange, expectedChange, "Down key should not fire change event when reaching end of the list.");

  synthesizeKey("KEY_ArrowUp");
  is(selectInput, expectedInput, "Up key should not fire input event when reaching top of the list.");
  is(selectChange, expectedChange, "Up key should not fire change event when reaching top of the list.");

  selectMultiple.focus();
  for (var i = 0; i < selectMultiple.length; i++) {
    synthesizeKey("KEY_ArrowDown");

    is(selectMultiple.options[i].selected, true, "Option should be selected");
    is(selectInput, ++expectedInput, "Down key should fire input event.");
    is(selectChange, ++expectedChange, "Down key should fire change event.");
  }

  // We are at the end of the list, going down should not fire change event.
  synthesizeKey("KEY_ArrowDown");
  is(selectInput, expectedInput, "Down key should not fire input event when reaching end of the list.");
  is(selectChange, expectedChange, "Down key should not fire change event when reaching end of the list.");

  for (var i = selectMultiple.length - 2; i >= 0; i--) {
    synthesizeKey("KEY_ArrowUp");

    is(selectMultiple.options[i].selected, true, "Option should be selected");
    is(selectInput, ++expectedInput, "Up key should fire input event.");
    is(selectChange, ++expectedChange, "Up key should fire change event.");
  }

  // We are at the top of the list, going up should not fire change event.
  synthesizeKey("KEY_ArrowUp");
  is(selectInput, expectedInput, "Up key should not fire input event when reaching top of the list.");
  is(selectChange, expectedChange, "Up key should not fire change event when reaching top of the list.");

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

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.