fix(WebWorker): Fix Todo Server demo and add test to ensure the demo can bootstrap.

Closes #3970
This commit is contained in:
Jason Teplitz
2015-09-03 10:31:46 -07:00
parent 3ff321475d
commit 696edde17c
9 changed files with 135 additions and 116 deletions
@@ -0,0 +1,25 @@
library angular2.test.web_workers.debug_tools.bootstrap;
import "package:angular2/test_lib.dart";
import "package:angular2/src/core/reflection/reflection_capabilities.dart";
import "package:angular2/src/core/reflection/reflection.dart";
import "package:angular2/web_worker/worker.dart";
import "package:angular2/src/web_workers/worker/application_common.dart";
import "../shared/web_worker_test_util.dart";
import "dart:convert";
main() {
describe("bootstrapWebWorkerCommon", () {
it ("should bootstrap on a Dart VM", () {
reflector.reflectionCapabilities = new ReflectionCapabilities();
var buses = createPairedMessageBuses();
bootstrapWebWorkerCommon(App, buses.worker);
});
});
}
@Component(selector: "app")
@View(template: "<p>Hello {{name}}</p>")
class App {
String name = "Tester";
}
@@ -5,17 +5,16 @@ import 'dart:async';
import "package:angular2/src/core/facade/async.dart";
class MockEventEmitter extends EventEmitter {
List<Function> _nextFns = new List();
final controller = new StreamController.broadcast(sync: true);
@override
StreamSubscription listen(void onData(dynamic line),
{void onError(Error error), void onDone(), bool cancelOnError}) {
_nextFns.add(onData);
return null;
return controller.stream.listen(onData, onError: onError, onDone: onDone, cancelOnError: cancelOnError);
}
@override
void add(value) {
_nextFns.forEach((fn) => fn(value));
controller.add(value);
}
}
@@ -9,10 +9,14 @@ export class MockEventEmitter extends EventEmitter {
observer(generator: any): Rx.IDisposable {
this._nextFns.push(generator.next);
return null;
return new MockDisposable();
}
next(value: any) {
ListWrapper.forEach(this._nextFns, (fn) => { fn(value); });
}
}
class MockDisposable implements Rx.IDisposable {
dispose(): void {}
}