diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /devtools/client/inspector/markup/test/browser_markup_html_edit_02.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | devtools/client/inspector/markup/test/browser_markup_html_edit_02.js | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_html_edit_02.js b/devtools/client/inspector/markup/test/browser_markup_html_edit_02.js new file mode 100644 index 0000000000..832ff21921 --- /dev/null +++ b/devtools/client/inspector/markup/test/browser_markup_html_edit_02.js @@ -0,0 +1,157 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +/* import-globals-from helper_outerhtml_test_runner.js */ +"use strict"; + +// Test outerHTML edition via the markup-view + +loadHelperScript("helper_outerhtml_test_runner.js"); +requestLongerTimeout(2); + +const TEST_DATA = [ + { + selector: "#badMarkup1", + oldHTML: '<div id="badMarkup1">badMarkup1</div>', + newHTML: '<div id="badMarkup1">badMarkup1</div> hanging</div>', + async validate({ pageNodeFront, selectedNodeFront }) { + is(pageNodeFront, selectedNodeFront, "Original element is selected"); + + const [textNodeName, textNodeData] = await SpecialPowers.spawn( + gBrowser.selectedBrowser, + [], + () => { + const node = + content.document.querySelector("#badMarkup1").nextSibling; + return [node.nodeName, node.data]; + } + ); + is(textNodeName, "#text", "Sibling is a text element"); + is(textNodeData, " hanging", "New text node has expected text content"); + }, + }, + { + selector: "#badMarkup2", + oldHTML: '<div id="badMarkup2">badMarkup2</div>', + newHTML: + '<div id="badMarkup2">badMarkup2</div> hanging<div></div>' + + "</div></div></body>", + async validate({ pageNodeFront, selectedNodeFront }) { + is(pageNodeFront, selectedNodeFront, "Original element is selected"); + + const [textNodeName, textNodeData] = await SpecialPowers.spawn( + gBrowser.selectedBrowser, + [], + () => { + const node = + content.document.querySelector("#badMarkup2").nextSibling; + return [node.nodeName, node.data]; + } + ); + is(textNodeName, "#text", "Sibling is a text element"); + is(textNodeData, " hanging", "New text node has expected text content"); + }, + }, + { + selector: "#badMarkup3", + oldHTML: '<div id="badMarkup3">badMarkup3</div>', + newHTML: + '<div id="badMarkup3">badMarkup3 <em>Emphasized <strong> ' + + "and strong</div>", + async validate({ pageNodeFront, selectedNodeFront }) { + is(pageNodeFront, selectedNodeFront, "Original element is selected"); + + const emText = await getContentPageElementProperty( + "#badMarkup3 em", + "textContent" + ); + const strongText = await getContentPageElementProperty( + "#badMarkup3 strong", + "textContent" + ); + is(emText, "Emphasized and strong", "<em> was auto created"); + is(strongText, " and strong", "<strong> was auto created"); + }, + }, + { + selector: "#badMarkup4", + oldHTML: '<div id="badMarkup4">badMarkup4</div>', + newHTML: '<div id="badMarkup4">badMarkup4</p>', + async validate({ pageNodeFront, selectedNodeFront }) { + is(pageNodeFront, selectedNodeFront, "Original element is selected"); + + const divText = await getContentPageElementProperty( + "#badMarkup4", + "textContent" + ); + const divTag = await getContentPageElementProperty( + "#badMarkup4", + "tagName" + ); + + const pText = await getContentPageElementProperty( + "#badMarkup4 p", + "textContent" + ); + const pTag = await getContentPageElementProperty( + "#badMarkup4 p", + "tagName" + ); + + is(divText, "badMarkup4", "textContent is correct"); + is(divTag, "DIV", "did not change to <p> tag"); + is(pText, "", "The <p> tag has no children"); + is(pTag, "P", "Created an empty <p> tag"); + }, + }, + { + selector: "#badMarkup5", + oldHTML: '<p id="badMarkup5">badMarkup5</p>', + newHTML: '<p id="badMarkup5">badMarkup5 <div>with a nested div</div></p>', + async validate({ pageNodeFront, selectedNodeFront }) { + is(pageNodeFront, selectedNodeFront, "Original element is selected"); + + const num = await getNumberOfMatchingElementsInContentPage( + "#badMarkup5 div" + ); + + const pText = await getContentPageElementProperty( + "#badMarkup5", + "textContent" + ); + const pTag = await getContentPageElementProperty( + "#badMarkup5", + "tagName" + ); + + const divText = await getContentPageElementProperty( + "#badMarkup5 ~ div", + "textContent" + ); + const divTag = await getContentPageElementProperty( + "#badMarkup5 ~ div", + "tagName" + ); + + is(num, 0, "The invalid markup got created as a sibling"); + is(pText, "badMarkup5 ", "The p tag does not take in the div content"); + is(pTag, "P", "Did not change to a <div> tag"); + is(divText, "with a nested div", "textContent is correct"); + is(divTag, "DIV", "Did not change to <p> tag"); + }, + }, +]; + +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); +}); |