browser_aboutCertError_coop.js (3775B)
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 /** 10 * Waits for a single TabOpen event, then attaches waitForErrorPage 11 * to the newly opened tab’s browser. Returns the tab once the error page loads. 12 */ 13 function waitForNewTabAndErrorPage() { 14 let tabLoaded = BrowserTestUtils.waitForEvent( 15 gBrowser.tabContainer, 16 "TabOpen" 17 ); 18 19 return (async () => { 20 let event = await tabLoaded; 21 let newTab = event.target; 22 let newBrowser = newTab.linkedBrowser; 23 24 let errorPageLoaded = BrowserTestUtils.waitForErrorPage(newBrowser); 25 await errorPageLoaded; 26 27 return newTab; 28 })(); 29 } 30 31 add_task(async function test_coopError() { 32 await setSecurityCertErrorsFeltPrivacyToFalse(); 33 let iframeTab = await BrowserTestUtils.openNewForegroundTab( 34 gBrowser, 35 `${AUTH_ROUTE}?error=coop` 36 ); 37 let popupTabLoaded = waitForNewTabAndErrorPage(); 38 39 await SpecialPowers.spawn(iframeTab.linkedBrowser, [], async () => { 40 let button = content.document 41 .querySelector("iframe") 42 .contentDocument.querySelector("#openPopupButton"); 43 if (!button) { 44 ok(false, "Popup button not found!"); 45 } 46 button.click(); 47 }); 48 49 let popUpTab = await popupTabLoaded; 50 let popUpBrowser = popUpTab.linkedBrowser; 51 52 await SpecialPowers.spawn(popUpBrowser, [], function () { 53 const doc = content.document; 54 const titleEl = doc.querySelector(".title-text"); 55 const actualDataL10nID = titleEl.getAttribute("data-l10n-id"); 56 is( 57 actualDataL10nID, 58 "general-body-title", 59 "Correct error link title (CORP) is set" 60 ); 61 62 const anchor = doc.querySelector("a"); 63 const actualAnchorl10nID = anchor.getAttribute("data-l10n-id"); 64 is( 65 actualAnchorl10nID, 66 "certerror-coop-learn-more", 67 "Correct error link is set" 68 ); 69 }); 70 71 BrowserTestUtils.removeTab(iframeTab); 72 BrowserTestUtils.removeTab(popUpTab); 73 }); 74 75 add_task(async function test_coopError_feltPrivacyToTrue() { 76 await setSecurityCertErrorsFeltPrivacyToTrue(); 77 let iframeTab = await BrowserTestUtils.openNewForegroundTab( 78 gBrowser, 79 `${AUTH_ROUTE}?error=coop` 80 ); 81 let popupTabLoaded = waitForNewTabAndErrorPage(); 82 83 await SpecialPowers.spawn(iframeTab.linkedBrowser, [], async () => { 84 let button = content.document 85 .querySelector("iframe") 86 .contentDocument.querySelector("#openPopupButton"); 87 if (!button) { 88 Assert.ok(false, "Popup button not found!"); 89 } 90 EventUtils.synthesizeMouseAtCenter(button, {}, content); 91 }); 92 93 let popUpTab = await popupTabLoaded; 94 let popUpBrowser = popUpTab.linkedBrowser; 95 96 await SpecialPowers.spawn(popUpBrowser, [], async function () { 97 const doc = content.document; 98 99 const netErrorCard = doc.querySelector("net-error-card").wrappedJSObject; 100 await netErrorCard.getUpdateComplete(); 101 102 Assert.strictEqual( 103 netErrorCard.netErrorTitleText.dataset.l10nId, 104 "fp-certerror-body-title", 105 "Correct error link title (CORP) is set" 106 ); 107 108 await ContentTaskUtils.waitForCondition(() => { 109 return ( 110 netErrorCard.netErrorLearnMoreLink && 111 netErrorCard.netErrorLearnMoreLink.textContent != "" && 112 netErrorCard.netErrorLearnMoreLink.tagName.toLowerCase() === "a" 113 ); 114 }, "learn more link is visible and is a link"); 115 116 Assert.strictEqual( 117 netErrorCard.netErrorLearnMoreLink.dataset.l10nId, 118 "certerror-coop-learn-more", 119 "Learn more element is a link and has COOP text" 120 ); 121 }); 122 BrowserTestUtils.removeTab(iframeTab); 123 BrowserTestUtils.removeTab(popUpTab); 124 await SpecialPowers.popPrefEnv(); 125 });