michael@0: let port, es; michael@0: michael@0: let url = "https://example.com/browser/toolkit/components/social/test/browser/eventsource.resource"; michael@0: michael@0: function ok(a, msg) { michael@0: port.postMessage({topic: "eventSourceTest", michael@0: result: {ok: a, msg: msg}}); michael@0: } michael@0: michael@0: function is(a, b, msg) { michael@0: port.postMessage({topic: "eventSourceTest", michael@0: result: {is: a, match: b, msg: msg}}); michael@0: } michael@0: michael@0: function esListener(e) { michael@0: esListener.msg_ok = true; michael@0: } michael@0: michael@0: function esOnmessage(e) { michael@0: ok(true, "onmessage test"); michael@0: ok(esListener.msg_ok, "listener test"); michael@0: es.close(); michael@0: port.postMessage({topic: "pong"}); michael@0: } michael@0: michael@0: function doTest() { michael@0: try { michael@0: es = new EventSource(url); michael@0: is(es.url, url, "eventsource.resource accessed", "we can create an eventsource instance"); michael@0: es.addEventListener('test-message', esListener, true); michael@0: es.onmessage = esOnmessage; michael@0: } catch (e) {} michael@0: ok(!!es, "we can create an eventsource instance"); michael@0: } michael@0: michael@0: onconnect = function(e) { michael@0: port = e.ports[0]; michael@0: port.onmessage = function(e) { michael@0: if (e.data.topic == "ping") { michael@0: doTest(); michael@0: } michael@0: } michael@0: }