// note, this template substitution is XSS, but no way to avoid it in this framework var expected_logs = {{GET[logs]}}; if (expected_logs.length == 0) { function log_assert(msg) { test(function () { assert_unreached(msg) }); } } else { var t_log = async_test('Expecting logs: {{GET[logs]}}'); function log(msg) { //cons/**/ole.log(msg); t_log.step(function () { if (msg.match(/^FAIL/i)) { assert_unreached(msg); t_log.done(); } for (var i = 0; i < expected_logs.length; i++) { if (expected_logs[i] == msg) { assert_true(expected_logs[i] == msg); expected_logs.splice(i, 1); if (expected_logs.length == 0) { t_log.done(); } return; } } assert_unreached('unexpected log: ' + msg); t_log.done(); }); } }