diff options
Diffstat (limited to 'browser/extensions/formautofill/test/mochitest/test_autofill_and_ordinal_forms.html')
-rw-r--r-- | browser/extensions/formautofill/test/mochitest/test_autofill_and_ordinal_forms.html | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/browser/extensions/formautofill/test/mochitest/test_autofill_and_ordinal_forms.html b/browser/extensions/formautofill/test/mochitest/test_autofill_and_ordinal_forms.html new file mode 100644 index 0000000000..5c143c3f4a --- /dev/null +++ b/browser/extensions/formautofill/test/mochitest/test_autofill_and_ordinal_forms.html @@ -0,0 +1,116 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>Test autofill submit</title> + <script src="/tests/SimpleTest/EventUtils.js"></script> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="formautofill_common.js"></script> + <script type="text/javascript" src="satchel_common.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> + +<script> +/* import-globals-from ../../../../../toolkit/components/satchel/test/satchel_common.js */ + +"use strict"; + +SpecialPowers.pushPrefEnv({"set": [["security.allow_eval_with_system_principal", true]]}); + +let MOCK_STORAGE = [{ + "given-name": "John", + "additional-name": "R", + "family-name": "Smith", + "organization": "Sesame Street", + "street-address": "123 Sesame Street.", + "tel": "+13453453456", + "country": "US", + "address-level1": "NY", +}]; + +initPopupListener(); + +add_task(async function setupStorage() { + await addAddress(MOCK_STORAGE[0]); + + await updateFormHistory([ + {op: "add", fieldname: "username", value: "petya"}, + {op: "add", fieldname: "current-password", value: "abrh#25_,K"}, + ]); +}); + +add_task(async function check_switch_autofill_form_popup() { + await setInput("#tel", ""); + synthesizeKey("KEY_ArrowDown"); + await expectPopup(); + checkMenuEntries( + [ + `{"primary":"+13453453456","secondary":"123 Sesame Street."}`, + `{"primary":"","secondary":"","categories":["name","organization","address","tel"],"focusedCategory":"tel"}`, + ], + false + ); + + await testMenuEntry(0, "!(el instanceof MozElements.MozAutocompleteRichlistitem)"); +}); + +add_task(async function check_switch_oridnal_form_popup() { + // We need an intentional wait here before switching form. + await sleep(); + await setInput("#username", ""); + synthesizeKey("KEY_ArrowDown"); + await expectPopup(); + checkMenuEntries(["petya"], false); + + await testMenuEntry(0, "el instanceof MozElements.MozAutocompleteRichlistitem"); +}); + +add_task(async function check_switch_autofill_form_popup_back() { + // We need an intentional wait here before switching form. + await sleep(); + await setInput("#tel", ""); + synthesizeKey("KEY_ArrowDown"); + await expectPopup(); + checkMenuEntries( + [ + `{"primary":"+13453453456","secondary":"123 Sesame Street."}`, + `{"primary":"","secondary":"","categories":["name","organization","address","tel"],"focusedCategory":"tel"}`, + ], + false + ); + + await testMenuEntry(0, "!(el instanceof MozElements.MozAutocompleteRichlistitem)"); +}); + +</script> + +<div> + + <h2>Address form</h2> + <form class="alignedLabels"> + <label>given-name: <input autocomplete="given-name" autofocus></label> + <label>additional-name: <input id="additional-name" autocomplete="additional-name"></label> + <label>family-name: <input autocomplete="family-name"></label> + <label>organization: <input autocomplete="organization"></label> + <label>street-address: <input autocomplete="street-address"></label> + <label>address-level1: <input autocomplete="address-level1"></label> + <label>postal-code: <input autocomplete="postal-code"></label> + <label>country: <input autocomplete="country"></label> + <label>country-name: <input autocomplete="country-name"></label> + <label>tel: <input id="tel" autocomplete="tel"></label> + <p> + <input type="submit" value="Submit"> + <button type="reset">Reset</button> + </p> + </form> + + <h2>Ordinal form</h2> + <form class="alignedLabels"> + <label>username: <input id="username" autocomplete="username"></label> + <p><input type="submit" value="Username"></p> + </form> + +</div> +</body> +</html> |