99 lines
3.5 KiB
HTML
99 lines
3.5 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
function evaluate$0(callback) {
|
|
WI.runtimeManager.evaluateInInspectedWindow("$0", {objectGroup: "test", includeCommandLineAPI: true}, callback);
|
|
}
|
|
|
|
let nodeA, nodeB;
|
|
|
|
let suite = InspectorTest.createAsyncSuite("DOM.setInspectedNode");
|
|
|
|
suite.addTestCase({
|
|
name: "Check$0IsUndefined",
|
|
description: "No inspected node yet, $0 should be undefined.",
|
|
test(resolve, reject) {
|
|
evaluate$0((remoteObject) => {
|
|
InspectorTest.expectThat(remoteObject.isUndefined(), "$0 should be undefined.");
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "SetAndCheckNodeA",
|
|
description: "Set the inspected node to be Node A and check that $0 is Node A.",
|
|
test(resolve, reject) {
|
|
DOMAgent.setInspectedNode(nodeA.id);
|
|
evaluate$0((remoteObject) => {
|
|
remoteObject.pushNodeToFrontend((nodeId) => {
|
|
InspectorTest.expectThat(remoteObject.isNode(), "$0 should be a node.");
|
|
InspectorTest.expectThat(nodeId === nodeA.id, "$0 should be Node A.");
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "SetBadNodeId",
|
|
description: "If an invalid inspected node is set, it should not be bound to $0.",
|
|
test(resolve, reject) {
|
|
DOMAgent.setInspectedNode(999999, (error) => {
|
|
InspectorTest.expectThat(error, "Should be an error");
|
|
});
|
|
evaluate$0((remoteObject) => {
|
|
remoteObject.pushNodeToFrontend((nodeId) => {
|
|
InspectorTest.expectThat(remoteObject.isNode(), "$0 should be a node.");
|
|
InspectorTest.expectThat(nodeId === nodeA.id, "$0 should be Node A.");
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "SetAndCheckNodeB",
|
|
description: "Set the inspected node to be Node B and check that $0 is Node B.",
|
|
test(resolve, reject) {
|
|
DOMAgent.setInspectedNode(nodeB.id);
|
|
evaluate$0((remoteObject) => {
|
|
remoteObject.pushNodeToFrontend((nodeId) => {
|
|
InspectorTest.expectThat(remoteObject.isNode(), "$0 should be a node.");
|
|
InspectorTest.expectThat(nodeId !== nodeA.id, "$0 should not be Node A.");
|
|
InspectorTest.expectThat(nodeId === nodeB.id, "$0 should be Node B.");
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
// FIXME: What should $0 be after reloading / navigating the page. Should it be cleared?
|
|
|
|
WI.domManager.requestDocument((documentNode) => {
|
|
documentNode.querySelector("#a", (contentNodeId) => {
|
|
InspectorTest.assert(contentNodeId, "#a node should exist.");
|
|
nodeA = WI.domManager.nodeForId(contentNodeId);
|
|
});
|
|
documentNode.querySelector("#b", (contentNodeId) => {
|
|
InspectorTest.assert(contentNodeId, "#b node should exist.");
|
|
nodeB = WI.domManager.nodeForId(contentNodeId);
|
|
suite.runTestCasesAndFinish();
|
|
});
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Test for the DOM.setInspectedNode command.</p>
|
|
<div style="display:none">
|
|
<p id="a">Node A</p>
|
|
<p id="b">Node B</p>
|
|
</div>
|
|
</body>
|
|
</html>
|