<!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>