gecko/browser/metro/base/tests/mochitest/browser_findbar.js

133 lines
5.0 KiB
JavaScript
Raw Normal View History

/* vim: set ts=2 et sw=2 tw=80: */
/* 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";
function test() {
runTests();
}
gTests.push({
desc: "Access the find bar with the keyboard",
run: function() {
let tab = yield addTab(chromeRoot + "browser_findbar.html");
yield waitForCondition(() => BrowserUI.ready);
is(Elements.findbar.isShowing, false, "Find bar is hidden by default");
EventUtils.synthesizeKey("f", { accelKey: true });
yield waitForEvent(Elements.findbar, "transitionend");
is(Elements.findbar.isShowing, true, "Show find bar with Ctrl-F");
let textbox = document.getElementById("findbar-textbox");
is(textbox.value, "", "Find bar is empty");
EventUtils.sendString("bar");
is(textbox.value, "bar", "Type 'bar' into find bar");
EventUtils.synthesizeKey("f", { accelKey: true});
yield waitForEvent(Elements.findbar, "transitionend");
ok(document.commandDispatcher.focusedElement, textbox.inputField, "textbox field is focused with Ctrl-F");
is(textbox.selectionStart, 0, "textbox field is selected with Ctrl-F.");
is(textbox.selectionEnd, textbox.value.length, "textbox field is selected with Ctrl-F.");
EventUtils.synthesizeKey("VK_ESCAPE", { accelKey: true });
yield waitForEvent(Elements.findbar, "transitionend");
is(Elements.findbar.isShowing, false, "Hide find bar with Esc");
Browser.closeTab(tab);
}
});
gTests.push({
desc: "Findbar/navbar interaction",
run: function() {
let tab = yield addTab(chromeRoot + "browser_findbar.html");
yield waitForCondition(() => BrowserUI.ready);
is(ContextUI.navbarVisible, false, "Navbar is hidden by default");
is(Elements.findbar.isShowing, false, "Find bar is hidden by default");
yield showNavBar();
is(ContextUI.navbarVisible, true, "Navbar is visible");
is(Elements.findbar.isShowing, false, "Find bar is still hidden");
EventUtils.synthesizeKey("f", { accelKey: true });
yield Promise.all(waitForEvent(Elements.navbar, "transitionend"),
waitForEvent(Elements.findbar, "transitionend"));
is(ContextUI.navbarVisible, false, "Navbar is hidden");
is(Elements.findbar.isShowing, true, "Findbar is visible");
yield Promise.all(showNavBar(),
waitForEvent(Elements.findbar, "transitionend"));
is(ContextUI.navbarVisible, true, "Navbar is visible again");
is(Elements.findbar.isShowing, false, "Find bar is hidden again");
Browser.closeTab(tab);
}
});
gTests.push({
desc: "Show and hide the find bar with mouse",
run: function() {
let tab = yield addTab(chromeRoot + "browser_findbar.html");
yield waitForCondition(() => BrowserUI.ready);
is(Elements.findbar.isShowing, false, "Find bar is hidden by default");
yield showNavBar();
EventUtils.sendMouseEvent({ type: "click" }, "menu-button");
EventUtils.sendMouseEvent({ type: "click" }, "context-findinpage");
yield waitForEvent(Elements.findbar, "transitionend");
is(Elements.findbar.isShowing, true, "Show find bar with menu item");
EventUtils.synthesizeMouse(document.getElementById("findbar-close-button"), 1, 1, {});
yield waitForEvent(Elements.findbar, "transitionend");
is(Elements.findbar.isShowing, false, "Hide find bar with close button");
Browser.closeTab(tab);
}
});
gTests.push({
desc: "Text at bottom of screen is not obscured by findbar",
run: function() {
let textbox = document.getElementById("findbar-textbox");
let tab = yield addTab(chromeRoot + "browser_findbar.html");
yield waitForCondition(() => BrowserUI.ready);
is(Elements.findbar.isShowing, false, "Find bar is hidden by default");
FindHelperUI.show();
yield waitForCondition(() => FindHelperUI.isActive);
EventUtils.sendString("bottom");
let event = yield waitForEvent(window, "MozDeckOffsetChanged");
ok(!(event instanceof Error), "MozDeckOffsetChanged received (1)");
ok(event.detail > 0, "Browser deck shifted upward");
textbox.select();
EventUtils.sendString("bar");
event = yield waitForEvent(window, "MozDeckOffsetChanged");
ok(!(event instanceof Error), "MozDeckOffsetChanged received (2)");
is(event.detail, 0, "Browser deck shifted back to normal");
textbox.select();
EventUtils.sendString("bottom");
event = yield waitForEvent(window, "MozDeckOffsetChanged");
ok(!(event instanceof Error), "MozDeckOffsetChanged received (3)");
ok(event.detail > 0, "Browser deck shifted upward again");
let waitForDeckOffset = waitForEvent(window, "MozDeckOffsetChanged");
let waitForTransitionEnd = waitForEvent(Elements.findbar, "transitionend");
FindHelperUI.hide();
event = yield waitForDeckOffset;
ok(!(event instanceof Error), "MozDeckOffsetChanged received (4)");
is(event.detail, 0, "Browser deck shifted back to normal when findbar hides");
// Cleanup.
yield waitForTransitionEnd;
Browser.closeTab(tab);
}
});