mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
0a8ff0ad85
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D35951 --HG-- extra : source : 62f3501af4bc1c0bd1ee1977a28aee04706a6663
151 lines
3.4 KiB
JavaScript
151 lines
3.4 KiB
JavaScript
var popup;
|
|
|
|
function OpenWindow() {
|
|
log({}, ">>> OpenWindow");
|
|
popup = window.open("", "Test");
|
|
|
|
var output = "<html>";
|
|
|
|
output += "<body>";
|
|
output += "<form>";
|
|
output +=
|
|
"<input id='popupText1' type='text' onfocus='opener.log(event)' onblur='opener.log(event)'>";
|
|
output += "</form>";
|
|
output += "</body>";
|
|
output += "</html>";
|
|
|
|
popup.document.open();
|
|
popup.document.write(output);
|
|
popup.document.close();
|
|
|
|
popup.document.onclick = function(event) {
|
|
log(event, "popup-doc");
|
|
};
|
|
popup.document.onfocus = function(event) {
|
|
log(event, "popup-doc");
|
|
};
|
|
popup.document.onblur = function(event) {
|
|
log(event, "popup-doc");
|
|
};
|
|
popup.document.onchange = function(event) {
|
|
log(event, "popup-doc");
|
|
};
|
|
|
|
var e = popup.document.getElementById("popupText1");
|
|
popup.focus();
|
|
e.focus();
|
|
is(
|
|
popup.document.activeElement,
|
|
e,
|
|
"input element in popup should be focused"
|
|
);
|
|
log({}, "<<< OpenWindow");
|
|
}
|
|
|
|
var result;
|
|
|
|
function log(event, message) {
|
|
if (event && event.eventPhase == 3) {
|
|
return;
|
|
}
|
|
e = event.currentTarget || event.target || event.srcElement;
|
|
var id = e ? (e.id ? e.id : e.name ? e.name : e.value ? e.value : "") : "";
|
|
if (id) {
|
|
id = "(" + id + ")";
|
|
}
|
|
result +=
|
|
(e ? (e.tagName ? e.tagName : "") : " ") +
|
|
id +
|
|
": " +
|
|
(event.type ? event.type : "") +
|
|
" " +
|
|
(message ? message : "") +
|
|
"\n";
|
|
}
|
|
|
|
document.onclick = function(event) {
|
|
log(event, "top-doc");
|
|
};
|
|
document.onfocus = function(event) {
|
|
log(event, "top-doc");
|
|
};
|
|
document.onblur = function(event) {
|
|
log(event, "top-doc");
|
|
};
|
|
document.onchange = function(event) {
|
|
log(event, "top-doc");
|
|
};
|
|
|
|
function doTest1_rest2(expectedEventLog, focusAfterCloseId) {
|
|
try {
|
|
is(
|
|
document.activeElement,
|
|
document.getElementById(focusAfterCloseId),
|
|
"wrong element is focused after popup was closed"
|
|
);
|
|
is(result, expectedEventLog, "unexpected events");
|
|
SimpleTest.finish();
|
|
} catch (e) {
|
|
if (popup) {
|
|
popup.close();
|
|
}
|
|
throw e;
|
|
}
|
|
}
|
|
function doTest1_rest1(expectedEventLog, focusAfterCloseId) {
|
|
try {
|
|
synthesizeKey("V", {}, popup);
|
|
synthesizeKey("A", {}, popup);
|
|
synthesizeKey("L", {}, popup);
|
|
is(
|
|
popup.document.getElementById("popupText1").value,
|
|
"VAL",
|
|
"input element in popup did not accept input"
|
|
);
|
|
|
|
var p = popup;
|
|
popup = null;
|
|
p.close();
|
|
|
|
SimpleTest.waitForFocus(function() {
|
|
doTest1_rest2(expectedEventLog, focusAfterCloseId);
|
|
}, window);
|
|
} catch (e) {
|
|
if (popup) {
|
|
popup.close();
|
|
}
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
function doTest1(expectedEventLog, focusAfterCloseId) {
|
|
try {
|
|
var select1 = document.getElementById("Select1");
|
|
select1.focus();
|
|
is(document.activeElement, select1, "select element should be focused");
|
|
synthesizeKey("KEY_ArrowDown");
|
|
synthesizeKey("KEY_Tab");
|
|
SimpleTest.waitForFocus(function() {
|
|
doTest1_rest1(expectedEventLog, focusAfterCloseId);
|
|
}, popup);
|
|
} catch (e) {
|
|
if (popup) {
|
|
popup.close();
|
|
}
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
function setPrefAndDoTest(expectedEventLog, focusAfterCloseId, prefValue) {
|
|
var select1 = document.getElementById("Select1");
|
|
select1.blur();
|
|
result = "";
|
|
log({}, "Test with browser.link.open_newwindow = " + prefValue);
|
|
SpecialPowers.pushPrefEnv(
|
|
{ set: [["browser.link.open_newwindow", prefValue]] },
|
|
function() {
|
|
doTest1(expectedEventLog, focusAfterCloseId);
|
|
}
|
|
);
|
|
}
|