blob: da07d6eb1666ea693a674d96d1b30972542e1afc [file] [log] [blame] [edit]
<!doctype html><!-- webkit-test-runner [ IPCTestingAPIEnabled=true ] -->
<title>Test that async messages can reply with optionals</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../resources/ipc.js"></script>
<body>
<script>
async function runTest() {
const testerID = 0;
const IPCTester_AsyncOptionalExceptionData = IPC.messages.IPCTester_AsyncOptionalExceptionData.name;
const IPCTester_AsyncOptionalExceptionDataReply = IPC.messages.IPCTester_AsyncOptionalExceptionDataReply.name;
for (const processTarget of IPC.processTargets) {
// Test starts here.
let results = { };
let connection = IPC.connectionForProcessTarget(processTarget);
let result1 = IPC.sendWithPromisedReply(processTarget, testerID, IPCTester_AsyncOptionalExceptionData, [{type: 'bool', value: 0}]);
let result2 = IPC.sendWithPromisedReply(processTarget, testerID, IPCTester_AsyncOptionalExceptionData, [{type: 'bool', value: 1}]);
let result = await result1;
assert_equals(typeof result, "object");
assert_equals(typeof result.arguments[0], "undefined");
assert_equals(result.arguments[1].type, "String");
assert_equals(result.arguments[1].value, "b");
result = await result2;
assert_equals(typeof result, "object");
assert_equals(result.arguments[0].type, "ExceptionData");
assert_equals(result.arguments[0].code, "WrongDocumentError");
assert_equals(result.arguments[0].message, "m");
assert_equals(result.arguments[1].type, "String");
assert_equals(result.arguments[1].value, "a");
}
done();
}
setup({ single_test: true });
if (window.IPC)
runTest();
else
done();
</script>
</body>