browser/metro/base/tests/mochitest/browser_bookmarks.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 // -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*-
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 "use strict";
     8 let gStartView = null;
    10 function test() {
    11   runTests();
    12 }
    14 function setup() {
    15   PanelUI.hide();
    17   if (!BrowserUI.isStartTabVisible) {
    18     let tab = yield addTab("about:start");
    19     gStartView = tab.browser.contentWindow.BookmarksStartView._view;
    21     yield waitForCondition(() => BrowserUI.isStartTabVisible);
    23     yield hideContextUI();
    24   }
    26   BookmarksTestHelper.setup();
    27 }
    29 function tearDown() {
    30   PanelUI.hide();
    31   BookmarksTestHelper.restore();
    32 }
    34 gTests.push({
    35   desc: "Test bookmarks StartUI hide",
    36   setUp: setup,
    37   tearDown: tearDown,
    38   run: function testBookmarksStartHide() {
    39     let hideButton = document.getElementById("hide-selected-button");
    41     // --------- hide item 2
    43     let item = gStartView._getItemForBookmarkId(2);
    45     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
    46     sendContextMenuClickToElement(window, item, 10, 10);
    47     yield promise;
    49     ok(!hideButton.hidden, "Hide button is visible.");
    51     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
    52     hideButton.click();
    53     yield promise;
    55     item = gStartView._getItemForBookmarkId(2);
    57     ok(!item, "Item not in grid");
    58     ok(!gStartView._pinHelper.isPinned(2), "Item hidden");
    59     ok(gStartView._set.itemCount === gStartView.maxTiles, "Grid repopulated");
    61     // --------- hide multiple items
    63     let item1 = gStartView._getItemForBookmarkId(0);
    64     let item2 = gStartView._getItemForBookmarkId(5);
    65     let item3 = gStartView._getItemForBookmarkId(12);
    67     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
    68     sendContextMenuClickToElement(window, item1, 10, 10);
    69     sendContextMenuClickToElement(window, item2, 10, 10);
    70     sendContextMenuClickToElement(window, item3, 10, 10);
    71     yield promise;
    73     ok(!hideButton.hidden, "Hide button is visible.");
    75     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
    76     EventUtils.synthesizeMouse(hideButton, 10, 10, {}, window);
    77     yield promise;
    79     item1 = gStartView._getItemForBookmarkId(0);
    80     item2 = gStartView._getItemForBookmarkId(5);
    81     item3 = gStartView._getItemForBookmarkId(12);
    83     ok(!item1 && !item2 && !item3, "Items are not in grid");
    84     ok(!gStartView._pinHelper.isPinned(0) && !gStartView._pinHelper.isPinned(5) && !gStartView._pinHelper.isPinned(12) , "Items hidden");
    85     ok(gStartView._set.itemCount === gStartView.maxTiles - 1, "Grid repopulated");
    86   }
    87 });
    89 gTests.push({
    90   desc: "Test bookmarks StartUI delete",
    91   setUp: setup,
    92   tearDown: tearDown,
    93   run: function testBookmarksStartDelete() {
    94     let restoreButton = document.getElementById("restore-selected-button");
    95     let deleteButton = document.getElementById("delete-selected-button");
    97     // --------- delete item 2 and restore
    99     let item = gStartView._getItemForBookmarkId(2);
   100     let initialLocation = gStartView._set.getIndexOfItem(item);
   102     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   103     sendContextMenuClickToElement(window, item, 10, 10);
   104     yield promise;
   106     ok(!deleteButton.hidden, "Delete button is visible.");
   108     let promise = waitForCondition(() => !restoreButton.hidden);
   109     EventUtils.synthesizeMouse(deleteButton, 10, 10, {}, window);
   110     yield promise;
   112     item = gStartView._getItemForBookmarkId(2);
   114     ok(!item, "Item not in grid");
   115     ok(BookmarksTestHelper._nodes[2], "Item not deleted yet");
   116     ok(!restoreButton.hidden, "Restore button is visible.");
   117     ok(gStartView._set.itemCount === gStartView.maxTiles, "Grid repopulated");
   119     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   120     EventUtils.synthesizeMouse(restoreButton, 10, 10, {}, window);
   121     yield promise;
   123     item = gStartView._getItemForBookmarkId(2);
   124     ok(item, "Item back in grid");
   125     ok(gStartView._set.getIndexOfItem(item) === initialLocation, "Back in same position.");
   127     // --------- delete item 2 for realz
   129     let item = gStartView._getItemForBookmarkId(2);
   131     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   132     sendContextMenuClickToElement(window, item, 10, 10);
   133     yield promise;
   135     ok(!deleteButton.hidden, "Delete button is visible.");
   137     let promise = waitForCondition(() => !restoreButton.hidden);
   138     EventUtils.synthesizeMouse(deleteButton, 10, 10, {}, window);
   139     yield promise;
   141     item = gStartView._getItemForBookmarkId(2);
   143     ok(!item, "Item not in grid");
   144     ok(BookmarksTestHelper._nodes[2], "Item not deleted yet");
   145     ok(!restoreButton.hidden, "Restore button is visible.");
   147     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   148     Elements.contextappbar.dismiss();
   149     yield promise;
   151     item = gStartView._getItemForBookmarkId(2);
   153     ok(!item, "Item not in grid");
   154     ok(!BookmarksTestHelper._nodes[2], "Item RIP");
   155     ok(gStartView._set.itemCount === gStartView.maxTiles, "Grid repopulated");
   157     // --------- delete multiple items and restore
   159     let item1 = gStartView._getItemForBookmarkId(0);
   160     let item2 = gStartView._getItemForBookmarkId(5);
   161     let item3 = gStartView._getItemForBookmarkId(12);
   163     let initialLocation1 = gStartView._set.getIndexOfItem(item1);
   164     let initialLocation2 = gStartView._set.getIndexOfItem(item2);
   165     let initialLocation3 = gStartView._set.getIndexOfItem(item3);
   167     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   168     sendContextMenuClickToElement(window, item1, 10, 10);
   169     sendContextMenuClickToElement(window, item2, 10, 10);
   170     sendContextMenuClickToElement(window, item3, 10, 10);
   171     yield promise;
   173     ok(!deleteButton.hidden, "Delete button is visible.");
   175     let promise = waitForCondition(() => !restoreButton.hidden);
   176     EventUtils.synthesizeMouse(deleteButton, 10, 10, {}, window);
   177     yield promise;
   179     item1 = gStartView._getItemForBookmarkId(0);
   180     item2 = gStartView._getItemForBookmarkId(5);
   181     item3 = gStartView._getItemForBookmarkId(12);
   183     ok(!item1 && !item2 && !item3, "Items are not in grid");
   184     ok(BookmarksTestHelper._nodes[0] && BookmarksTestHelper._nodes[5] && BookmarksTestHelper._nodes[12],
   185       "Items not deleted yet");
   186     ok(!restoreButton.hidden, "Restore button is visible.");
   187     ok(gStartView._set.itemCount === gStartView.maxTiles - 1, "Grid repopulated");
   189     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   190     EventUtils.synthesizeMouse(restoreButton, 10, 10, {}, window);
   191     yield promise;
   193     item1 = gStartView._getItemForBookmarkId(0);
   194     item2 = gStartView._getItemForBookmarkId(5);
   195     item3 = gStartView._getItemForBookmarkId(12);
   197     ok(item1 && item2 && item3, "Items are back in grid");
   198     ok(gStartView._set.getIndexOfItem(item1) === initialLocation1 &&
   199       gStartView._set.getIndexOfItem(item2) === initialLocation2 &&
   200       gStartView._set.getIndexOfItem(item3) === initialLocation3, "Items back in the same position.");
   201     ok(gStartView._set.itemCount === gStartView.maxTiles, "Grid repopulated");
   203     // --------- delete multiple items for good
   205     let item1 = gStartView._getItemForBookmarkId(0);
   206     let item2 = gStartView._getItemForBookmarkId(5);
   207     let item3 = gStartView._getItemForBookmarkId(12);
   209     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   210     sendContextMenuClickToElement(window, item1, 10, 10);
   211     sendContextMenuClickToElement(window, item2, 10, 10);
   212     sendContextMenuClickToElement(window, item3, 10, 10);
   213     yield promise;
   215     yield waitForCondition(() => !deleteButton.hidden);
   217     ok(!deleteButton.hidden, "Delete button is visible.");
   219     let promise = waitForCondition(() => !restoreButton.hidden);
   220     EventUtils.synthesizeMouse(deleteButton, 10, 10, {}, window);
   221     yield promise;
   223     item1 = gStartView._getItemForBookmarkId(0);
   224     item2 = gStartView._getItemForBookmarkId(5);
   225     item3 = gStartView._getItemForBookmarkId(12);
   227     ok(!item1 && !item2 && !item3, "Items are not in grid");
   228     ok(BookmarksTestHelper._nodes[0] && BookmarksTestHelper._nodes[5] && BookmarksTestHelper._nodes[12],
   229       "Items not deleted yet");
   230     ok(!restoreButton.hidden, "Restore button is visible.");
   232     let promise = waitForEvent(Elements.contextappbar, "transitionend", null, Elements.contextappbar);
   233     Elements.contextappbar.dismiss();
   234     yield promise;
   236     item1 = gStartView._getItemForBookmarkId(0);
   237     item2 = gStartView._getItemForBookmarkId(5);
   238     item3 = gStartView._getItemForBookmarkId(12);
   240     ok(!item1 && !item2 && !item3, "Items are not in grid");
   241     ok(!BookmarksTestHelper._nodes[0] && !BookmarksTestHelper._nodes[5] && !BookmarksTestHelper._nodes[12],
   242       "Items are gone");
   243     ok(gStartView._set.itemCount === gStartView.maxTiles - 1, "Grid repopulated");
   244   }
   245 });

mercurial