summaryrefslogtreecommitdiffstats
path: root/editor/libeditor/tests/browser_bug527935.js
diff options
context:
space:
mode:
Diffstat (limited to 'editor/libeditor/tests/browser_bug527935.js')
-rw-r--r--editor/libeditor/tests/browser_bug527935.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/editor/libeditor/tests/browser_bug527935.js b/editor/libeditor/tests/browser_bug527935.js
new file mode 100644
index 000000000..dc6e74d3e
--- /dev/null
+++ b/editor/libeditor/tests/browser_bug527935.js
@@ -0,0 +1,63 @@
+add_task(function*() {
+ yield new Promise(resolve => waitForFocus(resolve, window));
+
+ const kPageURL = "http://example.org/browser/editor/libeditor/tests/bug527935.html";
+ yield BrowserTestUtils.withNewTab({
+ gBrowser,
+ url: kPageURL
+ }, function*(aBrowser) {
+ var popupShown = false;
+ function listener() {
+ popupShown = true;
+ }
+ SpecialPowers.addAutoCompletePopupEventListener(window, "popupshowing", listener);
+
+ yield ContentTask.spawn(aBrowser, {}, function*() {
+ var window = content.window.wrappedJSObject;
+ var document = window.document;
+ var formTarget = document.getElementById("formTarget");
+ var initValue = document.getElementById("initValue");
+
+ window.loadPromise = new Promise(resolve => {
+ formTarget.onload = resolve;
+ });
+
+ initValue.focus();
+ initValue.value = "foo";
+ });
+
+ EventUtils.synthesizeKey("VK_RETURN", {});
+
+ yield ContentTask.spawn(aBrowser, {}, function*() {
+ var window = content.window.wrappedJSObject;
+ var document = window.document;
+
+ yield window.loadPromise;
+
+ var newInput = document.createElement("input");
+ newInput.setAttribute("name", "test");
+ document.body.appendChild(newInput);
+
+ var event = document.createEvent("KeyboardEvent");
+
+ event.initKeyEvent("keypress", true, true, null, false, false,
+ false, false, 0, "f".charCodeAt(0));
+ newInput.value = "";
+ newInput.focus();
+ newInput.dispatchEvent(event);
+ });
+
+ yield new Promise(resolve => hitEventLoop(resolve, 100));
+
+ ok(!popupShown, "Popup must not be opened");
+ SpecialPowers.removeAutoCompletePopupEventListener(window, "popupshowing", listener);
+ });
+});
+
+function hitEventLoop(func, times) {
+ if (times > 0) {
+ setTimeout(hitEventLoop, 0, func, times - 1);
+ } else {
+ setTimeout(func, 0);
+ }
+}