blob: c5a505faa79f74402dcc6396caaad4e944cd586f [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script>
function test()
{
let domNode;
let suite = InspectorTest.createAsyncSuite("DOM.setOuterHTML");
suite.addTestCase({
name: "OuterHTMLBefore",
description: "Log the initial outerHTML of the target element.",
test(resolve, reject) {
domNode.getOuterHTML(function(error, outerHTML) {
InspectorTest.expectNoError(error);
InspectorTest.log(outerHTML);
resolve();
});
}
});
const emptyOuterHTML = `<div id="x"></div>`;
const newOuterHTML = `
<div id="x" style="display:none; color:red">
<div class="container">
<h1>A Title</h1>
<p>A Paragraph</p>
</div>
</div>`.trim();
const modifiedOuterHTML = `
<div id="x" style="display:none; color:red">
<div class="container">
<h1>A Different Title</h1>
<p>A Paragraph</p>
</div>
</div>`.trim();
let steps = [
["RemovingElements", emptyOuterHTML],
["AddingElements", newOuterHTML],
["ModifyingElements", modifiedOuterHTML],
];
steps.forEach(function(tuple) {
let [title, replacementOuterHTML] = tuple;
suite.addTestCase({
name: `SetOuterHTML${title}`,
description: "Change the outerHTML.",
test(resolve, reject) {
domNode.setOuterHTML(replacementOuterHTML, function(error, outerHTML) {
InspectorTest.expectNoError(error);
resolve();
});
}
});
suite.addTestCase({
name: `CheckOuterHTMLAfter${title}`,
description: "Log the outerHTML of the target element after changes.",
test(resolve, reject) {
domNode.getOuterHTML(function(error, outerHTML) {
InspectorTest.expectNoError(error);
InspectorTest.expectThat(outerHTML === replacementOuterHTML, "The outerHTML should be what was just set.");
InspectorTest.log(outerHTML);
resolve();
});
}
});
});
WI.domManager.requestDocument(function(documentNode) {
documentNode.querySelector("#x", function(nodeId) {
domNode = WI.domManager.nodeForId(nodeId);
InspectorTest.assert(domNode, "DOMNode exists.");
suite.runTestCasesAndFinish();
});
});
}
</script>
</head>
<body onload="runTest()">
<p>Test for DOM.setOuterHTML (Edit as HTML).</p>
<div id="x" style="display:none">
<h1>Original Title</h1>
<p>Original Paragraph</p>
</div>
</body>
</html>