diff options
Diffstat (limited to 'toolkit/components/satchel/test/test_popup_enter_event.html')
-rw-r--r-- | toolkit/components/satchel/test/test_popup_enter_event.html | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/toolkit/components/satchel/test/test_popup_enter_event.html b/toolkit/components/satchel/test/test_popup_enter_event.html new file mode 100644 index 000000000..1a7aa8c19 --- /dev/null +++ b/toolkit/components/satchel/test/test_popup_enter_event.html @@ -0,0 +1,86 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Test for events while the form history popup is open</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> + <script type="text/javascript" src="satchel_common.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +Form History test: Test for events while the form history popup is open +<p id="display"></p> + +<div id="content"> + <form id="form1"> + <input type="text" name="field1"> + <button type="submit">Submit</button> + </form> +</div> + +<pre id="test"> +<script class="testbody"> +var form = document.getElementById("form1"); +var input = $_(1, "field1"); +var expectedValue = "value1"; + +function setupFormHistory(aCallback) { + updateFormHistory([ + { op : "remove" }, + { op : "add", fieldname : "field1", value : "value1" }, + ], aCallback); +} + +registerPopupShownListener(popupShownListener); + +function handleEnter(evt) { + if (evt.keyCode != KeyEvent.DOM_VK_RETURN) { + return; + } + + info("RETURN received for phase: " + evt.eventPhase); + if (input.value == expectedValue) { + ok(true, "RETURN should be received when the popup is closed"); + is(input.value, expectedValue, "Check input value when enter is pressed the 2nd time"); + info("form should submit with the default handler"); + } else { + ok(false, "RETURN keypress shouldn't have been received when a popup item is selected"); + } +} + +function popupShownListener(evt) { + doKey("down"); + doKey("return"); // select the first entry in the popup + doKey("return"); // try to submit the form with the filled value +} + +function runTest() { + input.addEventListener("keypress", handleEnter, true); + form.addEventListener("submit", evt => { + is(input.value, expectedValue, "Check input value in the submit handler"); + evt.preventDefault(); + SimpleTest.finish(); + }); + + // Focus the input before adjusting.value so that the caret goes to the end + // (since OS X doesn't show the dropdown otherwise). + input.focus(); + input.value = "value" + input.focus(); + doKey("down"); +} + +function startTest() { + setupFormHistory(function() { + runTest(); + }); +} + +window.onload = startTest; + +SimpleTest.waitForExplicitFinish(); +</script> +</pre> +</body> +</html> |