| <!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> |