/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ /* import-globals-from helper_events_test_runner.js */ "use strict"; // Test that markup view event bubbles show the correct event info for DOM // events. const TEST_URL = URL_ROOT_SSL + "doc_markup_events_01.html"; loadHelperScript("helper_events_test_runner.js"); const TEST_DATA = [ { selector: "html", expected: [ { type: "load", filename: TEST_URL, attributes: ["Bubbling"], handler: "function onload(event) {\n" + " init();\n" + "}", }, ], }, { selector: "#container", expected: [ { type: "mouseover", filename: TEST_URL + ":48:31", attributes: ["Capturing"], handler: "function mouseoverHandler(event) {\n" + ' if (event.target.id !== "container") {\n' + ' const output = document.getElementById("output");\n' + " output.textContent = event.target.textContent;\n" + " }\n" + "}", }, ], }, { selector: "#multiple", expected: [ { type: "click", filename: TEST_URL + ":55:27", attributes: ["Bubbling"], handler: "function clickHandler(event) {\n" + ' const output = document.getElementById("output");\n' + ' output.textContent = "click";\n' + "}", }, { type: "mouseup", filename: TEST_URL + ":60:29", attributes: ["Bubbling"], handler: "function mouseupHandler(event) {\n" + ' const output = document.getElementById("output");\n' + ' output.textContent = "mouseup";\n' + "}", }, ], }, // #noevents tests check that dynamically added events are properly displayed // in the markupview { selector: "#noevents", expected: [], }, { selector: "#noevents", async beforeTest(inspector) { const nodeMutated = inspector.once("markupmutation"); await SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => content.wrappedJSObject.addNoeventsClickHandler() ); await nodeMutated; }, expected: [ { type: "click", filename: TEST_URL + ":76:35", attributes: ["Bubbling"], handler: "function noeventsClickHandler(event) {\n" + ' alert("noevents has an event listener");\n' + "}", }, ], }, { selector: "#noevents", async beforeTest(inspector) { const nodeMutated = inspector.once("markupmutation"); await SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => content.wrappedJSObject.removeNoeventsClickHandler() ); await nodeMutated; }, expected: [], }, { selector: "#DOM0", expected: [ { type: "click", filename: TEST_URL, attributes: ["Bubbling"], handler: "function onclick(event) {\n" + " alert('DOM0')\n" + "}", }, ], }, { selector: "#handleevent", expected: [ { type: "click", filename: TEST_URL + ":71:29", attributes: ["Bubbling"], handler: "function(blah) {\n" + ' alert("handleEvent");\n' + "}", }, ], }, ]; add_task(async function () { await runEventPopupTests(TEST_URL, TEST_DATA); });