Bug 1717760 - Stop using `KeyEvent.initKeyEvent` in our tests r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D121028
This commit is contained in:
Masayuki Nakano 2021-08-10 03:51:37 +00:00
Родитель bd3bd43954
Коммит 53bef623bf
18 изменённых файлов: 210 добавлений и 143 удалений

Просмотреть файл

@ -52,9 +52,12 @@ window.onload = function() {
info("Use the escape key to dismiss the eyedropper");
const onPickCanceled = waitForEvent("color-pick-canceled");
const keyboardEvent = win.document.createEvent("KeyboardEvent");
keyboardEvent.initKeyEvent("keydown", true, true, win, false, false,
false, false, 27, 0);
const keyboardEvent = new win.KeyboardEvent("keydown", {
bubbles: true,
cancelable: true,
view: win,
keyCode: 27
});
win.document.dispatchEvent(keyboardEvent);
await onPickCanceled;

Просмотреть файл

@ -44,10 +44,15 @@ function dispatchClick(target, ctrl) {
}
function dispatchReturn(target, ctrl) {
var e = document.createEvent("KeyboardEvent");
e.initKeyEvent("keypress", true, true, window, ctrl, false,
false, false, 13, 0);
target.dispatchEvent(e);
var e = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: window,
ctrlKey: ctrl,
keyCode: 13,
charCode: 0,
});
target.dispatchEvent(e);
}
function dispatchDOMActivate(target) {

Просмотреть файл

@ -23,9 +23,14 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=456273
/** Test for Bug 456273 **/
function doTest() {
var ev = document.createEvent('KeyboardEvent');
ev.initKeyEvent("keypress", true, true, null, true, false,
false, false, 0, "z".charCodeAt(0));
var ev = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
ctrlKey: true,
keyCode: 0,
charCode: "z".charCodeAt(0),
});
SpecialPowers.dispatchEvent(window, document.getElementById('edit456273'), ev);
ok(true, "PASS");

Просмотреть файл

@ -9,22 +9,31 @@ window.addEventListener("Test:DispatchKeyEvents", aEvent => {
var keyCode = KeyEvent["DOM_" + aEvent.detail.code];
document.body.focus();
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keydown", true, true, window,
false, false, false, false,
keyCode, 0);
var evt = new KeyboardEvent("keydown", {
bubbles: true,
cancelable: true,
view: window,
keyCode,
charCode: 0,
});
document.body.dispatchEvent(evt);
evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keypress", true, true, window,
false, false, false, false,
keyCode, 0);
evt = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: window,
keyCode,
charCode: 0,
});
document.body.dispatchEvent(evt);
evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keyup", true, true, window,
false, false, false, false,
keyCode, 0);
evt = new KeyboardEvent("keyup", {
bubbles: true,
cancelable: true,
view: window,
keyCode,
charCode: 0,
});
document.body.dispatchEvent(evt);
});
</script>

Просмотреть файл

@ -25,19 +25,13 @@ const kTests = [
];
function sendUntrustedKeyEvent(eventType, keyCode, target) {
var evt = document.createEvent("KeyboardEvent");
var canBubbleArg = true;
var cancelableArg = true;
var viewArg = document.defaultView;
var ctrlKeyArg = false;
var altKeyArg = false;
var shiftKeyArg = false;
var metaKeyArg = false;
var keyCodeArg = keyCode;
var charCodeArg = 0;
evt.initKeyEvent(eventType, canBubbleArg, cancelableArg, viewArg,
ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
keyCodeArg, charCodeArg);
var evt = new KeyboardEvent(eventType, {
bubbles: true,
cancelable: true,
view: document.defaultView,
keyCode,
charCode: 0,
});
target.dispatchEvent(evt);
}

Просмотреть файл

@ -45,20 +45,13 @@ add_task(async function() {
newInput.setAttribute("name", "test");
document.body.appendChild(newInput);
var event = document.createEvent("KeyboardEvent");
event.initKeyEvent(
"keypress",
true,
true,
null,
false,
false,
false,
false,
0,
"f".charCodeAt(0)
);
var event = new window.KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: "f".charCodeAt(0),
});
newInput.value = "";
newInput.focus();
newInput.dispatchEvent(event);

Просмотреть файл

