From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/events/test/bug299673.js | 150 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 dom/events/test/bug299673.js (limited to 'dom/events/test/bug299673.js') diff --git a/dom/events/test/bug299673.js b/dom/events/test/bug299673.js new file mode 100644 index 0000000000..2775355c40 --- /dev/null +++ b/dom/events/test/bug299673.js @@ -0,0 +1,150 @@ +var popup; + +function OpenWindow() { + log({}, ">>> OpenWindow"); + popup = window.open("", "Test"); + + var output = ""; + + output += ""; + output += "
"; + output += + ""; + output += "
"; + output += ""; + output += ""; + + 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); + } + ); +} -- cgit v1.2.3