blob: d47e7ff24b7745025e346a3f464d2a4f4f181018 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<title>Test#add_cleanup</title>
<script src="../../testharness.js"></script>
<script src="../../testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
"use strict";
var log_sync;
test(function(t) {
log_sync = "";
t.add_cleanup(function() { log_sync += "1"; });
t.add_cleanup(function() { log_sync += "2"; });
t.add_cleanup(function() { log_sync += "3"; });
t.add_cleanup(function() { log_sync += "4"; });
t.add_cleanup(function() { log_sync += "5"; });
log_sync += "0";
}, "probe synchronous");
test(function() {
if (log_sync !== "012345") {
throw new Error("Expected: '012345'. Actual: '" + log_sync + "'.");
}
}, "Cleanup methods are invoked exactly once and in the expected sequence.");
var complete, log_async;
async_test(function(t) {
complete = t.step_func(function() {
if (log_async !== "012") {
throw new Error("Expected: '012'. Actual: '" + log_async + "'.");
}
t.done();
});
}, "Cleanup methods are invoked following the completion of asynchronous tests");
async_test(function(t) {
log_async = "";
t.add_cleanup(function() { log_async += "1"; });
setTimeout(t.step_func(function() {
t.add_cleanup(function() {
log_async += "2";
complete();
});
log_async += "0";
t.done();
}), 0);
}, "probe asynchronous");
</script>
<script type="text/json" id="expected">
{
"summarized_status": {
"status_string": "OK",
"message": null,
"stack": null
},
"summarized_tests": [
{
"status_string": "PASS",
"name": "Cleanup methods are invoked exactly once and in the expected sequence.",
"properties": {},
"message": null,
"stack": null
},
{
"status_string": "PASS",
"name": "Cleanup methods are invoked following the completion of asynchronous tests",
"properties": {},
"message": null,
"stack": null
},
{
"status_string": "PASS",
"name": "probe asynchronous",
"properties": {},
"message": null,
"stack": null
},
{
"status_string": "PASS",
"name": "probe synchronous",
"properties": {},
"message": null,
"stack": null
}
],
"type": "complete"
}
</script>
</body>
</html>