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


Quelle  browser_bug1791083.js   Sprache: JAVA

 
/* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */


const URL =
  "data:text/html," +
  "" +
  "" +
  "http://www.example.com'>Click Me" +
  "";

function isAnchorHovered(win) {
  return SpecialPowers.spawn(
    win.gBrowser.selectedBrowser,
    [],
    async function () {
      const a = content.document.querySelector("a");
      return a.matches(":hover");
    }
  );
}

add_task(async function test() {
  let newWin = await BrowserTestUtils.openNewBrowserWindow();

  // This bug is only reproducible if the cursor is out of the viewport, so
  // we resize the window to ensure the cursor is out of the viewport.

  // SynthesizeMouse isn't sufficient because it only synthesizes
  // mouse events without actually moving the cursor permanently to a
  // new location.
  newWin.resizeTo(50, 50);

  BrowserTestUtils.startLoadingURIString(newWin.gBrowser.selectedBrowser, URL);
  await BrowserTestUtils.browserLoaded(newWin.gBrowser.selectedBrowser);

  await SpecialPowers.spawn(
    newWin.gBrowser.selectedBrowser,
    [],
    async function () {
      const a = content.document.querySelector("a");
      await EventUtils.synthesizeMouseAtCenter(
        a,
        { type: "mousemove" },
        content
      );
    }
  );

  // We've hovered the anchor element.
  let anchorHovered = await isAnchorHovered(newWin);
  ok(anchorHovered, "Anchor should be hovered");

  let locationChange = BrowserTestUtils.waitForLocationChange(newWin.gBrowser);

  // Click the anchor to navigate away
  await SpecialPowers.spawn(
    newWin.gBrowser.selectedBrowser,
    [],
    async function () {
      const a = content.document.querySelector("a");
      await EventUtils.synthesizeMouseAtCenter(
        a,
        { type: "mousedown" },
        content
      );
      await EventUtils.synthesizeMouseAtCenter(a, { type: "mouseup" }, content);
    }
  );
  await locationChange;

  // Navigate back to the previous page which has the anchor
  locationChange = BrowserTestUtils.waitForLocationChange(newWin.gBrowser);
  newWin.gBrowser.selectedBrowser.goBack();
  await locationChange;

  // Hover state should be cleared upon page caching.
  anchorHovered = await isAnchorHovered(newWin);
  ok(!anchorHovered, "Anchor should not be hovered");

  BrowserTestUtils.closeWindow(newWin);
});

Messung V0.5
C=91 H=92 G=91

¤ Dauer der Verarbeitung: 0.24 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge