function postMsg(message) { parent.postMessage(message, "http://mochi.test:8888"); } window.addEventListener("message", onMessageReceived); function onMessageReceived(event) { if (event.data == "step") { var performed = false; try { performed = doStep(); } catch (ex) { postMsg("FAILURE: exception threw at " + location + ":\n" + ex); finishTest(); } if (performed) { postMsg("perf"); } return; } postMsg("Invalid message"); } function ok(a, message) { if (!a) { postMsg("FAILURE: " + message); } else { postMsg(message); } } function is(a, b, message) { if (a != b) { postMsg("FAILURE: " + message + ", expected " + b + " got " + a); } else { postMsg(message + ", expected " + b + " got " + a); } } function todo(a, b, message) { postMsg("TODO: " + message + ", expected " + b + " got " + a); } function finishTest() { try { localStorage.clear(); } catch (e) {} postMsg("done"); return false; }