diff options
Diffstat (limited to 'browser/components/customizableui/test/browser_976792_insertNodeInWindow.js')
-rw-r--r-- | browser/components/customizableui/test/browser_976792_insertNodeInWindow.js | 414 |
1 files changed, 0 insertions, 414 deletions
diff --git a/browser/components/customizableui/test/browser_976792_insertNodeInWindow.js b/browser/components/customizableui/test/browser_976792_insertNodeInWindow.js deleted file mode 100644 index 3bfa8c25d..000000000 --- a/browser/components/customizableui/test/browser_976792_insertNodeInWindow.js +++ /dev/null @@ -1,414 +0,0 @@ -/* 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 kToolbarName = "test-insertNodeInWindow-placements-toolbar"; -const kTestWidgetPrefix = "test-widget-for-insertNodeInWindow-placements-"; - - -/* -Tries to replicate the situation of having a placement list like this: - -exists-1,trying-to-insert-this,doesn't-exist,exists-2 -*/ -add_task(function*() { - let testWidgetExists = [true, false, false, true]; - let widgetIds = []; - for (let i = 0; i < testWidgetExists.length; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - if (testWidgetExists[i]) { - let spec = {id: id, type: "button", removable: true, label: "test", tooltiptext: "" + i}; - CustomizableUI.createWidget(spec); - } - } - - let toolbarNode = createToolbarWithPlacements(kToolbarName, widgetIds); - assertAreaPlacements(kToolbarName, widgetIds); - - let btnId = kTestWidgetPrefix + 1; - let btn = createDummyXULButton(btnId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(btnId, window); - - is(btn.parentNode.id, kToolbarName, "New XUL widget should be placed inside new toolbar"); - - is(btn.previousSibling.id, toolbarNode.firstChild.id, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - btn.remove(); - removeCustomToolbars(); - yield resetCustomization(); -}); - - -/* -Tests nodes get placed inside the toolbar's overflow as expected. Replicates a -situation similar to: - -exists-1,exists-2,overflow-1,trying-to-insert-this,overflow-2 -*/ -add_task(function*() { - let navbar = document.getElementById(CustomizableUI.AREA_NAVBAR); - - let widgetIds = []; - for (let i = 0; i < 5; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - let spec = {id: id, type: "button", removable: true, label: "insertNodeInWindow test", tooltiptext: "" + i}; - CustomizableUI.createWidget(spec); - CustomizableUI.addWidgetToArea(id, "nav-bar"); - } - - for (let id of widgetIds) { - document.getElementById(id).style.minWidth = "200px"; - } - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => navbar.hasAttribute("overflowing")); - - let testWidgetId = kTestWidgetPrefix + 3; - - CustomizableUI.destroyWidget(testWidgetId); - - let btn = createDummyXULButton(testWidgetId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(testWidgetId, window); - - is(btn.parentNode.id, navbar.overflowable._list.id, "New XUL widget should be placed inside overflow of toolbar"); - is(btn.previousSibling.id, kTestWidgetPrefix + 2, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - is(btn.nextSibling.id, kTestWidgetPrefix + 4, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - CustomizableUI.removeWidgetFromArea(btn.id, kToolbarName); - btn.remove(); - yield resetCustomization(); - yield waitForCondition(() => !navbar.hasAttribute("overflowing")); -}); - - -/* -Tests nodes get placed inside the toolbar's overflow as expected. Replicates a -placements situation similar to: - -exists-1,exists-2,overflow-1,doesn't-exist,trying-to-insert-this,overflow-2 -*/ -add_task(function*() { - let navbar = document.getElementById(CustomizableUI.AREA_NAVBAR); - - let widgetIds = []; - for (let i = 0; i < 5; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - let spec = {id: id, type: "button", removable: true, label: "insertNodeInWindow test", tooltiptext: "" + i}; - CustomizableUI.createWidget(spec); - CustomizableUI.addWidgetToArea(id, "nav-bar"); - } - - for (let id of widgetIds) { - document.getElementById(id).style.minWidth = "200px"; - } - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => navbar.hasAttribute("overflowing")); - - let testWidgetId = kTestWidgetPrefix + 3; - - CustomizableUI.destroyWidget(kTestWidgetPrefix + 2); - CustomizableUI.destroyWidget(testWidgetId); - - let btn = createDummyXULButton(testWidgetId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(testWidgetId, window); - - is(btn.parentNode.id, navbar.overflowable._list.id, "New XUL widget should be placed inside overflow of toolbar"); - is(btn.previousSibling.id, kTestWidgetPrefix + 1, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - is(btn.nextSibling.id, kTestWidgetPrefix + 4, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - CustomizableUI.removeWidgetFromArea(btn.id, kToolbarName); - btn.remove(); - yield resetCustomization(); - yield waitForCondition(() => !navbar.hasAttribute("overflowing")); -}); - - -/* -Tests nodes get placed inside the toolbar's overflow as expected. Replicates a -placements situation similar to: - -exists-1,exists-2,overflow-1,doesn't-exist,trying-to-insert-this,doesn't-exist -*/ -add_task(function*() { - let navbar = document.getElementById(CustomizableUI.AREA_NAVBAR); - - let widgetIds = []; - for (let i = 0; i < 5; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - let spec = {id: id, type: "button", removable: true, label: "insertNodeInWindow test", tooltiptext: "" + i}; - CustomizableUI.createWidget(spec); - CustomizableUI.addWidgetToArea(id, "nav-bar"); - } - - for (let id of widgetIds) { - document.getElementById(id).style.minWidth = "200px"; - } - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => navbar.hasAttribute("overflowing")); - - let testWidgetId = kTestWidgetPrefix + 3; - - CustomizableUI.destroyWidget(kTestWidgetPrefix + 2); - CustomizableUI.destroyWidget(testWidgetId); - CustomizableUI.destroyWidget(kTestWidgetPrefix + 4); - - let btn = createDummyXULButton(testWidgetId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(testWidgetId, window); - - is(btn.parentNode.id, navbar.overflowable._list.id, "New XUL widget should be placed inside overflow of toolbar"); - is(btn.previousSibling.id, kTestWidgetPrefix + 1, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - is(btn.nextSibling, null, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - CustomizableUI.removeWidgetFromArea(btn.id, kToolbarName); - btn.remove(); - yield resetCustomization(); - yield waitForCondition(() => !navbar.hasAttribute("overflowing")); -}); - - -/* -Tests nodes get placed inside the toolbar's overflow as expected. Replicates a -placements situation similar to: - -exists-1,exists-2,overflow-1,can't-overflow,trying-to-insert-this,overflow-2 -*/ -add_task(function*() { - let navbar = document.getElementById(CustomizableUI.AREA_NAVBAR); - - let widgetIds = []; - for (let i = 5; i >= 0; i--) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - let spec = {id: id, type: "button", removable: true, label: "insertNodeInWindow test", tooltiptext: "" + i}; - CustomizableUI.createWidget(spec); - CustomizableUI.addWidgetToArea(id, "nav-bar", 0); - } - - for (let i = 10; i < 15; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - let spec = {id: id, type: "button", removable: true, label: "insertNodeInWindow test", tooltiptext: "" + i}; - CustomizableUI.createWidget(spec); - CustomizableUI.addWidgetToArea(id, "nav-bar"); - } - - for (let id of widgetIds) { - document.getElementById(id).style.minWidth = "200px"; - } - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => navbar.hasAttribute("overflowing")); - - // Find last widget that doesn't allow overflowing - let nonOverflowing = navbar.customizationTarget.lastChild; - is(nonOverflowing.getAttribute("overflows"), "false", "Last child is expected to not allow overflowing"); - isnot(nonOverflowing.getAttribute("skipintoolbarset"), "true", "Last child is expected to not be skipintoolbarset"); - - let testWidgetId = kTestWidgetPrefix + 10; - CustomizableUI.destroyWidget(testWidgetId); - - let btn = createDummyXULButton(testWidgetId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(testWidgetId, window); - - is(btn.parentNode.id, navbar.overflowable._list.id, "New XUL widget should be placed inside overflow of toolbar"); - is(btn.nextSibling.id, kTestWidgetPrefix + 11, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - CustomizableUI.removeWidgetFromArea(btn.id, kToolbarName); - btn.remove(); - yield resetCustomization(); - yield waitForCondition(() => !navbar.hasAttribute("overflowing")); -}); - - -/* -Tests nodes get placed inside the toolbar's overflow as expected. Replicates a -placements situation similar to: - -exists-1,exists-2,overflow-1,trying-to-insert-this,can't-overflow,overflow-2 -*/ -add_task(function*() { - let widgetIds = []; - let missingId = 2; - let nonOverflowableId = 3; - for (let i = 0; i < 5; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - if (i != missingId) { - // Setting min-width to make the overflow state not depend on styling of the button and/or - // screen width - let spec = {id: id, type: "button", removable: true, label: "test", tooltiptext: "" + i, - onCreated: function(node) { - node.style.minWidth = "200px"; - if (id == (kTestWidgetPrefix + nonOverflowableId)) { - node.setAttribute("overflows", false); - } - }}; - info("Creating: " + id); - CustomizableUI.createWidget(spec); - } - } - - let toolbarNode = createOverflowableToolbarWithPlacements(kToolbarName, widgetIds); - assertAreaPlacements(kToolbarName, widgetIds); - ok(!toolbarNode.hasAttribute("overflowing"), "Toolbar shouldn't overflow to start with."); - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => toolbarNode.hasAttribute("overflowing")); - ok(toolbarNode.hasAttribute("overflowing"), "Should have an overflowing toolbar."); - - let btnId = kTestWidgetPrefix + missingId; - let btn = createDummyXULButton(btnId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(btnId, window); - - is(btn.parentNode.id, kToolbarName + "-overflow-list", "New XUL widget should be placed inside new toolbar's overflow"); - is(btn.previousSibling.id, kTestWidgetPrefix + 1, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - is(btn.nextSibling.id, kTestWidgetPrefix + 4, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - yield waitForCondition(() => !toolbarNode.hasAttribute("overflowing")); - - btn.remove(); - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - removeCustomToolbars(); - yield resetCustomization(); -}); - - -/* -Tests nodes do *not* get placed in the toolbar's overflow. Replicates a -plcements situation similar to: - -exists-1,trying-to-insert-this,exists-2,overflowed-1 -*/ -add_task(function*() { - let widgetIds = []; - let missingId = 1; - for (let i = 0; i < 5; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - if (i != missingId) { - // Setting min-width to make the overflow state not depend on styling of the button and/or - // screen width - let spec = {id: id, type: "button", removable: true, label: "test", tooltiptext: "" + i, - onCreated: function(node) { node.style.minWidth = "100px"; }}; - info("Creating: " + id); - CustomizableUI.createWidget(spec); - } - } - - let toolbarNode = createOverflowableToolbarWithPlacements(kToolbarName, widgetIds); - assertAreaPlacements(kToolbarName, widgetIds); - ok(!toolbarNode.hasAttribute("overflowing"), "Toolbar shouldn't overflow to start with."); - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => toolbarNode.hasAttribute("overflowing")); - ok(toolbarNode.hasAttribute("overflowing"), "Should have an overflowing toolbar."); - - let btnId = kTestWidgetPrefix + missingId; - let btn = createDummyXULButton(btnId, "test"); - CustomizableUI.ensureWidgetPlacedInWindow(btnId, window); - - is(btn.parentNode.id, kToolbarName + "-target", "New XUL widget should be placed inside new toolbar"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - yield waitForCondition(() => !toolbarNode.hasAttribute("overflowing")); - - btn.remove(); - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - removeCustomToolbars(); - yield resetCustomization(); -}); - - -/* -Tests inserting a node onto the end of an overflowing toolbar *doesn't* put it in -the overflow list when the widget disallows overflowing. ie: - -exists-1,exists-2,overflows-1,trying-to-insert-this - -Where trying-to-insert-this has overflows=false -*/ -add_task(function*() { - let widgetIds = []; - let missingId = 3; - for (let i = 0; i < 5; i++) { - let id = kTestWidgetPrefix + i; - widgetIds.push(id); - if (i != missingId) { - // Setting min-width to make the overflow state not depend on styling of the button and/or - // screen width - let spec = {id: id, type: "button", removable: true, label: "test", tooltiptext: "" + i, - onCreated: function(node) { node.style.minWidth = "200px"; }}; - info("Creating: " + id); - CustomizableUI.createWidget(spec); - } - } - - let toolbarNode = createOverflowableToolbarWithPlacements(kToolbarName, widgetIds); - assertAreaPlacements(kToolbarName, widgetIds); - ok(!toolbarNode.hasAttribute("overflowing"), "Toolbar shouldn't overflow to start with."); - - let originalWindowWidth = window.outerWidth; - window.resizeTo(400, window.outerHeight); - yield waitForCondition(() => toolbarNode.hasAttribute("overflowing")); - ok(toolbarNode.hasAttribute("overflowing"), "Should have an overflowing toolbar."); - - let btnId = kTestWidgetPrefix + missingId; - let btn = createDummyXULButton(btnId, "test"); - btn.setAttribute("overflows", false); - CustomizableUI.ensureWidgetPlacedInWindow(btnId, window); - - is(btn.parentNode.id, kToolbarName + "-target", "New XUL widget should be placed inside new toolbar"); - is(btn.nextSibling, null, - "insertNodeInWindow should have placed new XUL widget in correct place in DOM according to placements"); - - window.resizeTo(originalWindowWidth, window.outerHeight); - yield waitForCondition(() => !toolbarNode.hasAttribute("overflowing")); - - btn.remove(); - widgetIds.forEach(id => CustomizableUI.destroyWidget(id)); - removeCustomToolbars(); - yield resetCustomization(); -}); - - -add_task(function* asyncCleanUp() { - yield resetCustomization(); -}); |