fix(core): Unload components when individually disposed.

This commit is contained in:
Alex Rickabaugh
2015-11-10 10:40:33 -08:00
parent e6bf33efbf
commit 1ff1792642
2 changed files with 49 additions and 9 deletions
+18 -1
View File
@@ -12,7 +12,8 @@ import {
} from 'angular2/testing_internal';
import {IS_DART, isPresent, stringify} from 'angular2/src/facade/lang';
import {bootstrap} from 'angular2/bootstrap';
import {ApplicationRef} from 'angular2/src/core/application_ref';
import {platform, applicationDomProviders} from 'angular2/src/core/application_common';
import {applicationCommonProviders, ApplicationRef} from 'angular2/src/core/application_ref';
import {Component, Directive, View} from 'angular2/core';
import {DOM} from 'angular2/src/core/dom/dom_adapter';
import {DOCUMENT} from 'angular2/render';
@@ -21,6 +22,7 @@ import {provide, Inject, Injector} from 'angular2/core';
import {ExceptionHandler} from 'angular2/src/facade/exceptions';
import {Testability, TestabilityRegistry} from 'angular2/src/core/testability/testability';
import {ComponentRef_} from "angular2/src/core/linker/dynamic_component_loader";
import {compilerProviders} from 'angular2/src/compiler/compiler';
@Component({selector: 'hello-app'})
@View({template: '{{greeting}} world!'})
@@ -161,6 +163,21 @@ export function main() {
async.done();
});
}));
it('should unregister change detectors when components are disposed',
inject([AsyncTestCompleter], (async) => {
var app = platform().application([
applicationCommonProviders(),
applicationDomProviders(),
compilerProviders(),
testProviders
]);
app.bootstrap(HelloRootCmp)
.then((ref) => {
ref.dispose();
expect(() => app.tick()).not.toThrow();
async.done();
});
}));
it("should make the provided bindings available to the application component",
inject([AsyncTestCompleter], (async) => {