diff options
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.js | 165 |
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()); + } + }) +}; |