90 lines
3.1 KiB
HTML
90 lines
3.1 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/protocol-test.js"></script>
|
|
<script src="resources/property-descriptor-utilities.js"></script>
|
|
<script>
|
|
if (window.internals)
|
|
window.internals.settings.setUnhandledPromiseRejectionToConsoleEnabled(false);
|
|
|
|
function test()
|
|
{
|
|
let suite = ProtocolTest.createAsyncSuite("Runtime.getProperties.internalProperties");
|
|
|
|
function addTestCase({name, expression}) {
|
|
suite.addTestCase({
|
|
name,
|
|
async test() {
|
|
ProtocolTest.log(`Evaluating expression...`);
|
|
let evaluateResponse = await InspectorProtocol.awaitCommand({
|
|
method: "Runtime.evaluate",
|
|
params: {expression},
|
|
});
|
|
InspectorProtocol.checkForError(evaluateResponse);
|
|
ProtocolTest.assert(!evaluateResponse.wasThrown);
|
|
|
|
ProtocolTest.log("Getting internal properties...");
|
|
let {internalProperties} = await InspectorProtocol.awaitCommand({
|
|
method: "Runtime.getProperties",
|
|
params: {
|
|
objectId: evaluateResponse.result.objectId,
|
|
},
|
|
});
|
|
|
|
ProtocolTest.newline();
|
|
|
|
async function dump({name, value}, indentSize) {
|
|
if (name === "__proto__")
|
|
return;
|
|
|
|
let indentLog = " ".repeat(indentSize);
|
|
let nameLog = name + ": ";
|
|
|
|
if (value.type !== "object") {
|
|
ProtocolTest.log(indentLog + nameLog + ProtocolTest.PropertyDescriptorUtilities.stringifyRemoteObject(value));
|
|
return;
|
|
}
|
|
|
|
ProtocolTest.log(indentLog + nameLog + (value.subtype === "array" ? "[" : "{"));
|
|
|
|
let {properties} = await InspectorProtocol.awaitCommand({
|
|
method: "Runtime.getProperties",
|
|
params: {
|
|
objectId: value.objectId,
|
|
ownProperties: true,
|
|
},
|
|
});
|
|
for (let property of properties)
|
|
await dump(property, indentSize + 2);
|
|
|
|
ProtocolTest.log(indentLog + (value.subtype === "array" ? "]" : "}"));
|
|
}
|
|
|
|
for (let internalProperty of internalProperties)
|
|
await dump(internalProperty, 2);
|
|
},
|
|
});
|
|
}
|
|
|
|
addTestCase({
|
|
name: "Runtime.getProperties.internalProperties.EventTarget",
|
|
expression: `(function() {
|
|
let x = new EventTarget;
|
|
x.addEventListener("eventBubbleActiveMulti", function callbackBubbleActiveMulti() {});
|
|
x.addEventListener("eventCapturePassiveOnce", function callbackCapturePassiveOnce() {}, {
|
|
capture: true,
|
|
passive: true,
|
|
once: true,
|
|
});
|
|
return x;
|
|
})()`,
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onLoad="runTest()">
|
|
<p>Tests for the Runtime.getProperties command.</p>
|
|
</body>
|
|
</html>
|