зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1717760
- Stop using `KeyEvent.initKeyEvent` in our tests r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D121028
This commit is contained in:
Родитель
bd3bd43954
Коммит
53bef623bf
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче