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

Quelle  browser_625016.js   Sprache: JAVA

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


add_setup(async function () {
  /** Test for Bug 625016 - Restore windows closed in succession to quit (non-OSX only) **/

  // We'll test this by opening a new window, waiting for the save
  // event, then closing that window. We'll observe the
  // "sessionstore-state-write-complete" notification and check that
  // the state contains no _closedWindows. We'll then add a new tab
  // and make sure that the state following that was reset and the
  // closed window is now in _closedWindows.

  requestLongerTimeout(2);

  await forceSaveState();

  // We'll clear all closed windows to make sure our state is clean
  // forgetClosedWindow doesn't trigger a delayed save
  forgetClosedWindows();
  is(ss.getClosedWindowCount(), 0, "starting with no closed windows");
});

add_task(async function new_window() {
  let newWin;
  try {
    newWin = await promiseNewWindowLoaded();
    let tab = BrowserTestUtils.addTab(
      newWin.gBrowser,
      "http://example.com/browser_625016.js?" + Math.random()
    );
    await promiseBrowserLoaded(tab.linkedBrowser);

    // Double check that we have no closed windows
    is(ss.getClosedWindowCount(), 0, "no closed windows on first save");

    await BrowserTestUtils.closeWindow(newWin);
    newWin = null;

    let state = JSON.parse(await promiseRecoveryFileContents());
    is(state.windows.length, 1, "observe1: 1 window in data written to disk");
    is(
      state._closedWindows.length,
      0,
      "observe1: no closed windows in data written to disk"
    );

    // The API still treats the closed window as closed, so ensure that window is there
    is(
      ss.getClosedWindowCount(),
      1,
      "observe1: 1 closed window according to API"
    );
  } finally {
    if (newWin) {
      await BrowserTestUtils.closeWindow(newWin);
    }
    await forceSaveState();
  }
});

// We'll open a tab, which should trigger another state save which would wipe
// the _shouldRestore attribute from the closed window
add_task(async function new_tab() {
  let newTab;
  try {
    newTab = BrowserTestUtils.addTab(gBrowser, "about:mozilla");
    await promiseBrowserLoaded(newTab.linkedBrowser);
    await TabStateFlusher.flush(newTab.linkedBrowser);

    let state = JSON.parse(await promiseRecoveryFileContents());
    is(
      state.windows.length,
      1,
      "observe2: 1 window in data being written to disk"
    );
    is(
      state._closedWindows.length,
      1,
      "observe2: 1 closed window in data being written to disk"
    );

    // The API still treats the closed window as closed, so ensure that window is there
    is(
      ss.getClosedWindowCount(),
      1,
      "observe2: 1 closed window according to API"
    );
  } finally {
    if (newTab) {
      gBrowser.removeTab(newTab);
    }
  }
});

add_task(async function done() {
  // The API still represents the closed window as closed, so we can clear it
  // with the API, but just to make sure...
  //  is(ss.getClosedWindowCount(), 1, "1 closed window according to API");
  await promiseAllButPrimaryWindowClosed();
  forgetClosedWindows();
  Services.prefs.clearUserPref("browser.sessionstore.interval");
});

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

¤ 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.