| Index: chrome/content/tests/ui/icon_position.js |
| =================================================================== |
| --- a/chrome/content/tests/ui/icon_position.js |
| +++ b/chrome/content/tests/ui/icon_position.js |
| @@ -1,196 +1,90 @@ |
| (function() |
| { |
| let {application} = require("info"); |
| if (application != "firefox") |
| return; |
| + let CustomizableUI = null; |
| + let usingShim = false; |
| + try |
| + { |
| + ({CustomizableUI}) = Cu.import("resource:///modules/CustomizableUI.jsm", null); |
| + } |
| + catch (e) |
| + { |
| + usingShim = true; |
| + // No built-in CustomizableUI API, use our own implementation. |
| + ({CustomizableUI}) = require("customizableUI"); |
| + } |
| + |
| let wnd = Utils.getChromeWindow(window); |
| let toolbox = wnd.document.getElementById("navigator-toolbox"); |
| if (!toolbox) |
| return; |
|
Wladimir Palant
2014/07/31 11:36:15
This is only relevant when we are using the shim -
|
| module("Icon position", { |
| setup: function() |
| { |
| - this.oldPosition = toolbox.getAttribute("abp-iconposition"); |
| + // Force default position |
| + if (usingShim) |
| + toolbox.removeAttribute("abp-iconposition"); |
| + |
| if (UI.isToolbarIconVisible(wnd)) |
| UI.toggleToolbarIcon(); |
| }, |
| teardown: function() |
| { |
| - toolbox.setAttribute("abp-iconposition", this.oldPosition); |
| - toolbox.ownerDocument.persist(toolbox.id, "abp-iconposition"); |
| UI.toggleToolbarIcon(); |
| UI.toggleToolbarIcon(); |
| } |
| }); |
| - test("Put icon before add-on bar close button", function() |
| + test("Put icon at default position", function() |
| { |
| - toolbox.setAttribute("abp-iconposition", "hidden,addon-bar,addonbar-closebutton"); |
| + const DEFUALT = require("appSupport").defaultToolbarPosition.parent; |
|
Wladimir Palant
2014/07/31 11:36:15
This is misspelled. Still, I would prefer a proper
|
| UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(button.nextSibling, "Has next sibling"); |
| - if (button.nextSibling) |
| - equal(button.nextSibling.id, "addonbar-closebutton", "Next sibling ID"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| + let placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); |
| + ok(placement, "Button is visible"); |
| + if (placement) |
| + equal(placement.area, DEFUALT, "Button is at the right position"); |
| + |
| + UI.toggleToolbarIcon(); |
| + placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); |
| + ok(!placement, "Button is invisible"); |
| + |
| + UI.toggleToolbarIcon(); |
| + placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); |
| + ok(placement, "Button is visible"); |
| + if (placement) |
| + equal(placement.area, DEFUALT, "Button is at the right position again"); |
| + }); |
| + |
| + test("Move icon into tabs bar and restore", function() |
| + { |
| + // The shim doesn't have proper support for addToWidgetArea |
| + if (usingShim) { |
| + ok(true, "Can't test"); |
| + return; |
| } |
| UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(!button, "Button removed"); |
| + |
| + CustomizableUI.addWidgetToArea("abp-toolbarbutton", CustomizableUI.AREA_TABSTRIP); |
| + let placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); |
| + ok(placement, "Button is visible"); |
| + if (placement) |
| + equal(placement.area, CustomizableUI.AREA_TABSTRIP, "Button is in tabstrip"); |
| UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(button.nextSibling, "Has next sibling"); |
| - if (button.nextSibling) |
| - equal(button.nextSibling.id, "addonbar-closebutton", "Next sibling ID"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| - } |
| + placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); |
| + ok(!placement, "Button is invisible"); |
| + |
| + UI.toggleToolbarIcon(); |
| + placement = CustomizableUI.getPlacementOfWidget("abp-toolbarbutton"); |
| + ok(placement, "Button is visible"); |
| + if (placement) |
| + equal(placement.area, CustomizableUI.AREA_NAVBAR, "Button is at default position"); |
| }); |
| - test("Put icon at the end of the add-on bar", function() |
| - { |
| - toolbox.setAttribute("abp-iconposition", "hidden,addon-bar,"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(!button.nextSibling, "No next sibling"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| - } |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(!button, "Button removed"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(!button.nextSibling, "No next sibling"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| - } |
| - }); |
| - |
| - test("Put icon into navigation toolbar", function() |
| - { |
| - toolbox.setAttribute("abp-iconposition", "hidden,nav-bar,home-button"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(button.nextSibling, "Has next sibling"); |
| - if (button.nextSibling) |
| - equal(button.nextSibling.id, "home-button", "Next sibling ID"); |
| - equal(button.parentNode.id, "nav-bar", "Parent ID"); |
| - } |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(!button, "Button removed"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(button.nextSibling, "Has next sibling"); |
| - if (button.nextSibling) |
| - equal(button.nextSibling.id, "home-button", "Next sibling ID"); |
| - equal(button.parentNode.id, "nav-bar", "Parent ID"); |
| - } |
| - }); |
| - |
| - test("Put icon before an invalid element", function() |
| - { |
| - toolbox.setAttribute("abp-iconposition", "hidden,addon-bar,navigator-toolbox"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(!button.nextSibling, "No next sibling"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| - } |
| - equal(toolbox.getAttribute("abp-iconposition"), "visible,addon-bar,", "New saved position"); |
| - }); |
| - |
| - test("Put icon before an unknown element", function() |
| - { |
| - toolbox.setAttribute("abp-iconposition", "hidden,addon-bar,foobarelement"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(!button.nextSibling, "No next sibling"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| - } |
| - equal(toolbox.getAttribute("abp-iconposition"), "visible,addon-bar,", "New saved position"); |
| - }); |
| - |
| - test("Default icon position", function() |
| - { |
| - toolbox.removeAttribute("abp-iconposition"); |
| - |
| - UI.toggleToolbarIcon(); |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(button.nextSibling, "Has next sibling"); |
| - if (button.nextSibling) |
| - equal(button.nextSibling.id, "addonbar-closebutton", "Next sibling ID"); |
| - equal(button.parentNode.id, "addon-bar", "Parent ID"); |
| - } |
| - }); |
| - |
| - test("Recover legacy position", function() |
| - { |
| - toolbox.setAttribute("abp-iconposition", "hidden,addon-bar,"); |
| - UI.toggleToolbarIcon(); |
| - let icon = wnd.document.getElementById("abp-toolbarbutton"); |
| - UI.toggleToolbarIcon(); |
| - |
| - toolbox.removeAttribute("abp-iconposition"); |
| - let addonBar = wnd.document.getElementById("addon-bar"); |
| - let currentset = addonBar.getAttribute("currentset"); |
| - currentset = currentset.replace(/,abp-toolbarbutton/g, ""); |
| - currentset = currentset.replace(/abp-toolbarbutton,/g, ""); |
| - addonBar.setAttribute("currentset", currentset); |
| - |
| - let navBar = wnd.document.getElementById("nav-bar"); |
| - currentset = navBar.getAttribute("currentset"); |
| - currentset = currentset.replace(/,abp-toolbarbutton/g, ""); |
| - currentset = currentset.replace(/abp-toolbarbutton,/g, ""); |
| - currentset = currentset.replace(/,home-button/, ",abp-toolbarbutton,home-button"); |
| - navBar.setAttribute("currentset", currentset); |
| - |
| - UI.restoreToolbarIcon(toolbox, icon); |
| - |
| - let button = wnd.document.getElementById("abp-toolbarbutton"); |
| - ok(button, "Button added"); |
| - if (button) |
| - { |
| - ok(button.nextSibling, "Has next sibling"); |
| - if (button.nextSibling) |
| - equal(button.nextSibling.id, "home-button", "Next sibling ID"); |
| - equal(button.parentNode.id, "nav-bar", "Parent ID"); |
| - } |
| - }); |
| })(); |