@ -152,10 +152,13 @@ function runTests() {
function testDispatchedKeyEvent(aTarget) {
var targetDescription = " (dispatched to " + aTarget._description + ")";
function dispatchKeyEvent(aKeyCode, aChar, aDispatchTarget) {
var keyEvent = document.createEvent("KeyboardEvent");
keyEvent.initKeyEvent("keypress", true, true, null, false, false,
false, false, aKeyCode,
aChar ? aChar.charCodeAt(0) : 0);
var keyEvent = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: aKeyCode,
charCode: aChar ? aChar.charCodeAt(0) : 0
});
aDispatchTarget.dispatchEvent(keyEvent);
}

Просмотреть файл

@ -42,9 +42,13 @@ addLoadEvent(function() {
SimpleTest.executeSoon(runTextareaTest);
});
}, {once: true});
var keypress = document.createEvent("KeyboardEvent");
keypress.initKeyEvent("keypress", true, true, document.defaultView,
false, false, false, false, 0, "a".charCodeAt(0));
var keypress = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: document.defaultView,
keyCode: 0,
charCode:"a".charCodeAt(0),
});
input.dispatchEvent(keypress);
});
});
@ -62,9 +66,13 @@ function runTextareaTest() {
SimpleTest.executeSoon(runContentediableTest);
});
}, {once: true});
var keypress = document.createEvent("KeyboardEvent");
keypress.initKeyEvent("keypress", true, true, document.defaultView,
false, false, false, false, 0, "b".charCodeAt(0));
var keypress = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: document.defaultView,
keyCode: 0,
charCode:"b".charCodeAt(0),
});
textarea.dispatchEvent(keypress);
}
@ -81,9 +89,13 @@ function runContentediableTest() {
SimpleTest.finish();
});
}, {once: true});
var keypress = document.createEvent("KeyboardEvent");
keypress.initKeyEvent("keypress", true, true, document.defaultView,
false, false, false, false, 0, "c".charCodeAt(0));
var keypress = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: document.defaultView,
keyCode: 0,
charCode:"c".charCodeAt(0),
});
div.dispatchEvent(keypress);
}

Просмотреть файл

@ -27,11 +27,14 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=381167
SimpleTest.waitForExplicitFinish();
function closeit() {
var evt = document.createEvent('KeyboardEvent');
evt.initKeyEvent('keypress', true, true,
window,
true, false, false, false,
'W'.charCodeAt(0), 0);
var evt = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: window,
ctrlKey: true,
keyCode: 'W'.charCodeAt(0),
charCode: 0,
});
window.dispatchEvent(evt);
setTimeout(finish, 200);

Просмотреть файл

@ -291,19 +291,13 @@ async function runTests(browser) {
// Dispatch the event for changing the page
var ev;
if (test.action.event == "keydown") {
ev = document.createEvent("KeyboardEvent");
ev.initKeyEvent(
"keydown",
true,
true,
null,
false,
false,
false,
false,
test.action.keyCode,
0
);
ev = new window.KeyboardEvent("keydown", {
bubbles: true,
cancelable: true,
view: null,
keyCode: test.action.keyCode,
charCode: 0,
});
el.dispatchEvent(ev);
} else {
ev = new content.Event(test.action.event);

Просмотреть файл

@ -95,15 +95,27 @@ function doKeyUnprivileged(key) {
alwaysval = keycode;
}
let dnEvent = document.createEvent("KeyboardEvent");
let prEvent = document.createEvent("KeyboardEvent");
let upEvent = document.createEvent("KeyboardEvent");
/* eslint-disable no-multi-spaces */
dnEvent.initKeyEvent("keydown", true, true, null, false, false, false, false, alwaysval, 0);
prEvent.initKeyEvent("keypress", true, true, null, false, false, false, false, keycode, charcode);
upEvent.initKeyEvent("keyup", true, true, null, false, false, false, false, alwaysval, 0);
/* eslint-enable no-multi-spaces */
const dnEvent = new KeyboardEvent("keydown", {
bubbles: true,
cancelable: true,
view: null,
keyCode: alwaysval,
charCode: 0,
});
const prEvent = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: keycode,
charCode: charcode,
});
const upEvent = new KeyboardEvent("keyup", {
bubbles: true,
cancelable: true,
view: null,
keyCode: alwaysval,
charCode: 0,
});
input.dispatchEvent(dnEvent);
input.dispatchEvent(prEvent);

Просмотреть файл

@ -71,9 +71,13 @@ find-menu appears in editor element which has had makeEditable() called but desi
async function enterStringIntoEditor(aString) {
for (let i = 0; i < aString.length; i++) {
await ContentTask.spawn(gBrowser, [{ charCode: aString.charCodeAt(i) }], async function(args) {
let event = content.document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, args.charCode);
let event = new content.window.KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: args.charCode,
});
content.document.body.dispatchEvent(event);
});
}

