Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
/* import-globals-from helper_outerhtml_test_runner.js */
"use strict";
// Test outerHTML edition via the markup-view
requestLongerTimeout(2);
loadHelperScript("helper_outerhtml_test_runner.js");
const TEST_DATA = [
{
selector: "#one",
oldHTML: '<div id="one">First <em>Div</em></div>',
newHTML: '<div id="one">First Div</div>',
async validate() {
const text = await getContentPageElementProperty("#one", "textContent");
is(text, "First Div", "New div has expected text content");
const num = await getNumberOfMatchingElementsInContentPage("#one em");
is(num, 0, "No em remaining");
},
},
{
selector: "#removedChildren",
oldHTML:
'<div id="removedChildren">removedChild ' +
"<i>Italic <b>Bold <u>Underline</u></b></i> Normal</div>",
newHTML: '<div id="removedChildren">removedChild</div>',
},
{
selector: "#addedChildren",
oldHTML: '<div id="addedChildren">addedChildren</div>',
newHTML:
'<div id="addedChildren">addedChildren ' +
"<i>Italic <b>Bold <u>Underline</u></b></i> Normal</div>",
},
{
selector: "#addedAttribute",
oldHTML: '<div id="addedAttribute">addedAttribute</div>',
newHTML:
'<div id="addedAttribute" class="important" disabled checked>' +
"addedAttribute</div>",
async validate({ pageNodeFront, selectedNodeFront }) {
is(pageNodeFront, selectedNodeFront, "Original element is selected");
const html = await getContentPageElementProperty(
"#addedAttribute",
"outerHTML"
);
is(
html,
'<div id="addedAttribute" class="important" disabled="" ' +
'checked="">addedAttribute</div>',
"Attributes have been added"
);
},
},
{
selector: "#changedTag",
oldHTML: '<div id="changedTag">changedTag</div>',
newHTML: '<p id="changedTag" class="important">changedTag</p>',
},
{
selector: "#siblings",
oldHTML: '<div id="siblings">siblings</div>',
newHTML:
'<div id="siblings-before-sibling">before sibling</div>' +
'<div id="siblings">siblings (updated)</div>' +
'<div id="siblings-after-sibling">after sibling</div>',
async validate({ selectedNodeFront, inspector }) {
const beforeSiblingFront = await getNodeFront(
"#siblings-before-sibling",
inspector
);
is(beforeSiblingFront, selectedNodeFront, "Sibling has been selected");
const text = await getContentPageElementProperty(
"#siblings",
"textContent"
);
is(text, "siblings (updated)", "New div has expected text content");
const beforeText = await getContentPageElementProperty(
"#siblings-before-sibling",
"textContent"
);
is(beforeText, "before sibling", "Sibling has been inserted");
const afterText = await getContentPageElementProperty(
"#siblings-after-sibling",
"textContent"
);
is(afterText, "after sibling", "Sibling has been inserted");
},
},
];
const TEST_URL =
"data:text/html," +
"<!DOCTYPE html>" +
"<head><meta charset='utf-8' /></head>" +
"<body>" +
TEST_DATA.map(outer => outer.oldHTML).join("\n") +
"</body>" +
"</html>";
add_task(async function () {
const { inspector } = await openInspectorForURL(TEST_URL);
inspector.markup._frame.focus();
await runEditOuterHTMLTests(TEST_DATA, inspector);
});