summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/test/mochitest/test_autocomplete_highlight.html
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/test/mochitest/test_autocomplete_highlight.html')
-rw-r--r--toolkit/components/passwordmgr/test/mochitest/test_autocomplete_highlight.html87
1 files changed, 87 insertions, 0 deletions
diff --git a/toolkit/components/passwordmgr/test/mochitest/test_autocomplete_highlight.html b/toolkit/components/passwordmgr/test/mochitest/test_autocomplete_highlight.html
new file mode 100644
index 0000000000..dfde95e1e4
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/mochitest/test_autocomplete_highlight.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Test form field autofill highlight</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script src="/tests/SimpleTest/EventUtils.js"></script>
+ <script type="text/javascript" src="../../../satchel/test/satchel_common.js"></script>
+ <script type="text/javascript" src="pwmgr_common.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<p id="display"></p>
+<div id="content"></div>
+<pre id="test">
+<script>
+const { ContentTaskUtils } = SpecialPowers.ChromeUtils.import(
+ "resource://testing-common/ContentTaskUtils.jsm"
+);
+
+add_setup(async () => {
+ const origin = window.location.origin;
+ await addLoginsInParent(
+ [origin, "https://autocomplete", null, "user1", "pass1", "", ""],
+ [origin, "https://autocomplete", null, "user2", "pass2", "", ""]
+ );
+});
+
+add_task(async function test_field_highlight_on_autocomplete() {
+ const form = createLoginForm({
+ action: "https://autocomplete"
+ });
+
+ await openPopupOn(form.uname);
+ synthesizeKey("KEY_ArrowDown");
+ await synthesizeKey("KEY_Enter");
+
+ await ContentTaskUtils.waitForCondition(() => {
+ return form.uname.matches(":autofill")
+ }, "Highlight was successfully applied to the username field on username autocomplete");
+
+ ok(form.pword.matches(":autofill"),
+ "Highlight was successfully applied to the password field on username autocomplete");
+
+ // Clear existing highlight on login fields. We check by pressing the tab key after backspace
+ // (by shifting focus to the next element) because the tab key was known to cause a bug where the
+ // highlight is applied once again. See Bug 1526522.
+ form.uname.focus();
+ synthesizeKey("KEY_Backspace");
+ synthesizeKey("KEY_Tab");
+ ok(!form.uname.matches(":autofill"),
+ "Highlight was successfully removed on the username field");
+
+ synthesizeKey("KEY_Backspace");
+ synthesizeKey("KEY_Tab");
+ ok(!form.pword.matches(":autofill"),
+ "Highlight was successfully removed on the password field");
+
+ // Clear login fields.
+ form.uname.value = "";
+ form.pword.value = "";
+
+ // Test password field autocomplete.
+ await openPopupOn(form.pword);
+ synthesizeKey("KEY_ArrowDown");
+ synthesizeKey("KEY_Enter");
+
+ await ContentTaskUtils.waitForCondition(() => {
+ return form.pword.matches(":autofill");
+ }, "Highlight was successfully applied to the password field on password autocomplete");
+
+ // Clear existing highlight on the password field. We check by pressing the tab key after backspace
+ // (by shifting focus to the next element) because the tab key was known to cause a bug where the
+ // highlight is applied once again. See Bug 1526522.
+ synthesizeKey("KEY_Backspace");
+ synthesizeKey("KEY_Tab");
+
+ ok(!form.pword.matches(":autofill"),
+ "Highlight was successfully removed on the password field");
+
+ // Clear login fields.
+ form.uname.value = "";
+ form.pword.value = "";
+});
+</script>
+</body>
+</html>