107 lines
3.9 KiB
HTML
107 lines
3.9 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
function test()
|
|
{
|
|
let suite = InspectorTest.createAsyncSuite("InspectorTest.ExpectFunctions.Async");
|
|
suite.addTestCase({
|
|
name: "expectException.WorkIsNotAFunction",
|
|
async test() {
|
|
InspectorTest.expectException(async () => {
|
|
await InspectorTest.expectException(42);
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "expectException.SyncWorkThatThrowsException",
|
|
async test() {
|
|
let error;
|
|
await InspectorTest.expectException(() => {
|
|
error = new Error("A fake exception");
|
|
throw error;
|
|
}).then((e) => {
|
|
InspectorTest.expectNotNull(error, "Returned promise should be resolved with the expected exception.");
|
|
InspectorTest.expectEqual(error, e, "Exception should not be altered.");
|
|
}).catch(() => {
|
|
InspectorTest.fail("The returned promise should not reject since an expected exception was raised.");
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "expectException.SyncWorkThatDoesNotThrowException",
|
|
async test() {
|
|
InspectorTest.log("The following assertion is expected to fail.");
|
|
|
|
let returnValue = 42;
|
|
await InspectorTest.expectException(() => {
|
|
return returnValue;
|
|
}).then((e) => {
|
|
InspectorTest.fail("The returned promise should reject since an expected exception was not raised.");
|
|
}).catch((resolvedValue) => {
|
|
InspectorTest.expectEqual(resolvedValue, returnValue, "Rejected value should be the returned value.");
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "expectException.AsyncWorkThatRejects",
|
|
async test() {
|
|
let error;
|
|
|
|
await InspectorTest.expectException(() => {
|
|
error = new Error("A fake rejection");
|
|
return Promise.reject(error);
|
|
}).then((e) => {
|
|
InspectorTest.expectNotNull(error, "Returned promise should be resolved with the expected exception.");
|
|
InspectorTest.expectEqual(error, e, "Exception should not be altered.");
|
|
}).catch(() => {
|
|
InspectorTest.fail("The returned promise should not reject since an expected exception was raised.");
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "expectException.AsyncWorkThatResolves",
|
|
async test() {
|
|
InspectorTest.log("The following assertion is expected to fail.");
|
|
|
|
let returnValue = 42;
|
|
await InspectorTest.expectException(() => {
|
|
return Promise.resolve(returnValue);
|
|
}).then(() => {
|
|
InspectorTest.fail("The returned promise should not resolve since an expected exception was not raised.");
|
|
}).catch((resolvedValue) => {
|
|
InspectorTest.expectEqual(resolvedValue, returnValue, "Rejected value should be the returned value.");
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.addTestCase({
|
|
name: "expectException.AsyncWorkThatResolvesImplicitly",
|
|
async test() {
|
|
InspectorTest.log("The following assertion is expected to fail.");
|
|
|
|
let returnValue = 42;
|
|
await InspectorTest.expectException(async () => {
|
|
1 + 1;
|
|
}).then(() => {
|
|
InspectorTest.fail("The returned promise should not resolve since an expected exception was not raised.");
|
|
}).catch((resolvedValue) => {
|
|
InspectorTest.expectEqual(resolvedValue, undefined, "Implicitly resolved value should be undefined.");
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Testing asynchronous TestHarness.expect* functions.</p>
|
|
</body>
|
|
</html>
|