78 lines
2.6 KiB
HTML
78 lines
2.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
|
|
function createTestNode(id) {
|
|
let node = document.body.appendChild(document.createElement("div"));
|
|
node.id = id;
|
|
node.setAttributeNS("http://example.com", "attribute:existing", 42);
|
|
}
|
|
|
|
function test() {
|
|
let documentNode = null;
|
|
|
|
let suite = InspectorTest.createAsyncSuite("DOM.attributeModified");
|
|
|
|
suite.addTestCase({
|
|
name: "DOM.attributeModified.WithNamespace",
|
|
description: "Check that the attributeModified event sends the full attribute name, including the namespace.",
|
|
async test() {
|
|
const id = "with-namespace";
|
|
|
|
InspectorTest.log("Creating test node...");
|
|
await InspectorTest.evaluateInPage(`createTestNode("${id}")`);
|
|
let testNodeId = await documentNode.querySelector("#" + id);
|
|
let testNode = WI.domManager.nodeForId(testNodeId);
|
|
InspectorTest.assert(testNode, "Missing test node for id " + testNodeId);
|
|
|
|
function logAttributes() {
|
|
let attributes = {};
|
|
for (let attribute of testNode.attributes())
|
|
attributes[attribute.name] = attribute.value;
|
|
InspectorTest.json(attributes);
|
|
InspectorTest.log("");
|
|
}
|
|
|
|
logAttributes();
|
|
|
|
InspectorTest.log("Adding attribute with namespace...");
|
|
await Promise.all([
|
|
testNode.awaitEvent(WI.DOMNode.Event.AttributeModified),
|
|
InspectorTest.evaluateInPage(`document.getElementById("${id}").setAttributeNS("http://example.com", "attribute:new", 1)`)
|
|
]);
|
|
|
|
logAttributes();
|
|
|
|
InspectorTest.log("Replacing attribute with namespace...");
|
|
await Promise.all([
|
|
testNode.awaitEvent(WI.DOMNode.Event.AttributeModified),
|
|
InspectorTest.evaluateInPage(`document.getElementById("${id}").setAttributeNS("http://example.com", "attribute:new", 2)`)
|
|
]);
|
|
|
|
logAttributes();
|
|
|
|
InspectorTest.log("Replacing attribute without namespace...");
|
|
await Promise.all([
|
|
testNode.awaitEvent(WI.DOMNode.Event.AttributeModified),
|
|
InspectorTest.evaluateInPage(`document.getElementById("${id}").setAttribute("attribute:new", "3")`)
|
|
]);
|
|
|
|
logAttributes();
|
|
},
|
|
});
|
|
|
|
WI.domManager.requestDocument((root) => {
|
|
documentNode = root;
|
|
|
|
suite.runTestCasesAndFinish();
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests for the DOM.attributeModified event.</p>
|
|
</body>
|
|
</html>
|