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

Quelle  bug426082.html

  Sprache: HTML
 

 products/Sources/formale Sprachen/C/Firefox/dom/events/test/bug426082.html


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

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <title>Test for Bug 426082</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/EventUtils.js"></script>
  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=426082">Mozilla Bug 426082</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<p><input type="button" value="Button" id="button"></p>
<p><label for="button" id="label">Label</label></p>
<p id="outside">Something under the label</p>
<pre id="test">
<script type="application/javascript">

/** Test for Bug 426082 */

function runTests() {
  SimpleTest.executeSoon(tests);
}

SimpleTest.waitForFocus(runTests);

function oneTick() {
  return new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(resolve)));
}

function stringifyOpenTag(aElement) {
  return aElement.cloneNode(false).outerHTML;
}

function sendMouseEvent(t, elem) {
  info(`Synthesizing ${t} on ${stringifyOpenTag(elem)}`);
  let r = elem.getBoundingClientRect();
  synthesizeMouse(elem, r.width / 2, r.height / 2, {type: t});
}

async function tests() {
  let button = document.getElementById("button");
  let label = document.getElementById("label");
  let outside = document.getElementById("outside");

  let is = window.opener.is;
  let ok = window.opener.ok;

  function logMouseEvent(aEvent) {
    info(`${aEvent.type} (${aEvent.clientX}, ${aEvent.clientY}) on ${
      stringifyOpenTag(event.target)
    } (scrollTop=${document.documentElement.scrollTop})`);
  }
  addEventListener("mouseover", logMouseEvent, {capture: true});
  addEventListener("mousedown", logMouseEvent, {capture: true});
  addEventListener("mousemove", logMouseEvent, {capture: true});

  // Press the label.
  sendMouseEvent("mousemove"label);
  sendMouseEvent("mousedown"label);

  await oneTick();

  ok(label.matches(":hover"), "Label is hovered");
  ok(button.matches(":hover"), "Button should be hovered too");

  ok(label.matches(":active"), "Label is active");
  ok(button.matches(":active"), "Button should be active too");

  // Move the mouse down from the label.
  sendMouseEvent("mousemove", outside);

  await oneTick();

  ok(!label.matches(":hover"), "Label is no longer hovered");
  ok(!button.matches(":hover"), "Button should not be hovered too");

  ok(label.matches(":active"), "Label is still active");
  ok(button.matches(":active"), "Button is still active too");

  // And up again.
  sendMouseEvent("mousemove"label);

  await oneTick();


  ok(label.matches(":hover"), "Label hovered again");
  ok(button.matches(":hover"), "Button be hovered again");
  ok(label.matches(":active"), "Label is still active");
  ok(button.matches(":active"), "Button is still active too");

  // Release.
  sendMouseEvent("mouseup"label);

  await oneTick();

  ok(!label.matches(":active"), "Label is no longer active");
  ok(!button.matches(":active"), "Button is no longer active");

  ok(label.matches(":hover"), "Label is still hovered");
  ok(button.matches(":hover"), "Button is still hovered");

  // Press the label and remove it.
  sendMouseEvent("mousemove"label);
  sendMouseEvent("mousedown"label);

  await oneTick();

  label.remove();

  await oneTick();

  ok(!label.matches(":active"), "Removing label should have unpressed it");
  ok(!label.matches(":focus"), "Removing label should have unpressed it");
  ok(!label.matches(":hover"), "Removing label should have unhovered it");
  ok(!button.matches(":active"), "Removing label should have unpressed the button");
  ok(!button.matches(":focus"), "Removing label should have unpressed the button");
  ok(!button.matches(":hover"), "Removing label should have unhovered the button");

  sendMouseEvent("mouseup"label);
  window.opener.finishTests();
}
</script>
</pre>
</body>
</html>

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

¤ Dauer der Verarbeitung: 0.27 Sekunden  (vorverarbeitet am  2026-08-25) ¤

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