forked from mirrors/gecko-dev
198 lines
4.7 KiB
JavaScript
198 lines
4.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
let contextMenu;
|
|
|
|
const example_base =
|
|
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
|
|
"http://example.com/browser/browser/base/content/test/contextMenu/";
|
|
const MAIN_URL = example_base + "subtst_contextmenu_keyword.html";
|
|
|
|
add_task(async function test_setup() {
|
|
await BrowserTestUtils.openNewForegroundTab(gBrowser, MAIN_URL);
|
|
|
|
const chrome_base =
|
|
"chrome://mochitests/content/browser/browser/base/content/test/contextMenu/";
|
|
const contextmenu_common = chrome_base + "contextmenu_common.js";
|
|
/* import-globals-from contextmenu_common.js */
|
|
Services.scriptloader.loadSubScript(contextmenu_common, this);
|
|
});
|
|
|
|
add_task(async function test_text_input_spellcheck_noform() {
|
|
await test_contextmenu(
|
|
"#input_text_no_form",
|
|
[
|
|
"context-undo",
|
|
false,
|
|
"context-redo",
|
|
false,
|
|
"---",
|
|
null,
|
|
"context-cut",
|
|
null, // ignore the enabled/disabled states; there are race conditions
|
|
// in the edit commands but they're not relevant for what we're testing.
|
|
"context-copy",
|
|
null,
|
|
"context-paste",
|
|
null, // ignore clipboard state
|
|
"context-delete",
|
|
null,
|
|
"context-selectall",
|
|
null,
|
|
"---",
|
|
null,
|
|
"spell-check-enabled",
|
|
true,
|
|
"spell-dictionaries",
|
|
true,
|
|
[
|
|
"spell-check-dictionary-en-US",
|
|
true,
|
|
"---",
|
|
null,
|
|
"spell-add-dictionaries",
|
|
true,
|
|
],
|
|
null,
|
|
],
|
|
{
|
|
waitForSpellCheck: true,
|
|
async preCheckContextMenuFn() {
|
|
await SpecialPowers.spawn(
|
|
gBrowser.selectedBrowser,
|
|
[],
|
|
async function () {
|
|
let doc = content.document;
|
|
let input = doc.getElementById("input_text_no_form");
|
|
input.setAttribute("spellcheck", "true");
|
|
input.clientTop; // force layout flush
|
|
}
|
|
);
|
|
},
|
|
}
|
|
);
|
|
});
|
|
|
|
add_task(async function test_text_input_spellcheck_loginform() {
|
|
await test_contextmenu(
|
|
"#login_text",
|
|
[
|
|
"manage-saved-logins",
|
|
true,
|
|
"---",
|
|
null,
|
|
"context-undo",
|
|
false,
|
|
"context-redo",
|
|
false,
|
|
"---",
|
|
null,
|
|
"context-cut",
|
|
null, // ignore the enabled/disabled states; there are race conditions
|
|
// in the edit commands but they're not relevant for what we're testing.
|
|
"context-copy",
|
|
null,
|
|
"context-paste",
|
|
null, // ignore clipboard state
|
|
"context-delete",
|
|
null,
|
|
"context-selectall",
|
|
null,
|
|
"---",
|
|
null,
|
|
"spell-check-enabled",
|
|
true,
|
|
"spell-dictionaries",
|
|
true,
|
|
[
|
|
"spell-check-dictionary-en-US",
|
|
true,
|
|
"---",
|
|
null,
|
|
"spell-add-dictionaries",
|
|
true,
|
|
],
|
|
null,
|
|
],
|
|
{
|
|
waitForSpellCheck: true,
|
|
async preCheckContextMenuFn() {
|
|
await SpecialPowers.spawn(
|
|
gBrowser.selectedBrowser,
|
|
[],
|
|
async function () {
|
|
let doc = content.document;
|
|
let input = doc.getElementById("login_text");
|
|
input.setAttribute("spellcheck", "true");
|
|
input.clientTop; // force layout flush
|
|
}
|
|
);
|
|
},
|
|
}
|
|
);
|
|
});
|
|
|
|
add_task(async function test_text_input_spellcheck_searchform() {
|
|
await test_contextmenu(
|
|
"#search_text",
|
|
[
|
|
"context-undo",
|
|
false,
|
|
"context-redo",
|
|
false,
|
|
"---",
|
|
null,
|
|
"context-cut",
|
|
null, // ignore the enabled/disabled states; there are race conditions
|
|
// in the edit commands but they're not relevant for what we're testing.
|
|
"context-copy",
|
|
null,
|
|
"context-paste",
|
|
null, // ignore clipboard state
|
|
"context-delete",
|
|
null,
|
|
"context-selectall",
|
|
null,
|
|
"---",
|
|
null,
|
|
"context-keywordfield",
|
|
null,
|
|
"---",
|
|
null,
|
|
"spell-check-enabled",
|
|
true,
|
|
"spell-dictionaries",
|
|
true,
|
|
[
|
|
"spell-check-dictionary-en-US",
|
|
true,
|
|
"---",
|
|
null,
|
|
"spell-add-dictionaries",
|
|
true,
|
|
],
|
|
null,
|
|
],
|
|
{
|
|
waitForSpellCheck: true,
|
|
async preCheckContextMenuFn() {
|
|
await SpecialPowers.spawn(
|
|
gBrowser.selectedBrowser,
|
|
[],
|
|
async function () {
|
|
let doc = content.document;
|
|
let input = doc.getElementById("search_text");
|
|
input.setAttribute("spellcheck", "true");
|
|
input.clientTop; // force layout flush
|
|
}
|
|
);
|
|
},
|
|
}
|
|
);
|
|
});
|
|
|
|
add_task(async function test_cleanup() {
|
|
BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
|
});
|