summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-toolbarbutton.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-toolbarbutton.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-toolbarbutton.js165
1 files changed, 165 insertions, 0 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-toolbarbutton.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-toolbarbutton.js
new file mode 100644
index 0000000..1cfb269
--- /dev/null
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/node_modules/pathfinder/test/test-toolbarbutton.js
@@ -0,0 +1,165 @@
+/* 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 windows = require("sdk/windows").browserWindows;
+const toolbarbutton = require("pathfinder/ui/toolbarbutton");
+//const { Loader } = require('sdk/test/loader');
+const winUtils = require('sdk/window/utils');
+
+const NS_XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+
+const TEST_ICON_URL = module.uri.replace(/[^\.\\\/]*\.js$/, "test.png");
+const TEST_ICON_BLACK_URL = module.uri.replace(/[^\.\\\/]*\.js$/, "black.png");
+
+function $(id) winUtils.getMostRecentBrowserWindow().document.getElementById(id);
+
+function createToolbarButton(options, test) {
+ test.assertEqual(!$(options.id), true);
+
+ var tbb = toolbarbutton.ToolbarButton(options);
+ test.assertEqual(!$(options.id), true);
+
+ tbb.moveTo(options);
+ if (options.toolbarID)
+ test.assertEqual(!$(options.id), false);
+
+ return tbb;
+}
+
+function buttonExists(button, options, test) {
+ test.assertEqual(!button, false, 'test button');
+ test.assertEqual(button.parentNode, $(options.toolbarID), 'test parent');
+ test.assertEqual(button.id, options.id, 'test id');
+ if (options.label)
+ test.assertEqual(button.label, options.label, 'test label');
+ if (options.image)
+ test.assertEqual(button.image, options.image);
+ else
+ test.assertEqual(button.image, "");
+}
+
+exports.testTBBExists = function(test) {
+ var options = {
+ id: "test-tbb",
+ label: "test",
+ toolbarID: "nav-bar",
+ forceMove: true
+ };
+
+ var tbb = createToolbarButton(options, test);
+ buttonExists($(options.id), options, test);
+ tbb.destroy();
+ test.assertEqual(!$(options.id), true);
+ var tbb = createToolbarButton(options, test);
+ tbb.destroy();
+};
+
+exports.testTBBDoesNotExist = function(test) {
+ var options = {
+ id: "test-tbb2",
+ label: "test"
+ };
+ var tbb = createToolbarButton(options, test);
+ var tbbEle = $(options.id);
+ test.assertEqual(!tbbEle, true, 'toolbar button dne');
+ tbb.destroy();
+};
+
+exports.testTBBLabelChange = function(test) {
+ test.waitUntilDone();
+
+ var options = {
+ id: "test-tbb3",
+ label: "test",
+ toolbarID: "nav-bar",
+ forceMove: true
+ };
+
+ let tbb = createToolbarButton(options, test);
+ buttonExists($(options.id), options, test);
+ tbb.label = 'test change';
+ test.assertEqual($(options.id).label, 'test change', 'the label is changed');
+ test.assertEqual(tbb.label, 'test change', 'the label is changed');
+
+ tbb.destroy();
+ test.done();
+};
+
+exports.testTBBPropertyChange = function(test) {
+ test.waitUntilDone();
+
+ var options = {
+ id: "test-tbb4",
+ label: "test",
+ toolbarID: "nav-bar",
+ forceMove: true,
+ image: TEST_ICON_URL,
+ tooltiptext: 'a'
+ };
+
+ let tbb = createToolbarButton(options, test);
+ buttonExists($(options.id), options, test);
+ test.assertEqual($(options.id).image, TEST_ICON_URL, 'the image is correct');
+ test.assertEqual(tbb.image, TEST_ICON_URL, 'the image is correct');
+ test.assertEqual(tbb.tooltiptext, 'a', 'the tooltiptext is correct');
+ tbb.setIcon({url: TEST_ICON_BLACK_URL});
+ test.assertEqual($(options.id).image, TEST_ICON_BLACK_URL, 'the image is changed');
+ test.assertEqual(tbb.image, TEST_ICON_BLACK_URL, 'the image is changed');
+ tbb.tooltiptext = 'b';
+ test.assertEqual($(options.id).getAttribute('tooltiptext'), 'b', 'the tooltiptext is changed');
+ test.assertEqual(tbb.tooltiptext, 'b', 'the tooltiptext is changed');
+
+ tbb.destroy();
+ test.done();
+};
+
+exports.testTBBIteratorWithNonBrowserWindow = function(test) {
+ test.waitUntilDone();
+
+ let scratchpad = winUtils.getMostRecentBrowserWindow().Scratchpad.openScratchpad();
+ let options = {
+ id: "test-tbb5",
+ label: "TEST",
+ toolbarID: "nav-bar",
+ image: TEST_ICON_URL
+ };
+ windows.open({
+ onOpen: function(window) {
+ let tbb = createToolbarButton(options, test);
+ test.assertEqual(windows.length, 2);
+
+ scratchpad.close();
+ tbb.destroy();
+ window.close(function() test.done());
+ }
+ })
+};
+
+exports.testTBBIterator2 = function(test) {
+ test.waitUntilDone();
+
+ let window1 = winUtils.getMostRecentBrowserWindow();
+ let options = {
+ id: "test-tbb6",
+ label: "TEST",
+ toolbarID: "nav-bar",
+ image: TEST_ICON_URL
+ };
+ let button = window1.document.createElementNS(NS_XUL, "toolbarbutton");
+ button.setAttribute('id', options.id);
+ window1.document.getElementById(options.toolbarID).appendChild(button);
+ test.assert(!!$(options.id));
+
+ windows.open({
+ onOpen: function(window) {
+ let tbb = createToolbarButton(options, test);
+ test.assertEqual(windows.length, 2);
+
+ tbb.destroy();
+ button.parentNode.removeChild(button);
+ window.close(function() test.done());
+ }
+ })
+};