browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_popup.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_popup.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,95 @@
     1.4 +/* vim:set ts=2 sw=2 sts=2 et: */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.8 +
     1.9 +const TEST_URI = "data:text/html;charset=utf-8,<p>bug 585991 - autocomplete popup test";
    1.10 +
    1.11 +function test() {
    1.12 +  addTab(TEST_URI);
    1.13 +  browser.addEventListener("load", function onLoad() {
    1.14 +    browser.removeEventListener("load", onLoad, true);
    1.15 +    openConsole(null, consoleOpened);
    1.16 +  }, true);
    1.17 +}
    1.18 +
    1.19 +function consoleOpened(HUD) {
    1.20 +  let items = [
    1.21 +    {label: "item0", value: "value0"},
    1.22 +    {label: "item1", value: "value1"},
    1.23 +    {label: "item2", value: "value2"},
    1.24 +  ];
    1.25 +
    1.26 +  let popup = HUD.jsterm.autocompletePopup;
    1.27 +
    1.28 +  ok(!popup.isOpen, "popup is not open");
    1.29 +
    1.30 +  popup._panel.addEventListener("popupshown", function() {
    1.31 +    popup._panel.removeEventListener("popupshown", arguments.callee, false);
    1.32 +
    1.33 +    ok(popup.isOpen, "popup is open");
    1.34 +
    1.35 +    is(popup.itemCount, 0, "no items");
    1.36 +
    1.37 +    popup.setItems(items);
    1.38 +
    1.39 +    is(popup.itemCount, items.length, "items added");
    1.40 +
    1.41 +    let sameItems = popup.getItems();
    1.42 +    is(sameItems.every(function(aItem, aIndex) {
    1.43 +      return aItem === items[aIndex];
    1.44 +    }), true, "getItems returns back the same items");
    1.45 +
    1.46 +    is(popup.selectedIndex, 2,
    1.47 +       "Index of the first item from bottom is selected.");
    1.48 +    is(popup.selectedItem, items[2], "First item from bottom is selected");
    1.49 +
    1.50 +    popup.selectedIndex = 1;
    1.51 +
    1.52 +    is(popup.selectedIndex, 1, "index 1 is selected");
    1.53 +    is(popup.selectedItem, items[1], "item1 is selected");
    1.54 +
    1.55 +    popup.selectedItem = items[2];
    1.56 +
    1.57 +    is(popup.selectedIndex, 2, "index 2 is selected");
    1.58 +    is(popup.selectedItem, items[2], "item2 is selected");
    1.59 +
    1.60 +    is(popup.selectPreviousItem(), items[1], "selectPreviousItem() works");
    1.61 +
    1.62 +    is(popup.selectedIndex, 1, "index 1 is selected");
    1.63 +    is(popup.selectedItem, items[1], "item1 is selected");
    1.64 +
    1.65 +    is(popup.selectNextItem(), items[2], "selectPreviousItem() works");
    1.66 +
    1.67 +    is(popup.selectedIndex, 2, "index 2 is selected");
    1.68 +    is(popup.selectedItem, items[2], "item2 is selected");
    1.69 +
    1.70 +    ok(popup.selectNextItem(), "selectPreviousItem() works");
    1.71 +
    1.72 +    is(popup.selectedIndex, 0, "index 0 is selected");
    1.73 +    is(popup.selectedItem, items[0], "item0 is selected");
    1.74 +
    1.75 +    items.push({label: "label3", value: "value3"});
    1.76 +    popup.appendItem(items[3]);
    1.77 +
    1.78 +    is(popup.itemCount, items.length, "item3 appended");
    1.79 +
    1.80 +    popup.selectedIndex = 3;
    1.81 +    is(popup.selectedItem, items[3], "item3 is selected");
    1.82 +
    1.83 +    popup.removeItem(items[2]);
    1.84 +
    1.85 +    is(popup.selectedIndex, 2, "index2 is selected");
    1.86 +    is(popup.selectedItem, items[3], "item3 is still selected");
    1.87 +    is(popup.itemCount, items.length - 1, "item2 removed");
    1.88 +
    1.89 +    popup.clearItems();
    1.90 +    is(popup.itemCount, 0, "items cleared");
    1.91 +
    1.92 +    popup.hidePopup();
    1.93 +    finishTest();
    1.94 +  }, false);
    1.95 +
    1.96 +  popup.openPopup();
    1.97 +}
    1.98 +

mercurial