summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_bug424101.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_bug424101.js')
-rw-r--r--browser/base/content/test/general/browser_bug424101.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_bug424101.js b/browser/base/content/test/general/browser_bug424101.js
new file mode 100644
index 000000000..8000d2ae9
--- /dev/null
+++ b/browser/base/content/test/general/browser_bug424101.js
@@ -0,0 +1,52 @@
+/* Make sure that the context menu appears on form elements */
+
+add_task(function *() {
+ yield BrowserTestUtils.openNewForegroundTab(gBrowser, "data:text/html,test");
+
+ let contentAreaContextMenu = document.getElementById("contentAreaContextMenu");
+
+ let tests = [
+ { element: "input", type: "text" },
+ { element: "input", type: "password" },
+ { element: "input", type: "image" },
+ { element: "input", type: "button" },
+ { element: "input", type: "submit" },
+ { element: "input", type: "reset" },
+ { element: "input", type: "checkbox" },
+ { element: "input", type: "radio" },
+ { element: "button" },
+ { element: "select" },
+ { element: "option" },
+ { element: "optgroup" }
+ ];
+
+ for (let index = 0; index < tests.length; index++) {
+ let test = tests[index];
+
+ yield ContentTask.spawn(gBrowser.selectedBrowser,
+ { element: test.element, type: test.type, index: index },
+ function* (arg) {
+ let element = content.document.createElement(arg.element);
+ element.id = "element" + arg.index;
+ if (arg.type) {
+ element.setAttribute("type", arg.type);
+ }
+ content.document.body.appendChild(element);
+ });
+
+ let popupShownPromise = BrowserTestUtils.waitForEvent(contentAreaContextMenu, "popupshown");
+ yield BrowserTestUtils.synthesizeMouseAtCenter("#element" + index,
+ { type: "contextmenu", button: 2}, gBrowser.selectedBrowser);
+ yield popupShownPromise;
+
+ let typeAttr = test.type ? "type=" + test.type + " " : "";
+ is(gContextMenu.shouldDisplay, true,
+ "context menu behavior for <" + test.element + " " + typeAttr + "> is wrong");
+
+ let popupHiddenPromise = BrowserTestUtils.waitForEvent(contentAreaContextMenu, "popuphidden");
+ contentAreaContextMenu.hidePopup();
+ yield popupHiddenPromise;
+ }
+
+ gBrowser.removeCurrentTab();
+});