summaryrefslogtreecommitdiffstats
path: root/security/manager/ssl/tests/mochitest/browser
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /security/manager/ssl/tests/mochitest/browser
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'security/manager/ssl/tests/mochitest/browser')
-rw-r--r--security/manager/ssl/tests/mochitest/browser/browser.toml2
-rw-r--r--security/manager/ssl/tests/mochitest/browser/browser_clientAuth_fetch_from_extension.js59
-rw-r--r--security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js12
-rw-r--r--security/manager/ssl/tests/mochitest/browser/browser_loadPKCS11Module_ui.js2
4 files changed, 73 insertions, 2 deletions
diff --git a/security/manager/ssl/tests/mochitest/browser/browser.toml b/security/manager/ssl/tests/mochitest/browser/browser.toml
index 433fffa4ac..ffa0e39d36 100644
--- a/security/manager/ssl/tests/mochitest/browser/browser.toml
+++ b/security/manager/ssl/tests/mochitest/browser/browser.toml
@@ -33,6 +33,8 @@ skip-if = [
"socketprocess_networking",
]
+["browser_clientAuth_fetch_from_extension.js"]
+
["browser_clientAuth_speculative_connection.js"]
skip-if = ["socketprocess_networking"]
diff --git a/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_fetch_from_extension.js b/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_fetch_from_extension.js
new file mode 100644
index 0000000000..4f9a45f03c
--- /dev/null
+++ b/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_fetch_from_extension.js
@@ -0,0 +1,59 @@
+/* Any copyright is dedicated to the Public Domain.
+ * https://creativecommons.org/publicdomain/zero/1.0/ */
+
+/* global browser */
+
+"use strict";
+
+let certDialogShown = false;
+function onCertDialogLoaded(subject) {
+ certDialogShown = true;
+ // eslint-disable-next-line mozilla/no-arbitrary-setTimeout
+ setTimeout(() => {
+ subject.acceptDialog();
+ }, 0);
+}
+
+Services.obs.addObserver(onCertDialogLoaded, "cert-dialog-loaded");
+
+function clearClientCertsDecision() {
+ let cars = Cc["@mozilla.org/security/clientAuthRememberService;1"].getService(
+ Ci.nsIClientAuthRememberService
+ );
+ cars.clearRememberedDecisions();
+}
+
+registerCleanupFunction(() => {
+ Services.obs.removeObserver(onCertDialogLoaded, "cert-dialog-loaded");
+ // Make sure we don't affect other tests.
+ clearClientCertsDecision();
+});
+
+add_task(async function () {
+ await SpecialPowers.pushPrefEnv({
+ set: [["security.default_personal_cert", "Ask Every Time"]],
+ });
+
+ clearClientCertsDecision();
+
+ let extension = ExtensionTestUtils.loadExtension({
+ manifest: {
+ permissions: ["<all_urls>"],
+ },
+
+ async background() {
+ try {
+ await fetch("https://requireclientcert.example.com/");
+ browser.test.notifyPass("cert_dialog_shown");
+ } catch (error) {
+ browser.test.fail(`${error} :: ${error.stack}`);
+ browser.test.notifyFail("cert_dialog_shown");
+ }
+ },
+ });
+
+ await extension.startup();
+ await extension.awaitFinish("cert_dialog_shown");
+ await extension.unload();
+ ok(certDialogShown, "Cert dialog was shown");
+});
diff --git a/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js b/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js
index 9bf961250a..2e9ff0557e 100644
--- a/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js
+++ b/security/manager/ssl/tests/mochitest/browser/browser_clientAuth_ui.js
@@ -14,6 +14,11 @@ const TEST_PORT = 123;
var certDB = Cc["@mozilla.org/security/x509certdb;1"].getService(
Ci.nsIX509CertDB
);
+
+ChromeUtils.defineESModuleGetters(this, {
+ PromptUtils: "resource://gre/modules/PromptUtils.sys.mjs",
+});
+
/**
* Test certificate (i.e. build/pgo/certs/mochitest.client).
*
@@ -34,11 +39,16 @@ var cert;
function openClientAuthDialog(cert) {
let certArray = [cert];
let retVals = { cert: undefined, rememberDecision: undefined };
+ let args = PromptUtils.objectToPropBag({
+ hostname: TEST_HOSTNAME,
+ certArray,
+ retVals,
+ });
let win = window.openDialog(
"chrome://pippki/content/clientauthask.xhtml",
"",
"",
- { hostname: TEST_HOSTNAME, certArray, retVals }
+ args
);
return TestUtils.topicObserved("cert-dialog-loaded").then(() => {
return { win, retVals };
diff --git a/security/manager/ssl/tests/mochitest/browser/browser_loadPKCS11Module_ui.js b/security/manager/ssl/tests/mochitest/browser/browser_loadPKCS11Module_ui.js
index 4b7b78df8d..8b65d1e411 100644
--- a/security/manager/ssl/tests/mochitest/browser/browser_loadPKCS11Module_ui.js
+++ b/security/manager/ssl/tests/mochitest/browser/browser_loadPKCS11Module_ui.js
@@ -290,7 +290,7 @@ async function testModuleNameHelper(moduleName, acceptButtonShouldBeDisabled) {
let dialogNode = win.document.querySelector("dialog");
Assert.equal(
dialogNode.getAttribute("buttondisabledaccept"),
- acceptButtonShouldBeDisabled ? "true" : "", // it's a string
+ acceptButtonShouldBeDisabled ? "true" : null,
`dialog accept button should ${
acceptButtonShouldBeDisabled ? "" : "not "
}be disabled`