|
Packit |
f0b94e |
/* vim: set ts=2 et sw=2 tw=80: */
|
|
Packit |
f0b94e |
/* Any copyright is dedicated to the Public Domain.
|
|
Packit |
f0b94e |
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
"use strict";
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
const {InspectorFront} = require("devtools/shared/fronts/inspector");
|
|
Packit |
f0b94e |
const TEST_URI = "data:text/html;charset=UTF-8,<html><body><bar></bar>" +
|
|
Packit |
f0b94e |
"<body></html>";
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
add_task(function* () {
|
|
Packit |
f0b94e |
yield addTab(TEST_URI);
|
|
Packit |
f0b94e |
yield runTests();
|
|
Packit |
f0b94e |
});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function* runTests() {
|
|
Packit |
f0b94e |
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
|
Packit |
f0b94e |
yield target.makeRemote();
|
|
Packit |
f0b94e |
let inspector = InspectorFront(target.client, target.form);
|
|
Packit |
f0b94e |
let walker = yield inspector.getWalker();
|
|
Packit |
f0b94e |
let {ed, win, edWin} = yield setup(null, {
|
|
Packit |
f0b94e |
autocomplete: true,
|
|
Packit |
f0b94e |
mode: Editor.modes.css,
|
|
Packit |
f0b94e |
autocompleteOpts: {walker: walker, cssProperties: getClientCssProperties()}
|
|
Packit |
f0b94e |
});
|
|
Packit |
f0b94e |
yield testMouse(ed, edWin);
|
|
Packit |
f0b94e |
yield testKeyboard(ed, edWin);
|
|
Packit |
f0b94e |
yield testKeyboardCycle(ed, edWin);
|
|
Packit |
f0b94e |
yield testKeyboardCycleForPrefixedString(ed, edWin);
|
|
Packit |
f0b94e |
yield testKeyboardCSSComma(ed, edWin);
|
|
Packit |
f0b94e |
teardown(ed, win);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function* testKeyboard(ed, win) {
|
|
Packit |
f0b94e |
ed.focus();
|
|
Packit |
f0b94e |
ed.setText("b");
|
|
Packit |
f0b94e |
ed.setCursor({line: 1, ch: 1});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let popupOpened = ed.getAutocompletionPopup().once("popup-opened");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let autocompleteKey =
|
|
Packit |
f0b94e |
Editor.keyFor("autocompletion", { noaccel: true }).toUpperCase();
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_" + autocompleteKey, { ctrlKey: true }, win);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
info("Waiting for popup to be opened");
|
|
Packit |
f0b94e |
yield popupOpened;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_RETURN", { }, win);
|
|
Packit |
f0b94e |
is(ed.getText(), "bar", "Editor text has been updated");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function* testKeyboardCycle(ed, win) {
|
|
Packit |
f0b94e |
ed.focus();
|
|
Packit |
f0b94e |
ed.setText("b");
|
|
Packit |
f0b94e |
ed.setCursor({line: 1, ch: 1});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let popupOpened = ed.getAutocompletionPopup().once("popup-opened");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let autocompleteKey =
|
|
Packit |
f0b94e |
Editor.keyFor("autocompletion", { noaccel: true }).toUpperCase();
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_" + autocompleteKey, { ctrlKey: true }, win);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
info("Waiting for popup to be opened");
|
|
Packit |
f0b94e |
yield popupOpened;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_DOWN", { }, win);
|
|
Packit |
f0b94e |
is(ed.getText(), "bar", "Editor text has been updated");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_DOWN", { }, win);
|
|
Packit |
f0b94e |
is(ed.getText(), "body", "Editor text has been updated");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_DOWN", { }, win);
|
|
Packit |
f0b94e |
is(ed.getText(), "#baz", "Editor text has been updated");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function* testKeyboardCycleForPrefixedString(ed, win) {
|
|
Packit |
f0b94e |
ed.focus();
|
|
Packit |
f0b94e |
ed.setText("#b");
|
|
Packit |
f0b94e |
ed.setCursor({line: 1, ch: 2});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let popupOpened = ed.getAutocompletionPopup().once("popup-opened");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let autocompleteKey =
|
|
Packit |
f0b94e |
Editor.keyFor("autocompletion", { noaccel: true }).toUpperCase();
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_" + autocompleteKey, { ctrlKey: true }, win);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
info("Waiting for popup to be opened");
|
|
Packit |
f0b94e |
yield popupOpened;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_DOWN", { }, win);
|
|
Packit |
f0b94e |
is(ed.getText(), "#baz", "Editor text has been updated");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function* testKeyboardCSSComma(ed, win) {
|
|
Packit |
f0b94e |
ed.focus();
|
|
Packit |
f0b94e |
ed.setText("b");
|
|
Packit |
f0b94e |
ed.setCursor({line: 1, ch: 1});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let isPopupOpened = false;
|
|
Packit |
f0b94e |
let popupOpened = ed.getAutocompletionPopup().once("popup-opened");
|
|
Packit |
f0b94e |
popupOpened.then(() => {
|
|
Packit |
f0b94e |
isPopupOpened = true;
|
|
Packit |
f0b94e |
});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey(",", { }, win);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
yield wait(500);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(!isPopupOpened, "Autocompletion shouldn't be opened");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function* testMouse(ed, win) {
|
|
Packit |
f0b94e |
ed.focus();
|
|
Packit |
f0b94e |
ed.setText("b");
|
|
Packit |
f0b94e |
ed.setCursor({line: 1, ch: 1});
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let popupOpened = ed.getAutocompletionPopup().once("popup-opened");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
let autocompleteKey =
|
|
Packit |
f0b94e |
Editor.keyFor("autocompletion", { noaccel: true }).toUpperCase();
|
|
Packit |
f0b94e |
EventUtils.synthesizeKey("VK_" + autocompleteKey, { ctrlKey: true }, win);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
info("Waiting for popup to be opened");
|
|
Packit |
f0b94e |
yield popupOpened;
|
|
Packit |
f0b94e |
ed.getAutocompletionPopup()._list.children[2].click();
|
|
Packit |
f0b94e |
is(ed.getText(), "#baz", "Editor text has been updated");
|
|
Packit |
f0b94e |
}
|