blob: a9c61bae3cf7956c261e91bcbc08ffcee86994ef [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script>
passphrase = "page-passphrase";
let worker = new Worker("resources/worker-1.js", {name: "TestWorker"});
function test()
{
let mainTarget = WI.mainTarget;
let workerTarget = Array.from(WI.targets).find((target) => target.type === WI.TargetType.Worker);
if (!workerTarget) {
InspectorTest.fail("Missing Worker Target");
InspectorTest.completeTest();
return;
}
let suite = InspectorTest.createAsyncSuite("Worker.Runtime.basic");
suite.addTestCase({
name: "Main.Runtime.evaluate",
description: "Main target evaluation.",
test(resolve, reject) {
mainTarget.RuntimeAgent.evaluate("passphrase").then((payload) => {
let remoteObject = WI.RemoteObject.fromPayload(payload.result, mainTarget);
InspectorTest.log(`Target - ${mainTarget.displayName} - passphrase - ${remoteObject.description}`);
resolve();
}).catch(reject);
}
});
suite.addTestCase({
name: "Worker.Runtime.evaluate",
description: "Worker target evaluation.",
test(resolve, reject) {
workerTarget.RuntimeAgent.evaluate("passphrase").then((payload) => {
let remoteObject = WI.RemoteObject.fromPayload(payload.result, workerTarget);
InspectorTest.log(`Target - ${workerTarget.displayName} - passphrase - ${remoteObject.description}`);
resolve();
}).catch(reject);
}
});
suite.addTestCase({
name: "Main.Runtime.RemoteObjectAndPropertyDescriptor.",
description: "Should be able to dig further into RemoteObjects.",
test(resolve, reject) {
mainTarget.RuntimeAgent.evaluate("location").then((payload) => {
let remoteObject = WI.RemoteObject.fromPayload(payload.result, mainTarget);
remoteObject.getDisplayablePropertyDescriptors((propertyDescriptors) => {
let hrefPropertyDescriptor = propertyDescriptors.find((p) => p.name === "href");
let hrefValue = sanitizeURL(hrefPropertyDescriptor.value.description);
InspectorTest.log(`Target - ${mainTarget.displayName} - location and href - ${remoteObject.description}: ${hrefValue}`);
resolve();
});
});
}
});
suite.addTestCase({
name: "Worker.Runtime.RemoteObjectAndPropertyDescriptor.",
description: "Should be able to dig further into RemoteObjects.",
test(resolve, reject) {
workerTarget.RuntimeAgent.evaluate("location").then((payload) => {
let remoteObject = WI.RemoteObject.fromPayload(payload.result, workerTarget);
remoteObject.getDisplayablePropertyDescriptors((propertyDescriptors) => {
let hrefPropertyDescriptor = propertyDescriptors.find((p) => p.name === "href");
let hrefValue = sanitizeURL(hrefPropertyDescriptor.value.description);
InspectorTest.log(`Target - ${workerTarget.displayName} - location and href - ${remoteObject.description}: ${hrefValue}`);
resolve();
});
});
}
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Test for RuntimeAgent in a Worker.</p>
</body>
</html>