88 lines
2.9 KiB
HTML
88 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
let domNode;
|
|
|
|
let suite = InspectorTest.createAsyncSuite("DOM.insertAdjacentHTML");
|
|
|
|
const positions = [
|
|
"beforebegin",
|
|
"afterbegin",
|
|
"beforeend",
|
|
"afterend",
|
|
];
|
|
|
|
for (let position of positions) {
|
|
suite.addTestCase({
|
|
name: `DOM.insertAdjacentHTML.${position}`,
|
|
async test() {
|
|
let html = `<div id="${position}"></div>`;
|
|
await DOMAgent.insertAdjacentHTML(domNode.id, position, html);
|
|
|
|
let insertAdjacentHTMLResult = await DOMAgent.getOuterHTML(domNode.parentNode.id);
|
|
InspectorTest.expectThat(insertAdjacentHTMLResult.outerHTML.includes(html), "The given HTML should have been added to the DOM tree.")
|
|
|
|
await DOMAgent.undo();
|
|
|
|
let undoResult = await DOMAgent.getOuterHTML(domNode.parentNode.id);
|
|
InspectorTest.expectThat(!undoResult.outerHTML.includes(html), "The given HTML should have been removed from the DOM tree.")
|
|
|
|
await DOMAgent.redo();
|
|
|
|
let redoResult = await DOMAgent.getOuterHTML(domNode.parentNode.id);
|
|
InspectorTest.expectThat(redoResult.outerHTML.includes(html), "The given HTML should have been added back to the DOM tree.")
|
|
}
|
|
});
|
|
}
|
|
|
|
suite.addTestCase({
|
|
name: "DOM.insertAdjacentHTML.InvalidNodeId",
|
|
async test() {
|
|
try {
|
|
const nodeId = 9999999;
|
|
const position = "afterbegin";
|
|
const html = "";
|
|
await DOMAgent.insertAdjacentHTML(nodeId, position, html);
|
|
} catch (error) {
|
|
InspectorTest.expectThat(error, "Should produce an error.");
|
|
InspectorTest.pass("Error: " + error.message);
|
|
}
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "DOM.insertAdjacentHTML.InvalidPosition",
|
|
async test() {
|
|
try {
|
|
const position = "INVALID_POSITION";
|
|
const html = "";
|
|
await DOMAgent.insertAdjacentHTML(domNode.id, position, html);
|
|
} catch (error) {
|
|
InspectorTest.expectThat(error, "Should produce an error.");
|
|
InspectorTest.pass("Error: " + error.message);
|
|
}
|
|
}
|
|
});
|
|
|
|
WI.domManager.requestDocument((documentNode) => {
|
|
documentNode.querySelector("#reference", (nodeId) => {
|
|
domNode = WI.domManager.nodeForId(nodeId);
|
|
InspectorTest.assert(domNode, `Node with id "reference" should exist.`);
|
|
|
|
suite.runTestCasesAndFinish();
|
|
});
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Test for DOM.insertAdjacentHTML.</p>
|
|
|
|
<div id="container"><div id="reference"></div></div>
|
|
</body>
|
|
</html>
|