summaryrefslogtreecommitdiffstats
path: root/devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js')
-rw-r--r--devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js123
1 files changed, 123 insertions, 0 deletions
diff --git a/devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js b/devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js
new file mode 100644
index 000000000..d0d41f743
--- /dev/null
+++ b/devtools/client/projecteditor/test/browser_projecteditor_menubar_02.js
@@ -0,0 +1,123 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+loadHelperScript("helper_edits.js");
+
+// Test menu bar enabled / disabled state.
+
+add_task(function* () {
+ let projecteditor = yield addProjectEditorTabForTempDirectory();
+ let menubar = projecteditor.menubar;
+
+ // Update menu items for a clean slate, so previous tests cannot
+ // affect paste, and possibly other side effects
+ projecteditor._updateMenuItems();
+
+ // let projecteditor = yield addProjectEditorTabForTempDirectory();
+ ok(projecteditor, "ProjectEditor has loaded");
+
+ let fileMenu = menubar.querySelector("#file-menu");
+ let editMenu = menubar.querySelector("#edit-menu");
+ ok(fileMenu, "The menu has loaded in the projecteditor document");
+ ok(editMenu, "The menu has loaded in the projecteditor document");
+
+ let cmdNew = fileMenu.querySelector("[command=cmd-new]");
+ let cmdSave = fileMenu.querySelector("[command=cmd-save]");
+ let cmdSaveas = fileMenu.querySelector("[command=cmd-saveas]");
+
+ let cmdUndo = editMenu.querySelector("[command=cmd_undo]");
+ let cmdRedo = editMenu.querySelector("[command=cmd_redo]");
+ let cmdCut = editMenu.querySelector("[command=cmd_cut]");
+ let cmdCopy = editMenu.querySelector("[command=cmd_copy]");
+ let cmdPaste = editMenu.querySelector("[command=cmd_paste]");
+
+ info("Checking initial state of menus");
+ yield openAndCloseMenu(fileMenu);
+ yield openAndCloseMenu(editMenu);
+
+ is(cmdNew.getAttribute("disabled"), "", "File menu item is enabled");
+ is(cmdSave.getAttribute("disabled"), "true", "File menu item is disabled");
+ is(cmdSaveas.getAttribute("disabled"), "true", "File menu item is disabled");
+
+ is(cmdUndo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdRedo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCut.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCopy.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdPaste.getAttribute("disabled"), "true", "Edit menu item is disabled");
+
+ projecteditor.menuEnabled = false;
+
+ info("Checking with menuEnabled = false");
+ yield openAndCloseMenu(fileMenu);
+ yield openAndCloseMenu(editMenu);
+
+ is(cmdNew.getAttribute("disabled"), "true", "File menu item is disabled");
+ is(cmdSave.getAttribute("disabled"), "true", "File menu item is disabled");
+ is(cmdSaveas.getAttribute("disabled"), "true", "File menu item is disabled");
+
+ is(cmdUndo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdRedo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCut.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCopy.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdPaste.getAttribute("disabled"), "true", "Edit menu item is disabled");
+
+ info("Checking with menuEnabled=true");
+ projecteditor.menuEnabled = true;
+
+ yield openAndCloseMenu(fileMenu);
+ yield openAndCloseMenu(editMenu);
+
+ is(cmdNew.getAttribute("disabled"), "", "File menu item is enabled");
+ is(cmdSave.getAttribute("disabled"), "true", "File menu item is disabled");
+ is(cmdSaveas.getAttribute("disabled"), "true", "File menu item is disabled");
+
+ is(cmdUndo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdRedo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCut.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCopy.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdPaste.getAttribute("disabled"), "true", "Edit menu item is disabled");
+
+ info("Checking with resource selected");
+ let resource = projecteditor.project.allResources()[2];
+ yield selectFile(projecteditor, resource);
+ let editor = projecteditor.currentEditor;
+
+ let onChange = promise.defer();
+
+ projecteditor.on("onEditorChange", () => {
+ info("onEditorChange has been detected");
+ onChange.resolve();
+ });
+ editor.editor.focus();
+ EventUtils.synthesizeKey("f", { }, projecteditor.window);
+
+ yield onChange;
+ yield openAndCloseMenu(fileMenu);
+ yield openAndCloseMenu(editMenu);
+
+ is(cmdNew.getAttribute("disabled"), "", "File menu item is enabled");
+ is(cmdSave.getAttribute("disabled"), "", "File menu item is enabled");
+ is(cmdSaveas.getAttribute("disabled"), "", "File menu item is enabled");
+
+ // Use editor.canUndo() to see if this is failing - the menu disabled property
+ // should be in sync with this because of isCommandEnabled in editor.js.
+ info('cmdUndo.getAttribute("disabled") is: "' + cmdUndo.getAttribute("disabled") + '"');
+ ok(editor.editor.canUndo(), "Edit menu item is enabled");
+
+ is(cmdRedo.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCut.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdCopy.getAttribute("disabled"), "true", "Edit menu item is disabled");
+ is(cmdPaste.getAttribute("disabled"), "", "Edit menu item is enabled");
+});
+
+function* openAndCloseMenu(menu) {
+ let shown = onPopupShow(menu);
+ EventUtils.synthesizeMouseAtCenter(menu, {}, menu.ownerDocument.defaultView);
+ yield shown;
+ let hidden = onPopupHidden(menu);
+ EventUtils.synthesizeMouseAtCenter(menu, {}, menu.ownerDocument.defaultView);
+ yield hidden;
+}