Просмотреть файл

@ -106,9 +106,13 @@
function promiseEnterStringIntoFindField(str) {
let promise = promiseFindResult(str);
for (let i = 0; i < str.length; i++) {
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, str.charCodeAt(i));
let event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: str.charCodeAt(i),
});
gFindBar._findField.dispatchEvent(event);
}
return promise;

Просмотреть файл

@ -39,9 +39,13 @@
function enterStringIntoFindField(aString) {
for (var i=0; i < aString.length; i++) {
var event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, aString.charCodeAt(i));
var event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: aString.charCodeAt(i),
});
gFindBar._findField.dispatchEvent(event);
}
}
@ -64,9 +68,13 @@
highlight.click();
// Delete search term
var event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, KeyEvent.DOM_VK_BACK_SPACE, 0);
var event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: KeyEvent.DOM_VK_BACK_SPACE,
charCode: 0,
});
gFindBar._findField.dispatchEvent(event);
var notRed = !findField.hasAttribute("status") ||

Просмотреть файл

@ -147,9 +147,13 @@
if (waitForResult) {
promise = promiseFindResult();
}
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, str.charCodeAt(i));
let event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: str.charCodeAt(i),
});
gFindBar._findField.dispatchEvent(event);
if (waitForResult) {
await promise;
@ -243,11 +247,14 @@
async function testQuickfind(tests) {
await SpecialPowers.spawn(gBrowser, [], async function() {
let document = content.document;
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, "/".charCodeAt(0));
document.documentElement.dispatchEvent(event);
let event = new content.window.KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: "/".charCodeAt(0),
});
content.document.documentElement.dispatchEvent(event);
});
ok(!gFindBar.hidden, "testQuickfind: failed to open findbar");

Просмотреть файл

@ -103,9 +103,13 @@
let promise = once(gFindBar, "find");
// Put some text in the find box.
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, query.charCodeAt(0));
let event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: query.charCodeAt(0),
});
gFindBar._findField.dispatchEvent(event);
let e = await promise;

Просмотреть файл

@ -270,9 +270,13 @@
if (waitForResult) {
promise = promiseFindResult();
}
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, str.charCodeAt(i));
let event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: str.charCodeAt(i),
});
gFindBar._findField.dispatchEvent(event);
if (waitForResult) {
await promise;
@ -425,11 +429,14 @@
await clearFocus();
await SpecialPowers.spawn(gBrowser, [], async function() {
let document = content.document;
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, "'".charCodeAt(0));
document.documentElement.dispatchEvent(event);
let event = new content.window.KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: "'".charCodeAt(0),
});
content.document.documentElement.dispatchEvent(event);
});
ok(!gFindBar.hidden, "testQuickFindLink: failed to open findbar");
@ -544,11 +551,14 @@
await clearFocus();
await SpecialPowers.spawn(gBrowser, [], async function() {
let document = content.document;
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, "/".charCodeAt(0));
document.documentElement.dispatchEvent(event);
let event = new content.window.KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: "/".charCodeAt(0),
});
content.document.documentElement.dispatchEvent(event);
});
ok(!gFindBar.hidden, "testQuickFindText: failed to open findbar");
@ -568,11 +578,14 @@
if (linksOnly) {
await SpecialPowers.spawn(gBrowser, [], async function() {
let document = content.document;
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keypress", true, true, null, false, false,
false, false, 0, "'".charCodeAt(0));
document.documentElement.dispatchEvent(event);
let event = new content.window.KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: "'".charCodeAt(0),
});
content.document.documentElement.dispatchEvent(event);
});
} else {
document.getElementById("cmd_find").doCommand();

Просмотреть файл

@ -67,19 +67,13 @@ function promiseFindResult(findbar, str = null) {
function promiseEnterStringIntoFindField(findbar, str) {
let promise = promiseFindResult(findbar, str);
for (let i = 0; i < str.length; i++) {
let event = document.createEvent("KeyboardEvent");
event.initKeyEvent(
"keypress",
true,
true,
null,
false,
false,
false,
false,
0,
str.charCodeAt(i)
);
let event = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
view: null,
keyCode: 0,
charCode: str.charCodeAt(i),
});
findbar._findField.dispatchEvent(event);
}
return promise;