summaryrefslogtreecommitdiffstats
path: root/browser/components/places/tests/browser/browser_sidebar_on_customization.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/places/tests/browser/browser_sidebar_on_customization.js')
-rw-r--r--browser/components/places/tests/browser/browser_sidebar_on_customization.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/browser/components/places/tests/browser/browser_sidebar_on_customization.js b/browser/components/places/tests/browser/browser_sidebar_on_customization.js
new file mode 100644
index 0000000000..6e97f81dd3
--- /dev/null
+++ b/browser/components/places/tests/browser/browser_sidebar_on_customization.js
@@ -0,0 +1,100 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+var gInsertedBookmarks;
+add_setup(async function () {
+ gInsertedBookmarks = await PlacesUtils.bookmarks.insertTree({
+ guid: PlacesUtils.bookmarks.unfiledGuid,
+ children: [
+ {
+ title: "bm1",
+ url: "about:buildconfig",
+ },
+ {
+ type: PlacesUtils.bookmarks.TYPE_FOLDER,
+ title: "folder",
+ children: [
+ {
+ title: "bm2",
+ url: "about:mozilla",
+ },
+ ],
+ },
+ ],
+ });
+ registerCleanupFunction(PlacesUtils.bookmarks.eraseEverything);
+});
+
+add_task(async function test_open_sidebar_and_customize() {
+ await withSidebarTree("bookmarks", async tree => {
+ async function checkTreeIsFunctional() {
+ Assert.ok(SidebarUI.isOpen, "Sidebar is open");
+ Assert.ok(
+ BrowserTestUtils.isVisible(SidebarUI.browser),
+ "sidebar browser is visible"
+ );
+ Assert.ok(tree.view.result, "View result is defined");
+ await TestUtils.waitForCondition(
+ () => tree.view.result.root.containerOpen,
+ "View root node should be reopened"
+ );
+ toggleFolder(tree, gInsertedBookmarks[1].guid);
+ }
+
+ await checkTreeIsFunctional();
+
+ info("Starting customization");
+ await promiseCustomizeStart();
+
+ Assert.ok(
+ !BrowserTestUtils.isVisible(SidebarUI.browser),
+ "sidebar browser is hidden"
+ );
+ Assert.ok(tree.view.result, "View result is defined");
+ Assert.ok(!tree.view.result.root.containerOpen, "View root node is closed");
+
+ info("Ending customization");
+ await promiseCustomizeEnd();
+
+ await checkTreeIsFunctional();
+ });
+});
+
+function promiseCustomizeStart(win = window) {
+ return new Promise(resolve => {
+ win.gNavToolbox.addEventListener("customizationready", resolve, {
+ once: true,
+ });
+ win.gCustomizeMode.enter();
+ });
+}
+
+function promiseCustomizeEnd(win = window) {
+ return new Promise(resolve => {
+ win.gNavToolbox.addEventListener("aftercustomization", resolve, {
+ once: true,
+ });
+ win.gCustomizeMode.exit();
+ });
+}
+
+function toggleFolder(tree, guid) {
+ tree.selectItems([guid]);
+ Assert.equal(tree.selectedNode.title, "folder");
+ Assert.ok(
+ !PlacesUtils.asContainer(tree.selectedNode).containerOpen,
+ "Folder is closed"
+ );
+ synthesizeClickOnSelectedTreeCell(tree);
+ Assert.ok(
+ PlacesUtils.asContainer(tree.selectedNode).containerOpen,
+ "Folder is open"
+ );
+ synthesizeClickOnSelectedTreeCell(tree);
+ Assert.ok(
+ !PlacesUtils.asContainer(tree.selectedNode).containerOpen,
+ "Folder is closed"
+ );
+}