browser_aboutCertError_offlineSupport_feltPrivacyV1.js (2815B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const BAD_CERT_PAGE = "https://expired.example.com"; 7 const DUMMY_SUPPORT_BASE_PATH = "/1/firefox/fxVersion/OSVersion/language/"; 8 const DUMMY_SUPPORT_URL = BAD_CERT_PAGE + DUMMY_SUPPORT_BASE_PATH; 9 const OFFLINE_SUPPORT_PAGE = 10 "chrome://global/content/neterror/supportpages/time-errors.html"; 11 12 add_setup(async function () { 13 await SpecialPowers.pushPrefEnv({ 14 set: [ 15 ["test.wait300msAfterTabSwitch", true], 16 ["security.certerrors.felt-privacy-v1", true], 17 ], 18 }); 19 }); 20 21 add_task(async function testOfflineSupportPage() { 22 // Cache the original value of app.support.baseURL pref to reset later 23 let originalBaseURL = Services.prefs.getCharPref("app.support.baseURL"); 24 25 Services.prefs.setCharPref("app.support.baseURL", DUMMY_SUPPORT_URL); 26 let errorTab = await openErrorPage(BAD_CERT_PAGE); 27 28 let offlineSupportPromise = BrowserTestUtils.waitForNewTab( 29 gBrowser, 30 DUMMY_SUPPORT_URL + "time-errors" 31 ); 32 await SpecialPowers.spawn( 33 errorTab.linkedBrowser, 34 [DUMMY_SUPPORT_URL], 35 async expectedURL => { 36 let doc = content.document; 37 38 const netErrorCard = doc.querySelector("net-error-card").wrappedJSObject; 39 await netErrorCard.getUpdateComplete(); 40 41 netErrorCard.advancedButton.scrollIntoView(); 42 EventUtils.synthesizeMouseAtCenter( 43 netErrorCard.advancedButton, 44 {}, 45 content 46 ); 47 48 await ContentTaskUtils.waitForCondition( 49 () => ContentTaskUtils.isVisible(netErrorCard.advancedContainer), 50 "Advanced container is visible" 51 ); 52 Assert.ok( 53 netErrorCard.advancedShowing, 54 "Advanced showing attribute should be true" 55 ); 56 Assert.ok(ContentTaskUtils.isVisible(netErrorCard.advancedContainer)); 57 58 let learnMoreLink = netErrorCard.learnMoreLink; 59 Assert.ok(learnMoreLink, '"Learn More" link exists.'); 60 61 let supportPageURL = learnMoreLink.getAttribute("href"); 62 Assert.equal( 63 supportPageURL, 64 expectedURL + "time-errors", 65 "Correct support page URL has been set" 66 ); 67 learnMoreLink.scrollIntoView(); 68 Assert.ok(ContentTaskUtils.isVisible(learnMoreLink)); 69 await EventUtils.synthesizeMouseAtCenter(learnMoreLink, {}, content); 70 } 71 ); 72 let offlineSupportTab = await offlineSupportPromise; 73 await BrowserTestUtils.browserLoaded( 74 gBrowser.selectedBrowser, 75 false, 76 OFFLINE_SUPPORT_PAGE 77 ); 78 79 // Reset this pref instead of clearing it to maintain globally set 80 // custom value for testing purposes. 81 Services.prefs.setCharPref("app.support.baseURL", originalBaseURL); 82 83 await BrowserTestUtils.removeTab(offlineSupportTab); 84 await BrowserTestUtils.removeTab(errorTab); 85 });