forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D53741 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
 * http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
const BROWSER_NAME = document
 | 
						|
  .getElementById("bundle_brand")
 | 
						|
  .getString("brandShortName");
 | 
						|
const UNKNOWN_ISSUER = "https://no-subject-alt-name.example.com:443";
 | 
						|
 | 
						|
const checkAdvancedAndGetTechnicalInfoText = async () => {
 | 
						|
  let doc = content.document;
 | 
						|
 | 
						|
  let advancedButton = doc.getElementById("advancedButton");
 | 
						|
  ok(advancedButton, "advancedButton found");
 | 
						|
  is(
 | 
						|
    advancedButton.hasAttribute("disabled"),
 | 
						|
    false,
 | 
						|
    "advancedButton should be clickable"
 | 
						|
  );
 | 
						|
  advancedButton.click();
 | 
						|
 | 
						|
  let badCertAdvancedPanel = doc.getElementById("badCertAdvancedPanel");
 | 
						|
  ok(badCertAdvancedPanel, "badCertAdvancedPanel found");
 | 
						|
 | 
						|
  let badCertTechnicalInfo = doc.getElementById("badCertTechnicalInfo");
 | 
						|
  ok(badCertTechnicalInfo, "badCertTechnicalInfo found");
 | 
						|
 | 
						|
  // Wait until fluent sets the errorCode inner text.
 | 
						|
  await ContentTaskUtils.waitForCondition(() => {
 | 
						|
    let errorCode = doc.getElementById("errorCode");
 | 
						|
    return errorCode.textContent == "SSL_ERROR_BAD_CERT_DOMAIN";
 | 
						|
  }, "correct error code has been set inside the advanced button panel");
 | 
						|
 | 
						|
  let viewCertificate = doc.getElementById("viewCertificate");
 | 
						|
  ok(viewCertificate, "viewCertificate found");
 | 
						|
 | 
						|
  return badCertTechnicalInfo.innerHTML;
 | 
						|
};
 | 
						|
 | 
						|
const checkCorrectMessages = message => {
 | 
						|
  let isCorrectMessage = message.includes(
 | 
						|
    "Websites prove their identity via certificates. " +
 | 
						|
      BROWSER_NAME +
 | 
						|
      " does not trust this site because it uses a certificate that is" +
 | 
						|
      " not valid for no-subject-alt-name.example.com"
 | 
						|
  );
 | 
						|
  is(isCorrectMessage, true, "That message should appear");
 | 
						|
  let isWrongMessage = message.includes("The certificate is only valid for ");
 | 
						|
  is(isWrongMessage, false, "That message shouldn't appear");
 | 
						|
};
 | 
						|
 | 
						|
add_task(async function checkUntrustedCertError() {
 | 
						|
  info(
 | 
						|
    `Loading ${UNKNOWN_ISSUER} which does not have a subject specified in the certificate`
 | 
						|
  );
 | 
						|
  let tab = await openErrorPage(UNKNOWN_ISSUER);
 | 
						|
  let browser = tab.linkedBrowser;
 | 
						|
  info("Clicking the exceptionDialogButton in advanced panel");
 | 
						|
  let badCertTechnicalInfoText = await SpecialPowers.spawn(
 | 
						|
    browser,
 | 
						|
    [],
 | 
						|
    checkAdvancedAndGetTechnicalInfoText
 | 
						|
  );
 | 
						|
  checkCorrectMessages(badCertTechnicalInfoText, browser);
 | 
						|
  BrowserTestUtils.removeTab(gBrowser.selectedTab);
 | 
						|
});
 |