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

Quelle  browser_bug575561.js   Sprache: JAVA

 
requestLongerTimeout(2);

const TEST_URL =
  // eslint-disable-next-line @microsoft/sdl/no-insecure-url
  "http://example.com/browser/browser/base/content/test/general/app_bug575561.html";

add_task(async function () {
  SimpleTest.requestCompleteLog();

  // allow top level data: URI navigations, otherwise clicking data: link fails
  await SpecialPowers.pushPrefEnv({
    set: [["security.data_uri.block_toplevel_data_uri_navigations"false]],
  });

  // Pinned: Link to the same domain should not open a new tab
  // Tests link to http://example.com/browser/browser/base/content/test/general/dummy_page.html
  await testLink(0, truefalse);
  // Pinned: Link to a different subdomain should open a new tab
  // Tests link to http://test1.example.com/browser/browser/base/content/test/general/dummy_page.html
  await testLink(1, truetrue);

  // Pinned: Link to a different domain should open a new tab
  // Tests link to http://example.org/browser/browser/base/content/test/general/dummy_page.html
  await testLink(2, truetrue);

  // Not Pinned: Link to a different domain should not open a new tab
  // Tests link to http://example.org/browser/browser/base/content/test/general/dummy_page.html
  await testLink(2, falsefalse);

  // Pinned: Targetted link should open a new tab
  // Tests link to http://example.org/browser/browser/base/content/test/general/dummy_page.html with target="foo"
  await testLink(3, truetrue);

  // Pinned: Link in a subframe should not open a new tab
  // Tests link to http://example.org/browser/browser/base/content/test/general/dummy_page.html in subframe
  await testLink(0, truefalsetrue);

  // Pinned: Link to the same domain (with www prefix) should not open a new tab
  // Tests link to http://www.example.com/browser/browser/base/content/test/general/dummy_page.html
  await testLink(4, truefalse);

  // Pinned: Link to a data: URI should not open a new tab
  // Tests link to data:text/html,<!DOCTYPE html><html><body>Another Page</body></html>
  await testLink(5, truefalse);

  // Pinned: Link to an about: URI should not open a new tab
  // Tests link to about:logo
  await testLink(
    function (doc) {
      let link = doc.createElement("a");
      link.textContent = "Link to Mozilla";
      link.href = "about:logo";
      doc.body.appendChild(link);
      return link;
    },
    true,
    false,
    false,
    "about:robots"
  );
});

async function testLink(
  aLinkIndexOrFunction,
  pinTab,
  expectNewTab,
  testSubFrame,
  aURL = TEST_URL
) {
  let appTab = BrowserTestUtils.addTab(gBrowser, aURL, { skipAnimation: true });
  if (pinTab) {
    gBrowser.pinTab(appTab);
  }
  gBrowser.selectedTab = appTab;

  let browser = appTab.linkedBrowser;
  await BrowserTestUtils.browserLoaded(browser);

  let promise;
  if (expectNewTab) {
    promise = BrowserTestUtils.waitForNewTab(gBrowser).then(tab => {
      let loaded = tab.linkedBrowser.documentURI.spec;
      BrowserTestUtils.removeTab(tab);
      return loaded;
    });
  } else {
    promise = BrowserTestUtils.browserLoaded(browser, testSubFrame);
  }

  let href;
  if (typeof aLinkIndexOrFunction === "function") {
    ok(!browser.isRemoteBrowser, "don't pass a function for a remote browser");
    let link = aLinkIndexOrFunction(browser.contentDocument);
    info("Clicking " + link.textContent);
    link.click();
    href = link.href;
  } else {
    href = await SpecialPowers.spawn(
      browser,
      [[testSubFrame, aLinkIndexOrFunction]],
      function ([subFrame, index]) {
        let doc = subFrame
          ? content.document.querySelector("iframe").contentDocument
          : content.document;
        let link = doc.querySelectorAll("a")[index];

        info("Clicking " + link.textContent);
        link.click();
        return link.href;
      }
    );
  }

  info(`Waiting on load of ${href}`);
  let loaded = await promise;
  is(loaded, href, "loaded the right document");
  BrowserTestUtils.removeTab(appTab);
}

Messung V0.5
C=81 H=69 G=74

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