summaryrefslogtreecommitdiffstats
path: root/dom/credentialmanagement/identity/tests/browser/browser_close_prompt_on_timeout.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/credentialmanagement/identity/tests/browser/browser_close_prompt_on_timeout.js')
-rw-r--r--dom/credentialmanagement/identity/tests/browser/browser_close_prompt_on_timeout.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/credentialmanagement/identity/tests/browser/browser_close_prompt_on_timeout.js b/dom/credentialmanagement/identity/tests/browser/browser_close_prompt_on_timeout.js
new file mode 100644
index 0000000000..a71747e842
--- /dev/null
+++ b/dom/credentialmanagement/identity/tests/browser/browser_close_prompt_on_timeout.js
@@ -0,0 +1,63 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+const TEST_URL = "https://example.com/";
+
+add_task(async function test_close_prompt_on_timeout() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ [
+ "dom.security.credentialmanagement.identity.reject_delay.duration_ms",
+ 1000,
+ ],
+ ],
+ });
+
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_URL);
+
+ let requestCredential = async function () {
+ let promise = content.navigator.credentials.get({
+ identity: {
+ providers: [
+ {
+ configURL:
+ "https://example.net/tests/dom/credentialmanagement/identity/tests/browser/server_manifest.json",
+ clientId: "browser",
+ nonce: "nonce",
+ },
+ ],
+ },
+ });
+ try {
+ return await promise;
+ } catch (err) {
+ return err;
+ }
+ };
+
+ let popupShown = BrowserTestUtils.waitForEvent(
+ PopupNotifications.panel,
+ "popupshown"
+ );
+
+ let request = ContentTask.spawn(tab.linkedBrowser, null, requestCredential);
+
+ await popupShown;
+ await request;
+
+ let notification = PopupNotifications.getNotification(
+ "identity-credential",
+ tab.linkedBrowser
+ );
+ ok(
+ !notification,
+ "Identity Credential notification must not be present after timeout."
+ );
+
+ // Close tabs.
+ await BrowserTestUtils.removeTab(tab);
+ await SpecialPowers.popPrefEnv();
+});