Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
/* 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);
});