Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  test_select_ctrl_a.html

  Sprache: HTML
 

 products/Sources/formale Sprachen/C/Firefox/layout/forms/test/test_select_ctrl_a.html


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

<head>
<meta charset="utf-8">
<title>Test for Bug 805218</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"/>
<script type="application/javascript">
  SimpleTest.waitForExplicitFinish();

  function selectedStates(select) {
    return [...select.options].map(o => o.selected);
  }

  function test() {
    SimpleTest.waitForFocus(function() {
      // Test 1: Ctrl/Cmd+A selects all options in a multiple select.
      {
        let select = document.getElementById("multiple");
        select.focus();
        synthesizeKey("a", {accelKey: true});
        is(selectedStates(select).toString(),
           [true, true, true, true].toString(),
           "All options should be selected after Ctrl/Cmd+A in a multiple select");
      }

      // Test 2: Ctrl/Cmd+A skips disabled options.
      {
        let select = document.getElementById("multiple-with-disabled");
        select.focus();
        synthesizeKey("a", {accelKey: true});
        is(selectedStates(select).toString(),
           [true, false, true, true].toString(),
           "All non-disabled options should be selected, disabled should remain unselected");
      }

      // Test 3: Ctrl/Cmd+A does not affect a single select listbox.
      {
        let select = document.getElementById("single-list");
        select.focus();
        let before = selectedStates(select).toString();
        synthesizeKey("a", {accelKey: true});
        is(selectedStates(select).toString(), before,
           "Ctrl/Cmd+A should not change selection in a single select listbox");
      }

      // Test 4: Ctrl/Cmd+A fires input and change events.
      {
        let select = document.getElementById("multiple-events");
        select.focus();
        // Deselect all first.
        for (let opt of select.options) {
          opt.selected = false;
        }
        let inputFired = false;
        let changeFired = false;
        select.addEventListener("input", () => { inputFired = true; }, {once: true});
        select.addEventListener("change", () => { changeFired = true; }, {once: true});
        synthesizeKey("a", {accelKey: true});
        ok(inputFired, "input event should fire on Ctrl/Cmd+A");
        ok(changeFired, "change event should fire on Ctrl/Cmd+A");
      }

      // Test 5: Ctrl/Cmd+A does not fire events if all are already selected.
      {
        let select = document.getElementById("multiple-all-selected");
        select.focus();
        let inputFired = false;
        let changeFired = false;
        select.addEventListener("input", () => { inputFired = true; }, {once: true});
        select.addEventListener("change", () => { changeFired = true; }, {once: true});
        synthesizeKey("a", {accelKey: true});
        ok(!inputFired, "input event should not fire if all options already selected");
        ok(!changeFired, "change event should not fire if all options already selected");
      }

      SimpleTest.finish();
    });
  }
</script>
</head>
<body onload="test();">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=805218">Mozilla Bug 805218</a>
<div>
  <select id="multiple" multiple size="4">
    <option>0</option>
    <option selected>1</option>
    <option>2</option>
    <option>3</option>
  </select>

  <select id="multiple-with-disabled" multiple size="4">
    <option>0</option>
    <option disabled>1</option>
    <option>2</option>
    <option>3</option>
  </select>

  <select id="single-list" size="3">
    <option>0</option>
    <option selected>1</option>
    <option>2</option>
    <option>3</option>
  </select>

  <select id="multiple-events" multiple size="4">
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
  </select>

  <select id="multiple-all-selected" multiple size="4">
    <option selected>0</option>
    <option selected>1</option>
    <option selected>2</option>
    <option selected>3</option>
  </select>
</div>
</body>
</html>

Messung V0.5 in Prozent
C=92 H=100 G=95

¤ Dauer der Verarbeitung: 0.23 Sekunden  (vorverarbeitet am  2026-08-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002