import { PostMessageBusSource, PostMessageBusSink, PostMessageBus } from 'angular2/src/web-workers/shared/post_message_bus'; import {MessageBusInterface} from 'angular2/src/web-workers/shared/message_bus'; /* * Returns a PostMessageBus thats sink is connected to its own source. * Useful for testing the sink and source. */ export function createConnectedMessageBus(): MessageBusInterface { var mockPostMessage = new MockPostMessage(); var source = new PostMessageBusSource(mockPostMessage); var sink = new PostMessageBusSink(mockPostMessage); return new PostMessageBus(sink, source); } class MockPostMessage { private _listener: EventListener; addEventListener(type: string, listener: EventListener, useCapture?: boolean): void { if (type === "message") { this._listener = listener; } } postMessage(data: any, transfer?:[ArrayBuffer]): void { this._listener({data: data}); } }