summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-menuitems.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-menuitems.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-menuitems.js169
1 files changed, 169 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-menuitems.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-menuitems.js
new file mode 100644
index 0000000..db55a36
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-menuitems.js
@@ -0,0 +1,169 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+'use strict'
+
+const windowUtils = require('sdk/deprecated/window-utils');
+const menuitems = require('pathfinder/ui/menuitems');
+
+let window = windowUtils.activeBrowserWindow;
+let document = window.document;
+function $(id) document.getElementById(id);
+
+function createMI(options, test) {
+ test.equal(!$(options.id), true);
+ var mi = new menuitems.Menuitem(options);
+ return mi;
+}
+
+exports.testMIDoesNotExist = function(assert) {
+ var options = {
+ id: "test-mi-dne",
+ label: "test"
+ };
+ createMI(options, assert);
+ assert.equal(!!$(options.id), false, 'menuitem does not exists');
+};
+
+exports.testMIDoesExist = function(assert) {
+ var options = {
+ id: "test-mi-exists",
+ label: "test",
+ menuid: 'menu_FilePopup'
+ };
+ let mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ assert.equal(menuitem.id, options.id, 'menuitem id is ok');
+ assert.equal(menuitem.getAttribute('label'), options.label, 'menuitem label is ok');
+ assert.equal(menuitem.parentNode.id, options.menuid, 'in the file menu');
+ assert.equal(menuitem.getAttribute('disabled'), 'false', 'menuitem not disabled');
+ assert.equal(menuitem.getAttribute('accesskey'), '', 'menuitem accesskey is ok');
+ assert.equal(menuitem.getAttribute('class'), '', 'menuitem class is ok');
+ assert.equal(menuitem.nextSibling, undefined, 'menuitem is last');
+ assert.equal(menuitem.hasAttribute("checked"), false, 'menuitem not checked');
+ mi.destroy();
+ assert.ok(!$(options.id), 'menuitem is gone');
+ assert.equal(menuitem.parentNode, null, 'menuitem has no parent');
+};
+
+exports.testMIOnClick = function(assert, done) {
+ let options = {
+ id: "test-mi-onclick",
+ label: "test",
+ menuid: 'menu_FilePopup',
+ onCommand: function() {
+ mi.destroy();
+ assert.pass('onCommand worked!');
+ done();
+ }
+ };
+
+ let e = document.createEvent("UIEvents");
+ e.initUIEvent("command", true, true, window, 1);
+
+ var mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ menuitem.dispatchEvent(e);
+};
+
+exports.testMIDisabled = function(assert, done) {
+ let commandIsOK = false;
+ let count = 0;
+ let options = {
+ id: "test-mi-disabled",
+ label: "test",
+ disabled: true,
+ menuid: 'menu_FilePopup',
+ onCommand: function() {
+ count++;
+ if (!commandIsOK) {
+ assert.fail('onCommand was called, that is not ok');
+ return;
+ }
+
+ mi.destroy();
+ assert.equal(count, 1, 'onCommand was called the correct number of times!');
+ done();
+ }
+ };
+
+ let e = document.createEvent("UIEvents");
+ e.initUIEvent("command", true, true, window, 1);
+
+ var mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ assert.equal(menuitem.getAttribute('disabled'), 'true', 'menuitem not disabled');
+ menuitem.dispatchEvent(e);
+ mi.disabled = false;
+ assert.equal(menuitem.getAttribute('disabled'), 'false', 'menuitem not disabled');
+ commandIsOK = true;
+ menuitem.dispatchEvent(e);
+};
+
+exports.testMIChecked = function(assert) {
+ let options = {
+ id: "test-mi-checked",
+ label: "test",
+ disabled: true,
+ menuid: 'menu_FilePopup',
+ checked: true
+ };
+
+ let mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ assert.equal(menuitem.getAttribute("checked"), "true", 'menuitem checked');
+ mi.checked = false;
+ assert.equal(menuitem.getAttribute("checked"), "false", 'menuitem checked');
+ mi.destroy();
+};
+
+exports.testMIClass = function(assert) {
+ let options = {
+ id: "test-mi-class",
+ label: "pizazz",
+ className: "pizazz",
+ menuid: 'menu_FilePopup',
+ };
+
+ var mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ assert.equal(menuitem.getAttribute('class'), 'pizazz', 'menuitem not disabled');
+ mi.destroy();
+};
+
+exports.testInsertBeforeExists = function(assert) {
+ let options = {
+ id: 'test-mi-insertbefore',
+ label: 'insertbefore',
+ insertbefore:'menu_FileQuitItem',
+ menuid: 'menu_FilePopup',
+ };
+
+ var mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ assert.equal(menuitem.nextSibling, $('menu_FileQuitItem'), 'menuitem not disabled');
+ mi.destroy();
+};
+
+exports.testInsertBeforeDoesNotExist = function(assert) {
+ let options = {
+ id: 'test-mi-insertbefore',
+ label: 'insertbefore',
+ insertbefore:'menu_ZZZDNE',
+ menuid: 'menu_FilePopup',
+ };
+
+ var mi = createMI(options, assert);
+ let menuitem = $(options.id);
+ assert.equal(!!menuitem, true, 'menuitem exists');
+ assert.equal(menuitem.nextSibling, null, 'menuitem not disabled');
+ mi.destroy();
+};
+
+require('sdk/test').run(exports);