summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/test/browser/browser_isProbablyASignUpForm.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/test/browser/browser_isProbablyASignUpForm.js')
-rw-r--r--toolkit/components/passwordmgr/test/browser/browser_isProbablyASignUpForm.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/toolkit/components/passwordmgr/test/browser/browser_isProbablyASignUpForm.js b/toolkit/components/passwordmgr/test/browser/browser_isProbablyASignUpForm.js
new file mode 100644
index 0000000000..cc8bc63e7a
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/browser/browser_isProbablyASignUpForm.js
@@ -0,0 +1,52 @@
+"use strict";
+
+const TEST_URL = `https://example.com${DIRECTORY_PATH}form_signup_detection.html`;
+
+add_task(async () => {
+ await BrowserTestUtils.withNewTab(
+ {
+ gBrowser,
+ url: TEST_URL,
+ },
+ async browser => {
+ await SpecialPowers.spawn(browser, [], async () => {
+ const doc = content.document;
+ const { FormScenarios } = ChromeUtils.importESModule(
+ "resource://gre/modules/FormScenarios.sys.mjs"
+ );
+
+ function assertSignUpForm(
+ message,
+ formId,
+ inputId,
+ expectedToBeSignUp
+ ) {
+ const isSignUpForm = !!FormScenarios.detect({
+ form: doc.getElementById(formId),
+ input: doc.getElementById(inputId),
+ }).signUpForm;
+ Assert.equal(isSignUpForm, expectedToBeSignUp, message);
+ }
+
+ assertSignUpForm(
+ "Obvious signup form is detected as sign up form",
+ "obvious-signup-form",
+ "obvious-signup-email",
+ true
+ );
+ assertSignUpForm(
+ "Obvious non signup form is detected as non sign up form",
+ "obvious-login-form",
+ "obvious-login-username",
+ false
+ );
+ assertSignUpForm(
+ "An <input> HTML element is detected as non sign up form",
+ "",
+ "standalone-username",
+ false
+ );
+ });
+ }
+ );
+});