tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_aboutCertError_coep.js (3161B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const AUTH_ROUTE =
      7  "https://example.com/browser/browser/base/content/test/about/sandbox_corp_iframe.sjs";
      8 
      9 add_task(async function test_coepError() {
     10  let browser;
     11  let pageLoaded;
     12 
     13  await setSecurityCertErrorsFeltPrivacyToFalse();
     14 
     15  const uri = `${AUTH_ROUTE}?error=coep`;
     16 
     17  await BrowserTestUtils.openNewForegroundTab(
     18    gBrowser,
     19    () => {
     20      gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, uri);
     21      browser = gBrowser.selectedBrowser;
     22      pageLoaded = BrowserTestUtils.waitForErrorPage(browser);
     23    },
     24    false
     25  );
     26 
     27  await pageLoaded;
     28 
     29  await SpecialPowers.spawn(browser, [], function () {
     30    // The error is displayed in the iframe for COEP
     31    const doc = content.document.querySelector("iframe").contentDocument;
     32 
     33    ok(
     34      doc.documentURI.startsWith("about:neterror"),
     35      "Should be showing error page"
     36    );
     37 
     38    const titleEl = doc.querySelector(".title-text");
     39    const actualDataL10nID = titleEl.getAttribute("data-l10n-id");
     40    is(
     41      actualDataL10nID,
     42      "general-body-title",
     43      "Correct error link title (CORP) is set"
     44    );
     45 
     46    const anchor = doc.querySelector("a");
     47    const actualAnchorl10nID = anchor.getAttribute("data-l10n-id");
     48    is(
     49      actualAnchorl10nID,
     50      "certerror-coep-learn-more",
     51      "Correct error link is set"
     52    );
     53  });
     54 
     55  BrowserTestUtils.removeTab(gBrowser.selectedTab);
     56 });
     57 
     58 add_task(async function test_coepError_feltPrivacyToTrue() {
     59  let browser;
     60  let pageLoaded;
     61 
     62  const uri = `${AUTH_ROUTE}?error=coep`;
     63  await setSecurityCertErrorsFeltPrivacyToTrue();
     64  await BrowserTestUtils.openNewForegroundTab(
     65    gBrowser,
     66    () => {
     67      gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, uri);
     68      browser = gBrowser.selectedBrowser;
     69      pageLoaded = BrowserTestUtils.waitForErrorPage(browser);
     70    },
     71    false
     72  );
     73 
     74  await pageLoaded;
     75 
     76  await SpecialPowers.spawn(browser, [], async function () {
     77    // The error is displayed in the iframe for COEP
     78    const doc = content.document.querySelector("iframe").contentDocument;
     79 
     80    Assert.ok(
     81      doc.documentURI.startsWith("about:neterror"),
     82      "Should be showing error page"
     83    );
     84 
     85    const netErrorCard = doc.querySelector("net-error-card").wrappedJSObject;
     86    await netErrorCard.getUpdateComplete();
     87 
     88    Assert.strictEqual(
     89      netErrorCard.netErrorTitleText.dataset.l10nId,
     90      "fp-certerror-body-title",
     91      "Correct error link title (CORP) is set"
     92    );
     93 
     94    await ContentTaskUtils.waitForCondition(() => {
     95      return (
     96        netErrorCard.netErrorLearnMoreLink &&
     97        netErrorCard.netErrorLearnMoreLink.textContent != "" &&
     98        netErrorCard.netErrorLearnMoreLink.tagName.toLowerCase() === "a"
     99      );
    100    }, "learn more link is visible and is a link");
    101 
    102    Assert.strictEqual(
    103      netErrorCard.netErrorLearnMoreLink.dataset.l10nId,
    104      "certerror-coep-learn-more",
    105      "Learn more element is a link and has COEP text"
    106    );
    107  });
    108 
    109  BrowserTestUtils.removeTab(gBrowser.selectedTab);
    110  await SpecialPowers.popPrefEnv();
    111 });