Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/html/test/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 4 kB image not shown  

Quelle  test_input_modify_by_wheel.html

  Sprache: HTML
 

 products/Sources/formale Sprachen/C/Firefox/dom/html/test/test_input_modify_by_wheel.html


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

<head>
  <meta charset="utf-8">
  <title>Test change number and range input value through wheel event</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/EventUtils.js"></script>
  <script src="/tests/SimpleTest/paint_listener.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=1261673">Mozilla Bug 1261673</a>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1970030">Mozilla Bug 1970030</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<input id="test_number" type="number" value=5>
<script type="text/javascript">

SimpleTest.waitForExplicitFinish();
SimpleTest.waitForFocus(runTests);

function runTests() {
  let input = window.document.getElementById("test_number");

  // focus: whether the target input element is focused
  // deltaY: deltaY of WheelEvent
  // deltaMode: deltaMode of WheelEvent
  // valueChanged: expected value changes after input element handled the wheel event
  let params = [
    {focus: true, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: -1},
    {focus: true, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: 1},
    {focus: true, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_PAGE, valueChanged: -1},
    {focus: true, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_PAGE, valueChanged: 1},
    {focus: true, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_PIXEL, valueChanged: 0},
    {focus: true, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_PIXEL, valueChanged: 0},
    {focus: false, deltaY: 1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: 0},
    {focus: false, deltaY: -1.0, deltaMode: WheelEvent.DOM_DELTA_LINE, valueChanged: 0}
  ];

  let testIdx = 0;

  // The expected value of the number field; used in is() check below.
  // Initialized to the value that the field starts out with; subtests will
  // modify this if they expect to modify the value.
  let expectedValue = parseInt(input.value);

  // Actual/expected number of mutations to the number field's value:
  let actualChangeCount = 0;
  let expectedChangeCount = 0;

  const prefName = "dom.input.number_and_range_modified_by_mousewheel";
  let didFlipPref = false;
  let isPrefEnabled = SpecialPowers.getBoolPref(prefName);
  is(isPrefEnabled, false,  "Expecting pref to be disabled by default");
  input.addEventListener("change", () => {
    ++actualChangeCount;
  });

  function runNext() {
    let p = params[testIdx];
    (p.focus) ? input.focus() : input.blur();
    if (isPrefEnabled && p.valueChanged != 0) {
      expectedChangeCount++;
      expectedValue += p.valueChanged;
    }

    const wheelEventPromise = new Promise(res => {
      input.addEventListener("wheel", e => res(e), { passive: true, once: true });
    })

    sendWheelAndPaint(input11, { deltaY: p.deltaY, deltaMode: p.deltaMode },
                      async () => {
      is(parseInt(input.value), expectedValue,
         "Handle wheel in number input test-" + testIdx +
         " with pref " + (isPrefEnabled ? "en" : "dis") + "abled");

      info(`actualChangeCount ${actualChangeCount}, expectedChangeCount ${expectedChangeCount}`);
      is(actualChangeCount, expectedChangeCount,
         "UA should fire change event when input's value changed");

      // Need to wrap event to see if it was default prevented by system
      const wheelEvent = SpecialPowers.wrap(await wheelEventPromise);

      const shouldScroll = !(isPrefEnabled && p.valueChanged);
      if (shouldScroll) {
        ok(!wheelEvent.defaultPrevented, "Wheel event should not be default prevented");
      } else {
        ok(wheelEvent.defaultPrevented, "Wheel event should be default prevented");
      }

      if (++testIdx < params.length) {
        // More subtests remain; kick off the next one.
        runNext();
      } else if (!didFlipPref) {
        // Reached the end of the subtest list.  Flip the pref
        // and restart our iteration over the subtests.
        await SpecialPowers.pushPrefEnv({
          set: [[prefName, !isPrefEnabled]],
        });
        isPrefEnabled = !isPrefEnabled;
        didFlipPref = true;
        testIdx = actualChangeCount = expectedChangeCount = 0;
        runNext();
      } else {
        // Reached the end of the subtest list, for both pref settings.
        // We're done!
        SimpleTest.finish();
      }
    });
  }
  runNext();
}

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

Messung V0.5 in Prozent
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© 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.