From 482fc3a2ce6ef6c3064486b2a8c3ddc51950a4c5 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 11 Jun 2018 20:18:56 +0200 Subject: Add tests for deno_sub_cb. --- deno2/js/mock_runtime.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'deno2/js/mock_runtime.js') diff --git a/deno2/js/mock_runtime.js b/deno2/js/mock_runtime.js index b3ec7f034..97688a08d 100644 --- a/deno2/js/mock_runtime.js +++ b/deno2/js/mock_runtime.js @@ -1,18 +1,42 @@ // A simple runtime that doesn't involve typescript or protobufs to test // libdeno. const window = eval("this"); -window['foo'] = () => { +window["foo"] = () => { deno_print("Hello world from foo"); return "foo"; -} +}; function assert(cond) { if (!cond) throw Error("mock_runtime.js assert failed"); } function subabc() { - deno_sub((msg) => { + deno_sub(msg => { assert(msg instanceof ArrayBuffer); assert(msg.byteLength === 3); }); } + +function typedArrayToArrayBuffer(ta) { + return ta.buffer.slice(ta.byteOffset, ta.byteOffset + ta.byteLength); +} + +function pubReturnEmpty() { + const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0))); + const ab = typedArrayToArrayBuffer(ui8); + let r = deno_pub(ab); + assert(r == null); + r = deno_pub(ab); + assert(r == null); +} + +function pubReturnBar() { + const ui8 = new Uint8Array("abc".split("").map(c => c.charCodeAt(0))); + const ab = typedArrayToArrayBuffer(ui8); + const r = deno_pub(ab); + assert(r instanceof ArrayBuffer); + assert(r.byteLength === 3); + const rui8 = new Uint8Array(r); + const rstr = String.fromCharCode(...rui8); + assert(rstr === "bar"); +} -- cgit v1.2.3