2015-08-19 10:57:22 -07:00

31 lines
932 B
TypeScript

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(<any>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(<any>{data: data}); }
}