chore(test): rename RootTestComponent to ComponentFixture

BREAKING CHANGE:

Before:

```
testComponentBuilder.createAsync(MyComponent).then(root: RootTestComponent => {
}
```

After:

```
testComponentBuilder.createAsync(MyComponent).then(fixture: ComponentFixture => {
}
```

Closes #4711
This commit is contained in:
Julie Ralph 2015-10-31 09:50:19 -07:00
parent a16214c614
commit 686457890d
25 changed files with 1128 additions and 1121 deletions

View File

@ -22,14 +22,14 @@ import {DOM} from 'angular2/src/core/dom/dom_adapter';
import {DebugElement, DebugElement_} from 'angular2/src/core/debug/debug_element'; import {DebugElement, DebugElement_} from 'angular2/src/core/debug/debug_element';
export abstract class RootTestComponent { export abstract class ComponentFixture {
debugElement: DebugElement; debugElement: DebugElement;
abstract detectChanges(): void; abstract detectChanges(): void;
abstract destroy(): void; abstract destroy(): void;
} }
export class RootTestComponent_ extends RootTestComponent { export class ComponentFixture_ extends ComponentFixture {
/** @internal */ /** @internal */
_componentRef: ComponentRef; _componentRef: ComponentRef;
/** @internal */ /** @internal */
@ -53,7 +53,7 @@ export class RootTestComponent_ extends RootTestComponent {
var _nextRootElementId = 0; var _nextRootElementId = 0;
/** /**
* Builds a RootTestComponent for use in component level tests. * Builds a ComponentFixture for use in component level tests.
*/ */
@Injectable() @Injectable()
export class TestComponentBuilder { export class TestComponentBuilder {
@ -186,11 +186,11 @@ export class TestComponentBuilder {
} }
/** /**
* Builds and returns a RootTestComponent. * Builds and returns a ComponentFixture.
* *
* @return {Promise<RootTestComponent>} * @return {Promise<ComponentFixture>}
*/ */
createAsync(rootComponentType: Type): Promise<RootTestComponent> { createAsync(rootComponentType: Type): Promise<ComponentFixture> {
var mockDirectiveResolver = this._injector.get(DirectiveResolver); var mockDirectiveResolver = this._injector.get(DirectiveResolver);
var mockViewResolver = this._injector.get(ViewResolver); var mockViewResolver = this._injector.get(ViewResolver);
this._viewOverrides.forEach((view, type) => mockViewResolver.setView(type, view)); this._viewOverrides.forEach((view, type) => mockViewResolver.setView(type, view));
@ -220,6 +220,6 @@ export class TestComponentBuilder {
return this._injector.get(DynamicComponentLoader) return this._injector.get(DynamicComponentLoader)
.loadAsRoot(rootComponentType, `#${rootElId}`, this._injector) .loadAsRoot(rootComponentType, `#${rootElId}`, this._injector)
.then((componentRef) => { return new RootTestComponent_(componentRef); }); .then((componentRef) => { return new ComponentFixture_(componentRef); });
} }
} }

View File

@ -137,14 +137,14 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(ParentComp) tcb.createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
var childEls = rootTestComponent.debugElement.children; var childEls = componentFixture.debugElement.children;
// The root is a lone component, and has no children in the light dom. // The root is a lone component, and has no children in the light dom.
expect(childEls.length).toEqual(0); expect(childEls.length).toEqual(0);
var rootCompChildren = rootTestComponent.debugElement.componentViewChildren; var rootCompChildren = componentFixture.debugElement.componentViewChildren;
// The root component has 4 elements in its shadow view. // The root component has 4 elements in its shadow view.
expect(rootCompChildren.length).toEqual(4); expect(rootCompChildren.length).toEqual(4);
expect(DOM.hasClass(rootCompChildren[0].nativeElement, 'parent')).toBe(true); expect(DOM.hasClass(rootCompChildren[0].nativeElement, 'parent')).toBe(true);
@ -185,10 +185,10 @@ export function main() {
it('should list child elements within viewports', it('should list child elements within viewports',
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(UsingFor).then((rootTestComponent) => { tcb.createAsync(UsingFor).then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
var childEls = rootTestComponent.debugElement.componentViewChildren; var childEls = componentFixture.debugElement.componentViewChildren;
// TODO should this count include the <template> element? // TODO should this count include the <template> element?
expect(childEls.length).toEqual(5); expect(childEls.length).toEqual(5);
@ -203,10 +203,10 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(ParentComp) tcb.createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
var childTestEls = rootTestComponent.debugElement.queryAll(By.directive(MessageDir)); var childTestEls = componentFixture.debugElement.queryAll(By.directive(MessageDir));
expect(childTestEls.length).toBe(4); expect(childTestEls.length).toBe(4);
expect(DOM.hasClass(childTestEls[0].nativeElement, 'parent')).toBe(true); expect(DOM.hasClass(childTestEls[0].nativeElement, 'parent')).toBe(true);
@ -221,10 +221,10 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(ParentComp) tcb.createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
var parentEl = rootTestComponent.debugElement.componentViewChildren[0]; var parentEl = componentFixture.debugElement.componentViewChildren[0];
var childTestEls = parentEl.queryAll(By.directive(MessageDir), Scope.light); var childTestEls = parentEl.queryAll(By.directive(MessageDir), Scope.light);
@ -239,11 +239,11 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(ParentComp) tcb.createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
var childTestEls = var childTestEls =
rootTestComponent.debugElement.queryAll(By.directive(MessageDir), Scope.view); componentFixture.debugElement.queryAll(By.directive(MessageDir), Scope.view);
expect(childTestEls.length).toBe(2); expect(childTestEls.length).toBe(2);
expect(DOM.hasClass(childTestEls[0].nativeElement, 'parent')).toBe(true); expect(DOM.hasClass(childTestEls[0].nativeElement, 'parent')).toBe(true);
@ -257,10 +257,10 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(ParentComp) tcb.createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.componentViewChildren[0].inject(Logger).log) expect(componentFixture.debugElement.componentViewChildren[0].inject(Logger).log)
.toEqual(['parent', 'nestedparent', 'child', 'nestedchild']); .toEqual(['parent', 'nestedparent', 'child', 'nestedchild']);
async.done(); async.done();
@ -271,19 +271,19 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(EventsComp) tcb.createAsync(EventsComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.componentInstance.clicked).toBe(false); expect(componentFixture.debugElement.componentInstance.clicked).toBe(false);
expect(rootTestComponent.debugElement.componentInstance.customed).toBe(false); expect(componentFixture.debugElement.componentInstance.customed).toBe(false);
rootTestComponent.debugElement.componentViewChildren[0].triggerEventHandler( componentFixture.debugElement.componentViewChildren[0].triggerEventHandler(
'click', <Event>{}); 'click', <Event>{});
expect(rootTestComponent.debugElement.componentInstance.clicked).toBe(true); expect(componentFixture.debugElement.componentInstance.clicked).toBe(true);
rootTestComponent.debugElement.componentViewChildren[1].triggerEventHandler( componentFixture.debugElement.componentViewChildren[1].triggerEventHandler(
'myevent', <Event>{}); 'myevent', <Event>{});
expect(rootTestComponent.debugElement.componentInstance.customed).toBe(true); expect(componentFixture.debugElement.componentInstance.customed).toBe(true);
async.done(); async.done();
}); });

View File

@ -34,8 +34,8 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(MyComp, '<div some-dir></div>') tcb.overrideTemplate(MyComp, '<div some-dir></div>')
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTestComponent) => { .then((componentFixture) => {
expect(inspectNativeElement(rootTestComponent.debugElement.nativeElement) expect(inspectNativeElement(componentFixture.debugElement.nativeElement)
.componentInstance) .componentInstance)
.toBeAnInstanceOf(MyComp); .toBeAnInstanceOf(MyComp);
@ -47,10 +47,9 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(MyComp, '') tcb.overrideTemplate(MyComp, '')
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.destroy(); componentFixture.destroy();
expect(inspectNativeElement(rootTestComponent.debugElement.nativeElement)) expect(inspectNativeElement(componentFixture.debugElement.nativeElement)).toBe(null);
.toBe(null);
async.done(); async.done();
}); });
@ -62,8 +61,8 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(MyComp, '') tcb.overrideTemplate(MyComp, '')
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTestComponent) => { .then((componentFixture) => {
expect(global['ng']['probe'](rootTestComponent.debugElement.nativeElement) expect(global['ng']['probe'](componentFixture.debugElement.nativeElement)
.componentInstance) .componentInstance)
.toBeAnInstanceOf(MyComp); .toBeAnInstanceOf(MyComp);

View File

@ -1,5 +1,5 @@
import { import {
RootTestComponent, ComponentFixture,
AsyncTestCompleter, AsyncTestCompleter,
TestComponentBuilder, TestComponentBuilder,
beforeEach, beforeEach,
@ -19,9 +19,9 @@ import {Component, View, NgFor, provide} from 'angular2/angular2';
import {NgClass} from 'angular2/src/core/directives/ng_class'; import {NgClass} from 'angular2/src/core/directives/ng_class';
import {APP_VIEW_POOL_CAPACITY} from 'angular2/src/core/linker/view_pool'; import {APP_VIEW_POOL_CAPACITY} from 'angular2/src/core/linker/view_pool';
function detectChangesAndCheck(rootTC: RootTestComponent, classes: string, elIndex: number = 0) { function detectChangesAndCheck(fixture: ComponentFixture, classes: string, elIndex: number = 0) {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.componentViewChildren[elIndex].nativeElement.className) expect(fixture.debugElement.componentViewChildren[elIndex].nativeElement.className)
.toEqual(classes); .toEqual(classes);
} }
@ -36,12 +36,12 @@ export function main() {
var template = '<div *ng-for="var item of items" [ng-class]="item"></div>'; var template = '<div *ng-for="var item of items" [ng-class]="item"></div>';
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [['0']]; fixture.debugElement.componentInstance.items = [['0']];
rootTC.detectChanges(); fixture.detectChanges();
rootTC.debugElement.componentInstance.items = [['1']]; fixture.debugElement.componentInstance.items = [['1']];
detectChangesAndCheck(rootTC, '1', 1); detectChangesAndCheck(fixture, '1', 1);
async.done(); async.done();
}); });
@ -57,8 +57,8 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
async.done(); async.done();
}); });
})); }));
@ -70,8 +70,8 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo-bar fooBar'); detectChangesAndCheck(fixture, 'foo-bar fooBar');
async.done(); async.done();
}); });
})); }));
@ -82,11 +82,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.condition = false; fixture.debugElement.componentInstance.condition = false;
detectChangesAndCheck(rootTC, 'bar'); detectChangesAndCheck(fixture, 'bar');
async.done(); async.done();
}); });
@ -98,17 +98,17 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'bar', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'bar', true);
detectChangesAndCheck(rootTC, 'foo bar'); detectChangesAndCheck(fixture, 'foo bar');
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'baz', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'baz', true);
detectChangesAndCheck(rootTC, 'foo bar baz'); detectChangesAndCheck(fixture, 'foo bar baz');
StringMapWrapper.delete(rootTC.debugElement.componentInstance.objExpr, 'bar'); StringMapWrapper.delete(fixture.debugElement.componentInstance.objExpr, 'bar');
detectChangesAndCheck(rootTC, 'foo baz'); detectChangesAndCheck(fixture, 'foo baz');
async.done(); async.done();
}); });
@ -120,14 +120,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.objExpr = {foo: true, bar: true}; fixture.debugElement.componentInstance.objExpr = {foo: true, bar: true};
detectChangesAndCheck(rootTC, 'foo bar'); detectChangesAndCheck(fixture, 'foo bar');
rootTC.debugElement.componentInstance.objExpr = {baz: true}; fixture.debugElement.componentInstance.objExpr = {baz: true};
detectChangesAndCheck(rootTC, 'baz'); detectChangesAndCheck(fixture, 'baz');
async.done(); async.done();
}); });
@ -139,14 +139,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.objExpr = null; fixture.debugElement.componentInstance.objExpr = null;
detectChangesAndCheck(rootTC, ''); detectChangesAndCheck(fixture, '');
rootTC.debugElement.componentInstance.objExpr = {'foo': false, 'bar': true}; fixture.debugElement.componentInstance.objExpr = {'foo': false, 'bar': true};
detectChangesAndCheck(rootTC, 'bar'); detectChangesAndCheck(fixture, 'bar');
async.done(); async.done();
}); });
@ -161,8 +161,8 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo bar foo-bar fooBar'); detectChangesAndCheck(fixture, 'foo bar foo-bar fooBar');
async.done(); async.done();
}); });
})); }));
@ -173,18 +173,18 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
var arrExpr: string[] = rootTC.debugElement.componentInstance.arrExpr; var arrExpr: string[] = fixture.debugElement.componentInstance.arrExpr;
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
arrExpr.push('bar'); arrExpr.push('bar');
detectChangesAndCheck(rootTC, 'foo bar'); detectChangesAndCheck(fixture, 'foo bar');
arrExpr[1] = 'baz'; arrExpr[1] = 'baz';
detectChangesAndCheck(rootTC, 'foo baz'); detectChangesAndCheck(fixture, 'foo baz');
ListWrapper.remove(rootTC.debugElement.componentInstance.arrExpr, 'baz'); ListWrapper.remove(fixture.debugElement.componentInstance.arrExpr, 'baz');
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
async.done(); async.done();
}); });
@ -196,11 +196,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.arrExpr = ['bar']; fixture.debugElement.componentInstance.arrExpr = ['bar'];
detectChangesAndCheck(rootTC, 'bar'); detectChangesAndCheck(fixture, 'bar');
async.done(); async.done();
}); });
@ -212,11 +212,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.arrExpr = ['bar']; fixture.debugElement.componentInstance.arrExpr = ['bar'];
detectChangesAndCheck(rootTC, 'foo bar'); detectChangesAndCheck(fixture, 'foo bar');
async.done(); async.done();
}); });
@ -228,10 +228,10 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.arrExpr = ['', ' ']; fixture.debugElement.componentInstance.arrExpr = ['', ' '];
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
async.done(); async.done();
}); });
@ -243,10 +243,10 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.arrExpr = [' bar ']; fixture.debugElement.componentInstance.arrExpr = [' bar '];
detectChangesAndCheck(rootTC, 'foo bar'); detectChangesAndCheck(fixture, 'foo bar');
async.done(); async.done();
}); });
@ -261,16 +261,16 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
var setExpr = new Set<string>(); var setExpr = new Set<string>();
setExpr.add('bar'); setExpr.add('bar');
rootTC.debugElement.componentInstance.setExpr = setExpr; fixture.debugElement.componentInstance.setExpr = setExpr;
detectChangesAndCheck(rootTC, 'bar'); detectChangesAndCheck(fixture, 'bar');
setExpr = new Set<string>(); setExpr = new Set<string>();
setExpr.add('baz'); setExpr.add('baz');
rootTC.debugElement.componentInstance.setExpr = setExpr; fixture.debugElement.componentInstance.setExpr = setExpr;
detectChangesAndCheck(rootTC, 'baz'); detectChangesAndCheck(fixture, 'baz');
async.done(); async.done();
}); });
@ -284,8 +284,8 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo bar foo-bar fooBar'); detectChangesAndCheck(fixture, 'foo bar foo-bar fooBar');
async.done(); async.done();
}); });
})); }));
@ -296,15 +296,15 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.strExpr = 'foo bar'; fixture.debugElement.componentInstance.strExpr = 'foo bar';
detectChangesAndCheck(rootTC, 'foo bar'); detectChangesAndCheck(fixture, 'foo bar');
rootTC.debugElement.componentInstance.strExpr = 'baz'; fixture.debugElement.componentInstance.strExpr = 'baz';
detectChangesAndCheck(rootTC, 'baz'); detectChangesAndCheck(fixture, 'baz');
async.done(); async.done();
}); });
@ -316,11 +316,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.strExpr = null; fixture.debugElement.componentInstance.strExpr = null;
detectChangesAndCheck(rootTC, ''); detectChangesAndCheck(fixture, '');
async.done(); async.done();
}); });
@ -332,11 +332,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
rootTC.debugElement.componentInstance.strExpr = null; fixture.debugElement.componentInstance.strExpr = null;
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
async.done(); async.done();
}); });
@ -348,9 +348,9 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.strExpr = ''; fixture.debugElement.componentInstance.strExpr = '';
detectChangesAndCheck(rootTC, 'foo'); detectChangesAndCheck(fixture, 'foo');
async.done(); async.done();
}); });
@ -366,15 +366,15 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'bar', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'bar', true);
detectChangesAndCheck(rootTC, 'init foo bar'); detectChangesAndCheck(fixture, 'init foo bar');
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'foo', false); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'foo', false);
detectChangesAndCheck(rootTC, 'init bar'); detectChangesAndCheck(fixture, 'init bar');
rootTC.debugElement.componentInstance.objExpr = null; fixture.debugElement.componentInstance.objExpr = null;
detectChangesAndCheck(rootTC, 'init foo'); detectChangesAndCheck(fixture, 'init foo');
async.done(); async.done();
}); });
@ -386,15 +386,15 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'bar', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'bar', true);
detectChangesAndCheck(rootTC, `init foo bar`); detectChangesAndCheck(fixture, `init foo bar`);
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'foo', false); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'foo', false);
detectChangesAndCheck(rootTC, `init bar`); detectChangesAndCheck(fixture, `init bar`);
rootTC.debugElement.componentInstance.objExpr = null; fixture.debugElement.componentInstance.objExpr = null;
detectChangesAndCheck(rootTC, `init foo`); detectChangesAndCheck(fixture, `init foo`);
async.done(); async.done();
}); });
@ -406,15 +406,15 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'bar', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'bar', true);
detectChangesAndCheck(rootTC, `init foo bar`); detectChangesAndCheck(fixture, `init foo bar`);
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'foo', false); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'foo', false);
detectChangesAndCheck(rootTC, `init bar`); detectChangesAndCheck(fixture, `init bar`);
rootTC.debugElement.componentInstance.objExpr = null; fixture.debugElement.componentInstance.objExpr = null;
detectChangesAndCheck(rootTC, `init foo`); detectChangesAndCheck(fixture, `init foo`);
async.done(); async.done();
}); });
@ -427,17 +427,17 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'init foo baz'); detectChangesAndCheck(fixture, 'init foo baz');
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'bar', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'bar', true);
detectChangesAndCheck(rootTC, 'init foo baz bar'); detectChangesAndCheck(fixture, 'init foo baz bar');
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'foo', false); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'foo', false);
detectChangesAndCheck(rootTC, 'init baz bar'); detectChangesAndCheck(fixture, 'init baz bar');
rootTC.debugElement.componentInstance.condition = false; fixture.debugElement.componentInstance.condition = false;
detectChangesAndCheck(rootTC, 'init bar'); detectChangesAndCheck(fixture, 'init bar');
async.done(); async.done();
}); });
@ -449,17 +449,17 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
detectChangesAndCheck(rootTC, 'init foo'); detectChangesAndCheck(fixture, 'init foo');
StringMapWrapper.set(rootTC.debugElement.componentInstance.objExpr, 'bar', true); StringMapWrapper.set(fixture.debugElement.componentInstance.objExpr, 'bar', true);
detectChangesAndCheck(rootTC, 'init foo bar'); detectChangesAndCheck(fixture, 'init foo bar');
rootTC.debugElement.componentInstance.strExpr = 'baz'; fixture.debugElement.componentInstance.strExpr = 'baz';
detectChangesAndCheck(rootTC, 'init bar baz foo'); detectChangesAndCheck(fixture, 'init bar baz foo');
rootTC.debugElement.componentInstance.objExpr = null; fixture.debugElement.componentInstance.objExpr = null;
detectChangesAndCheck(rootTC, 'init baz'); detectChangesAndCheck(fixture, 'init baz');
async.done(); async.done();
}); });

View File

@ -29,9 +29,9 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('1;2;'); expect(fixture.debugElement.nativeElement).toHaveText('1;2;');
async.done(); async.done();
}); });
})); }));
@ -40,13 +40,13 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
(<number[]>rootTC.debugElement.componentInstance.items).push(3); (<number[]>fixture.debugElement.componentInstance.items).push(3);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('1;2;3;'); expect(fixture.debugElement.nativeElement).toHaveText('1;2;3;');
async.done(); async.done();
}); });
})); }));
@ -55,13 +55,13 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
ListWrapper.removeAt(rootTC.debugElement.componentInstance.items, 1); ListWrapper.removeAt(fixture.debugElement.componentInstance.items, 1);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('1;'); expect(fixture.debugElement.nativeElement).toHaveText('1;');
async.done(); async.done();
}); });
})); }));
@ -70,14 +70,14 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
ListWrapper.removeAt(rootTC.debugElement.componentInstance.items, 0); ListWrapper.removeAt(fixture.debugElement.componentInstance.items, 0);
(<number[]>rootTC.debugElement.componentInstance.items).push(1); (<number[]>fixture.debugElement.componentInstance.items).push(1);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('2;1;'); expect(fixture.debugElement.nativeElement).toHaveText('2;1;');
async.done(); async.done();
}); });
})); }));
@ -86,14 +86,14 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [0, 1, 2, 3, 4, 5]; fixture.debugElement.componentInstance.items = [0, 1, 2, 3, 4, 5];
rootTC.detectChanges(); fixture.detectChanges();
rootTC.debugElement.componentInstance.items = [6, 2, 7, 0, 4, 8]; fixture.debugElement.componentInstance.items = [6, 2, 7, 0, 4, 8];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('6;2;7;0;4;8;'); expect(fixture.debugElement.nativeElement).toHaveText('6;2;7;0;4;8;');
async.done(); async.done();
}); });
})); }));
@ -104,25 +104,26 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
// INIT // INIT
rootTC.debugElement.componentInstance.items = [{'name': 'misko'}, {'name': 'shyam'}]; fixture.debugElement.componentInstance.items =
rootTC.detectChanges(); [{'name': 'misko'}, {'name': 'shyam'}];
expect(rootTC.debugElement.nativeElement).toHaveText('misko;shyam;'); fixture.detectChanges();
expect(fixture.debugElement.nativeElement).toHaveText('misko;shyam;');
// GROW // GROW
(<any[]>rootTC.debugElement.componentInstance.items).push({'name': 'adam'}); (<any[]>fixture.debugElement.componentInstance.items).push({'name': 'adam'});
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('misko;shyam;adam;'); expect(fixture.debugElement.nativeElement).toHaveText('misko;shyam;adam;');
// SHRINK // SHRINK
ListWrapper.removeAt(rootTC.debugElement.componentInstance.items, 2); ListWrapper.removeAt(fixture.debugElement.componentInstance.items, 2);
ListWrapper.removeAt(rootTC.debugElement.componentInstance.items, 0); ListWrapper.removeAt(fixture.debugElement.componentInstance.items, 0);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('shyam;'); expect(fixture.debugElement.nativeElement).toHaveText('shyam;');
async.done(); async.done();
}); });
})); }));
@ -132,9 +133,9 @@ export function main() {
var template = '<ul><li template="ng-for #item of null">{{item}};</li></ul>'; var template = '<ul><li template="ng-for #item of null">{{item}};</li></ul>';
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
async.done(); async.done();
}); });
})); }));
@ -143,17 +144,17 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('1;2;'); expect(fixture.debugElement.nativeElement).toHaveText('1;2;');
rootTC.debugElement.componentInstance.items = null; fixture.debugElement.componentInstance.items = null;
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
rootTC.debugElement.componentInstance.items = [1, 2, 3]; fixture.debugElement.componentInstance.items = [1, 2, 3];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('1;2;3;'); expect(fixture.debugElement.nativeElement).toHaveText('1;2;3;');
async.done(); async.done();
}); });
})); }));
@ -162,12 +163,12 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('1;2;'); expect(fixture.debugElement.nativeElement).toHaveText('1;2;');
rootTC.debugElement.componentInstance.items = 'whaaa'; fixture.debugElement.componentInstance.items = 'whaaa';
expect(() => rootTC.detectChanges()).toThrowError(); expect(() => fixture.detectChanges()).toThrowError();
async.done(); async.done();
}); });
})); }));
@ -176,11 +177,11 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideTemplate(TestComponent, TEMPLATE) tcb.overrideTemplate(TestComponent, TEMPLATE)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
var a = new Foo(); var a = new Foo();
rootTC.debugElement.componentInstance.items = [a, a]; fixture.debugElement.componentInstance.items = [a, a];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('foo;foo;'); expect(fixture.debugElement.nativeElement).toHaveText('foo;foo;');
async.done(); async.done();
}); });
})); }));
@ -197,16 +198,16 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [['a', 'b'], ['c']]; fixture.debugElement.componentInstance.items = [['a', 'b'], ['c']];
rootTC.detectChanges(); fixture.detectChanges();
rootTC.detectChanges(); fixture.detectChanges();
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('a-2;b-2;|c-1;|'); expect(fixture.debugElement.nativeElement).toHaveText('a-2;b-2;|c-1;|');
rootTC.debugElement.componentInstance.items = [['e'], ['f', 'g']]; fixture.debugElement.componentInstance.items = [['e'], ['f', 'g']];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('e-1;|f-2;g-2;|'); expect(fixture.debugElement.nativeElement).toHaveText('e-1;|f-2;g-2;|');
async.done(); async.done();
}); });
@ -221,14 +222,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [['a', 'b'], ['c']]; fixture.debugElement.componentInstance.items = [['a', 'b'], ['c']];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('a-2;b-2;c-1;'); expect(fixture.debugElement.nativeElement).toHaveText('a-2;b-2;c-1;');
rootTC.debugElement.componentInstance.items = [['e'], ['f', 'g']]; fixture.debugElement.componentInstance.items = [['e'], ['f', 'g']];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('e-1;f-2;g-2;'); expect(fixture.debugElement.nativeElement).toHaveText('e-1;f-2;g-2;');
async.done(); async.done();
}); });
})); }));
@ -240,14 +241,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; fixture.debugElement.componentInstance.items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('0123456789'); expect(fixture.debugElement.nativeElement).toHaveText('0123456789');
rootTC.debugElement.componentInstance.items = [1, 2, 6, 7, 4, 3, 5, 8, 9, 0]; fixture.debugElement.componentInstance.items = [1, 2, 6, 7, 4, 3, 5, 8, 9, 0];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('0123456789'); expect(fixture.debugElement.nativeElement).toHaveText('0123456789');
async.done(); async.done();
}); });
})); }));
@ -259,14 +260,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [0, 1, 2]; fixture.debugElement.componentInstance.items = [0, 1, 2];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('falsefalsetrue'); expect(fixture.debugElement.nativeElement).toHaveText('falsefalsetrue');
rootTC.debugElement.componentInstance.items = [2, 1]; fixture.debugElement.componentInstance.items = [2, 1];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('falsetrue'); expect(fixture.debugElement.nativeElement).toHaveText('falsetrue');
async.done(); async.done();
}); });
})); }));
@ -278,14 +279,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [0, 1, 2]; fixture.debugElement.componentInstance.items = [0, 1, 2];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('truefalsetrue'); expect(fixture.debugElement.nativeElement).toHaveText('truefalsetrue');
rootTC.debugElement.componentInstance.items = [2, 1]; fixture.debugElement.componentInstance.items = [2, 1];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('truefalse'); expect(fixture.debugElement.nativeElement).toHaveText('truefalse');
async.done(); async.done();
}); });
})); }));
@ -297,14 +298,14 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.items = [0, 1, 2, 3]; fixture.debugElement.componentInstance.items = [0, 1, 2, 3];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('falsetruefalsetrue'); expect(fixture.debugElement.nativeElement).toHaveText('falsetruefalsetrue');
rootTC.debugElement.componentInstance.items = [2, 1]; fixture.debugElement.componentInstance.items = [2, 1];
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('falsetrue'); expect(fixture.debugElement.nativeElement).toHaveText('falsetrue');
async.done(); async.done();
}); });
})); }));
@ -318,10 +319,10 @@ export function main() {
ComponentUsingTestComponent, ComponentUsingTestComponent,
'<test-cmp><li template="#item #i=index">{{i}}: {{item}};</li></test-cmp>') '<test-cmp><li template="#item #i=index">{{i}}: {{item}};</li></test-cmp>')
.createAsync(ComponentUsingTestComponent) .createAsync(ComponentUsingTestComponent)
.then((rootTC) => { .then((fixture) => {
var testComponent = rootTC.debugElement.componentViewChildren[0]; var testComponent = fixture.debugElement.componentViewChildren[0];
testComponent.componentInstance.items = ['a', 'b', 'c']; testComponent.componentInstance.items = ['a', 'b', 'c'];
rootTC.detectChanges(); fixture.detectChanges();
expect(testComponent.nativeElement).toHaveText('0: a;1: b;2: c;'); expect(testComponent.nativeElement).toHaveText('0: a;1: b;2: c;');
async.done(); async.done();

View File

@ -26,11 +26,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
async.done(); async.done();
}); });
})); }));
@ -42,11 +42,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello2'); expect(fixture.debugElement.nativeElement).toHaveText('hello2');
async.done(); async.done();
}); });
})); }));
@ -57,24 +57,24 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.booleanCondition = false; fixture.debugElement.componentInstance.booleanCondition = false;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(0); .toEqual(0);
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
rootTC.debugElement.componentInstance.booleanCondition = true; fixture.debugElement.componentInstance.booleanCondition = true;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
rootTC.debugElement.componentInstance.booleanCondition = false; fixture.debugElement.componentInstance.booleanCondition = false;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(0); .toEqual(0);
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
async.done(); async.done();
}); });
@ -87,36 +87,36 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.booleanCondition = false; fixture.debugElement.componentInstance.booleanCondition = false;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(0); .toEqual(0);
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
rootTC.debugElement.componentInstance.booleanCondition = true; fixture.debugElement.componentInstance.booleanCondition = true;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
rootTC.debugElement.componentInstance.nestedBooleanCondition = false; fixture.debugElement.componentInstance.nestedBooleanCondition = false;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(0); .toEqual(0);
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
rootTC.debugElement.componentInstance.nestedBooleanCondition = true; fixture.debugElement.componentInstance.nestedBooleanCondition = true;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
rootTC.debugElement.componentInstance.booleanCondition = false; fixture.debugElement.componentInstance.booleanCondition = false;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(0); .toEqual(0);
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
async.done(); async.done();
}); });
@ -133,25 +133,25 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(3); .toEqual(3);
expect(DOM.getText(rootTC.debugElement.nativeElement)) expect(DOM.getText(fixture.debugElement.nativeElement))
.toEqual('helloNumberhelloStringhelloFunction'); .toEqual('helloNumberhelloStringhelloFunction');
rootTC.debugElement.componentInstance.numberCondition = 0; fixture.debugElement.componentInstance.numberCondition = 0;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('helloString'); expect(fixture.debugElement.nativeElement).toHaveText('helloString');
rootTC.debugElement.componentInstance.numberCondition = 1; fixture.debugElement.componentInstance.numberCondition = 1;
rootTC.debugElement.componentInstance.stringCondition = "bar"; fixture.debugElement.componentInstance.stringCondition = "bar";
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('helloNumber'); expect(fixture.debugElement.nativeElement).toHaveText('helloNumber');
async.done(); async.done();
}); });
})); }));
@ -164,17 +164,17 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
rootTC.debugElement.componentInstance.numberCondition = 2; fixture.debugElement.componentInstance.numberCondition = 2;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(1); .toEqual(1);
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
async.done(); async.done();
}); });
@ -186,15 +186,16 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
DOM.addClass(DOM.querySelector(rootTC.debugElement.nativeElement, 'copy-me'), DOM.addClass(DOM.querySelector(fixture.debugElement.nativeElement, 'copy-me'),
"foo"); "foo");
rootTC.debugElement.componentInstance.numberCondition = 2; fixture.debugElement.componentInstance.numberCondition = 2;
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.hasClass( expect(
DOM.querySelector(rootTC.debugElement.nativeElement, 'copy-me'), "foo")) DOM.hasClass(DOM.querySelector(fixture.debugElement.nativeElement, 'copy-me'),
"foo"))
.toBe(true); .toBe(true);
async.done(); async.done();
@ -209,11 +210,11 @@ export function main() {
tcb.overrideTemplate(TestComponent, html) tcb.overrideTemplate(TestComponent, html)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
expect(() => rootTC.detectChanges()).toThrowError(); expect(() => fixture.detectChanges()).toThrowError();
expect(DOM.querySelectorAll(rootTC.debugElement.nativeElement, 'copy-me').length) expect(DOM.querySelectorAll(fixture.debugElement.nativeElement, 'copy-me').length)
.toEqual(0); .toEqual(0);
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
async.done(); async.done();
}); });
})); }));

View File

@ -30,9 +30,9 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual('40px'); .toEqual('40px');
@ -46,19 +46,19 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
var expr: Map<string, any>; var expr: Map<string, any>;
rootTC.debugElement.componentInstance.expr = {'max-width': '40px'}; fixture.debugElement.componentInstance.expr = {'max-width': '40px'};
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual('40px'); .toEqual('40px');
expr = rootTC.debugElement.componentInstance.expr; expr = fixture.debugElement.componentInstance.expr;
expr['max-width'] = '30%'; expr['max-width'] = '30%';
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual('30%'); .toEqual('30%');
@ -72,16 +72,16 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.expr = {'max-width': '40px'}; fixture.debugElement.componentInstance.expr = {'max-width': '40px'};
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual('40px'); .toEqual('40px');
StringMapWrapper.delete(rootTC.debugElement.componentInstance.expr, 'max-width'); StringMapWrapper.delete(fixture.debugElement.componentInstance.expr, 'max-width');
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual(''); .toEqual('');
@ -95,22 +95,22 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.expr = {'max-width': '40px'}; fixture.debugElement.componentInstance.expr = {'max-width': '40px'};
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual('40px'); .toEqual('40px');
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'font-size')) 'font-size'))
.toEqual('12px'); .toEqual('12px');
StringMapWrapper.delete(rootTC.debugElement.componentInstance.expr, 'max-width'); StringMapWrapper.delete(fixture.debugElement.componentInstance.expr, 'max-width');
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual(''); .toEqual('');
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'font-size')) 'font-size'))
.toEqual('12px'); .toEqual('12px');
@ -124,23 +124,23 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.expr = {'max-width': '40px'}; fixture.debugElement.componentInstance.expr = {'max-width': '40px'};
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual('40px'); .toEqual('40px');
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'font-size')) 'font-size'))
.toEqual('12px'); .toEqual('12px');
StringMapWrapper.delete(rootTC.debugElement.componentInstance.expr, 'max-width'); StringMapWrapper.delete(fixture.debugElement.componentInstance.expr, 'max-width');
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'font-size')) 'font-size'))
.toEqual('12px'); .toEqual('12px');
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getStyle(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getStyle(fixture.debugElement.componentViewChildren[0].nativeElement,
'max-width')) 'max-width'))
.toEqual(''); .toEqual('');

View File

@ -29,17 +29,17 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
rootTC.debugElement.componentInstance.switchValue = 'a'; fixture.debugElement.componentInstance.switchValue = 'a';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when a'); expect(fixture.debugElement.nativeElement).toHaveText('when a');
rootTC.debugElement.componentInstance.switchValue = 'b'; fixture.debugElement.componentInstance.switchValue = 'b';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when b'); expect(fixture.debugElement.nativeElement).toHaveText('when b');
async.done(); async.done();
}); });
@ -55,17 +55,17 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when default'); expect(fixture.debugElement.nativeElement).toHaveText('when default');
rootTC.debugElement.componentInstance.switchValue = 'a'; fixture.debugElement.componentInstance.switchValue = 'a';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when a'); expect(fixture.debugElement.nativeElement).toHaveText('when a');
rootTC.debugElement.componentInstance.switchValue = 'b'; fixture.debugElement.componentInstance.switchValue = 'b';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when default'); expect(fixture.debugElement.nativeElement).toHaveText('when default');
async.done(); async.done();
}); });
@ -85,18 +85,18 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement) expect(fixture.debugElement.nativeElement)
.toHaveText('when default1;when default2;'); .toHaveText('when default1;when default2;');
rootTC.debugElement.componentInstance.switchValue = 'a'; fixture.debugElement.componentInstance.switchValue = 'a';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when a1;when a2;'); expect(fixture.debugElement.nativeElement).toHaveText('when a1;when a2;');
rootTC.debugElement.componentInstance.switchValue = 'b'; fixture.debugElement.componentInstance.switchValue = 'b';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when b1;when b2;'); expect(fixture.debugElement.nativeElement).toHaveText('when b1;when b2;');
async.done(); async.done();
}); });
@ -115,28 +115,28 @@ export function main() {
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.debugElement.componentInstance.when1 = 'a'; fixture.debugElement.componentInstance.when1 = 'a';
rootTC.debugElement.componentInstance.when2 = 'b'; fixture.debugElement.componentInstance.when2 = 'b';
rootTC.debugElement.componentInstance.switchValue = 'a'; fixture.debugElement.componentInstance.switchValue = 'a';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when 1;'); expect(fixture.debugElement.nativeElement).toHaveText('when 1;');
rootTC.debugElement.componentInstance.switchValue = 'b'; fixture.debugElement.componentInstance.switchValue = 'b';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when 2;'); expect(fixture.debugElement.nativeElement).toHaveText('when 2;');
rootTC.debugElement.componentInstance.switchValue = 'c'; fixture.debugElement.componentInstance.switchValue = 'c';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when default;'); expect(fixture.debugElement.nativeElement).toHaveText('when default;');
rootTC.debugElement.componentInstance.when1 = 'c'; fixture.debugElement.componentInstance.when1 = 'c';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when 1;'); expect(fixture.debugElement.nativeElement).toHaveText('when 1;');
rootTC.debugElement.componentInstance.when1 = 'd'; fixture.debugElement.componentInstance.when1 = 'd';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('when default;'); expect(fixture.debugElement.nativeElement).toHaveText('when default;');
async.done(); async.done();
}); });

View File

@ -22,9 +22,9 @@ export function main() {
var template = '<div>{{text}}<span ng-non-bindable>{{text}}</span></div>'; var template = '<div>{{text}}<span ng-non-bindable>{{text}}</span></div>';
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('foo{{text}}'); expect(fixture.debugElement.nativeElement).toHaveText('foo{{text}}');
async.done(); async.done();
}); });
})); }));
@ -34,12 +34,12 @@ export function main() {
var template = '<div ng-non-bindable><span id=child test-dec>{{text}}</span></div>'; var template = '<div ng-non-bindable><span id=child test-dec>{{text}}</span></div>';
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
// We must use DOM.querySelector instead of rootTC.query here // We must use DOM.querySelector instead of fixture.query here
// since the elements inside are not compiled. // since the elements inside are not compiled.
var span = DOM.querySelector(rootTC.debugElement.nativeElement, '#child'); var span = DOM.querySelector(fixture.debugElement.nativeElement, '#child');
expect(DOM.hasClass(span, 'compiled')).toBeFalsy(); expect(DOM.hasClass(span, 'compiled')).toBeFalsy();
async.done(); async.done();
}); });
@ -50,9 +50,9 @@ export function main() {
var template = '<div><span id=child ng-non-bindable test-dec>{{text}}</span></div>'; var template = '<div><span id=child ng-non-bindable test-dec>{{text}}</span></div>';
tcb.overrideTemplate(TestComponent, template) tcb.overrideTemplate(TestComponent, template)
.createAsync(TestComponent) .createAsync(TestComponent)
.then((rootTC) => { .then((fixture) => {
rootTC.detectChanges(); fixture.detectChanges();
var span = DOM.querySelector(rootTC.debugElement.nativeElement, '#child'); var span = DOM.querySelector(fixture.debugElement.nativeElement, '#child');
expect(DOM.hasClass(span, 'compiled')).toBeTruthy(); expect(DOM.hasClass(span, 'compiled')).toBeTruthy();
async.done(); async.done();
}); });

View File

@ -1,6 +1,6 @@
import {Component, Directive, View, Output, EventEmitter} from 'angular2/angular2'; import {Component, Directive, View, Output, EventEmitter} from 'angular2/angular2';
import { import {
RootTestComponent, ComponentFixture,
afterEach, afterEach,
AsyncTestCompleter, AsyncTestCompleter,
TestComponentBuilder, TestComponentBuilder,
@ -51,12 +51,12 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"login": new Control("loginValue")}); new ControlGroup({"login": new Control("loginValue")});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("loginValue"); expect(input.nativeElement.value).toEqual("loginValue");
async.done(); async.done();
}); });
@ -70,10 +70,10 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
input.nativeElement.value = "updatedValue"; input.nativeElement.value = "updatedValue";
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
@ -90,22 +90,22 @@ export function main() {
<span>{{name}}</span> <span>{{name}}</span>
</div>`; </div>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.form = new ControlGroup({}); fixture.debugElement.componentInstance.form = new ControlGroup({});
rootTC.debugElement.componentInstance.name = 'old'; fixture.debugElement.componentInstance.name = 'old';
tick(); tick();
var form = rootTC.debugElement.query(By.css("form")); var form = fixture.debugElement.query(By.css("form"));
dispatchEvent(form.nativeElement, "submit"); dispatchEvent(form.nativeElement, "submit");
tick(); tick();
expect(rootTC.debugElement.componentInstance.name).toEqual('updated'); expect(fixture.debugElement.componentInstance.name).toEqual('updated');
}))); })));
it("should work with single controls", it("should work with single controls",
@ -114,11 +114,11 @@ export function main() {
var t = `<div><input type="text" [ng-form-control]="form"></div>`; var t = `<div><input type="text" [ng-form-control]="form"></div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = control; fixture.debugElement.componentInstance.form = control;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("loginValue"); expect(input.nativeElement.value).toEqual("loginValue");
input.nativeElement.value = "updatedValue"; input.nativeElement.value = "updatedValue";
@ -135,16 +135,16 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"login": new Control("oldValue")}); new ControlGroup({"login": new Control("oldValue")});
rootTC.detectChanges(); fixture.detectChanges();
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"login": new Control("newValue")}); new ControlGroup({"login": new Control("newValue")});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("newValue"); expect(input.nativeElement.value).toEqual("newValue");
async.done(); async.done();
}); });
@ -159,15 +159,15 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
login.updateValue("newValue"); login.updateValue("newValue");
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("newValue"); expect(input.nativeElement.value).toEqual("newValue");
async.done(); async.done();
}); });
@ -182,11 +182,11 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var loginEl = rootTC.debugElement.query(By.css("input")); var loginEl = fixture.debugElement.query(By.css("input"));
expect(login.touched).toBe(false); expect(login.touched).toBe(false);
dispatchEvent(loginEl.nativeElement, "blur"); dispatchEvent(loginEl.nativeElement, "blur");
@ -204,18 +204,18 @@ export function main() {
<input type="text" ng-control="text"> <input type="text" ng-control="text">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"text": new Control("old")}); new ControlGroup({"text": new Control("old")});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("old"); expect(input.nativeElement.value).toEqual("old");
input.nativeElement.value = "new"; input.nativeElement.value = "new";
dispatchEvent(input.nativeElement, "input"); dispatchEvent(input.nativeElement, "input");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"text": "new"}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"text": "new"});
async.done(); async.done();
}); });
})); }));
@ -226,17 +226,17 @@ export function main() {
<input ng-control="text"> <input ng-control="text">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"text": new Control("old")}); new ControlGroup({"text": new Control("old")});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("old"); expect(input.nativeElement.value).toEqual("old");
input.nativeElement.value = "new"; input.nativeElement.value = "new";
dispatchEvent(input.nativeElement, "input"); dispatchEvent(input.nativeElement, "input");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"text": "new"}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"text": "new"});
async.done(); async.done();
}); });
})); }));
@ -247,18 +247,18 @@ export function main() {
<textarea ng-control="text"></textarea> <textarea ng-control="text"></textarea>
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"text": new Control('old')}); new ControlGroup({"text": new Control('old')});
rootTC.detectChanges(); fixture.detectChanges();
var textarea = rootTC.debugElement.query(By.css("textarea")); var textarea = fixture.debugElement.query(By.css("textarea"));
expect(textarea.nativeElement.value).toEqual("old"); expect(textarea.nativeElement.value).toEqual("old");
textarea.nativeElement.value = "new"; textarea.nativeElement.value = "new";
dispatchEvent(textarea.nativeElement, "input"); dispatchEvent(textarea.nativeElement, "input");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"text": 'new'}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"text": 'new'});
async.done(); async.done();
}); });
})); }));
@ -269,18 +269,18 @@ export function main() {
<input type="checkbox" ng-control="checkbox"> <input type="checkbox" ng-control="checkbox">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"checkbox": new Control(true)}); new ControlGroup({"checkbox": new Control(true)});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.checked).toBe(true); expect(input.nativeElement.checked).toBe(true);
input.nativeElement.checked = false; input.nativeElement.checked = false;
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"checkbox": false}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"checkbox": false});
async.done(); async.done();
}); });
})); }));
@ -291,18 +291,18 @@ export function main() {
<input type="number" ng-control="num"> <input type="number" ng-control="num">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"num": new Control(10)}); new ControlGroup({"num": new Control(10)});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("10"); expect(input.nativeElement.value).toEqual("10");
input.nativeElement.value = "20"; input.nativeElement.value = "20";
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"num": 20}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"num": 20});
async.done(); async.done();
}); });
})); }));
@ -316,20 +316,20 @@ export function main() {
</select> </select>
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"city": new Control("SF")}); new ControlGroup({"city": new Control("SF")});
rootTC.detectChanges(); fixture.detectChanges();
var select = rootTC.debugElement.query(By.css("select")); var select = fixture.debugElement.query(By.css("select"));
var sfOption = rootTC.debugElement.query(By.css("option")); var sfOption = fixture.debugElement.query(By.css("option"));
expect(select.nativeElement.value).toEqual('SF'); expect(select.nativeElement.value).toEqual('SF');
expect(sfOption.nativeElement.selected).toBe(true); expect(sfOption.nativeElement.selected).toBe(true);
select.nativeElement.value = 'NYC'; select.nativeElement.value = 'NYC';
dispatchEvent(select.nativeElement, "change"); dispatchEvent(select.nativeElement, "change");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"city": 'NYC'}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"city": 'NYC'});
expect(sfOption.nativeElement.selected).toBe(false); expect(sfOption.nativeElement.selected).toBe(false);
async.done(); async.done();
}); });
@ -343,17 +343,18 @@ export function main() {
</select> </select>
</div>`; </div>`;
var rootTC; var fixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rtc) => rootTC = rtc); tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(compFixture) => fixture = compFixture);
tick(); tick();
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"city": new Control("NYC")}); new ControlGroup({"city": new Control("NYC")});
rootTC.debugElement.componentInstance.data = ['SF', 'NYC']; fixture.debugElement.componentInstance.data = ['SF', 'NYC'];
rootTC.detectChanges(); fixture.detectChanges();
tick(); tick();
var select = rootTC.debugElement.query(By.css('select')); var select = fixture.debugElement.query(By.css('select'));
expect(select.nativeElement.value).toEqual('NYC'); expect(select.nativeElement.value).toEqual('NYC');
}))); })));
@ -363,17 +364,17 @@ export function main() {
<input type="text" ng-control="name" wrapped-value> <input type="text" ng-control="name" wrapped-value>
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"name": new Control("aa")}); new ControlGroup({"name": new Control("aa")});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("!aa!"); expect(input.nativeElement.value).toEqual("!aa!");
input.nativeElement.value = "!bb!"; input.nativeElement.value = "!bb!";
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"name": "bb"}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"name": "bb"});
async.done(); async.done();
}); });
})); }));
@ -384,16 +385,16 @@ export function main() {
<my-input ng-control="name"></my-input> <my-input ng-control="name"></my-input>
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = fixture.debugElement.componentInstance.form =
new ControlGroup({"name": new Control("aa")}); new ControlGroup({"name": new Control("aa")});
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("my-input")); var input = fixture.debugElement.query(By.css("my-input"));
expect(input.componentInstance.value).toEqual("!aa!"); expect(input.componentInstance.value).toEqual("!aa!");
input.componentInstance.value = "!bb!"; input.componentInstance.value = "!bb!";
ObservableWrapper.subscribe(input.componentInstance.onChange, (value) => { ObservableWrapper.subscribe(input.componentInstance.onChange, (value) => {
expect(rootTC.debugElement.componentInstance.form.value).toEqual({"name": "bb"}); expect(fixture.debugElement.componentInstance.form.value).toEqual({"name": "bb"});
async.done(); async.done();
}); });
input.componentInstance.dispatchChangeEvent(); input.componentInstance.dispatchChangeEvent();
@ -414,13 +415,13 @@ export function main() {
<input type="text" ng-control="max" maxlength="3"> <input type="text" ng-control="max" maxlength="3">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var required = rootTC.debugElement.query(By.css("[required]")); var required = fixture.debugElement.query(By.css("[required]"));
var minLength = rootTC.debugElement.query(By.css("[minlength]")); var minLength = fixture.debugElement.query(By.css("[minlength]"));
var maxLength = rootTC.debugElement.query(By.css("[maxlength]")); var maxLength = fixture.debugElement.query(By.css("[maxlength]"));
required.nativeElement.value = ""; required.nativeElement.value = "";
minLength.nativeElement.value = "1"; minLength.nativeElement.value = "1";
@ -485,12 +486,12 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
expect(form.valid).toEqual(true); expect(form.valid).toEqual(true);
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
input.nativeElement.value = ""; input.nativeElement.value = "";
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
@ -510,16 +511,17 @@ export function main() {
<input type="text" ng-control="login"> <input type="text" ng-control="login">
</div>`; </div>`;
var rootTC; var fixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((root) => rootTC = root); tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((root) => fixture =
root);
tick(); tick();
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
expect(form.hasError("required", ["login"])).toEqual(true); expect(form.hasError("required", ["login"])).toEqual(true);
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
input.nativeElement.value = "wrong value"; input.nativeElement.value = "wrong value";
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
@ -548,11 +550,11 @@ export function main() {
</div> </div>
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
expect(input.nativeElement.value).toEqual("value"); expect(input.nativeElement.value).toEqual("value");
async.done(); async.done();
}); });
@ -569,10 +571,10 @@ export function main() {
</div> </div>
</div>`; </div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")); var input = fixture.debugElement.query(By.css("input"));
input.nativeElement.value = "updatedValue"; input.nativeElement.value = "updatedValue";
dispatchEvent(input.nativeElement, "change"); dispatchEvent(input.nativeElement, "change");
@ -591,46 +593,48 @@ export function main() {
var t = var t =
`<div [ng-form-model]="form"><input type="text" ng-control="name" [(ng-model)]="name"></div>`; `<div [ng-form-model]="form"><input type="text" ng-control="name" [(ng-model)]="name"></div>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((root) => { rootTC = root; }); tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = 'oldValue'; fixture.debugElement.componentInstance.name = 'oldValue';
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(input.value).toEqual("oldValue"); expect(input.value).toEqual("oldValue");
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
tick(); tick();
expect(rootTC.debugElement.componentInstance.name).toEqual("updatedValue"); expect(fixture.debugElement.componentInstance.name).toEqual("updatedValue");
}))); })));
it("should support ng-model for single fields", it("should support ng-model for single fields",
inject( inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => {
[TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => {
var form = new Control(""); var form = new Control("");
var t = `<div><input type="text" [ng-form-control]="form" [(ng-model)]="name"></div>`; var t =
`<div><input type="text" [ng-form-control]="form" [(ng-model)]="name"></div>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((root) => { rootTC = root; }); tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.debugElement.componentInstance.name = "oldValue"; fixture.debugElement.componentInstance.name = "oldValue";
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(input.value).toEqual("oldValue"); expect(input.value).toEqual("oldValue");
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
tick(); tick();
expect(rootTC.debugElement.componentInstance.name).toEqual("updatedValue"); expect(fixture.debugElement.componentInstance.name).toEqual("updatedValue");
}))); })));
describe("template-driven forms", () => { describe("template-driven forms", () => {
@ -642,14 +646,14 @@ export function main() {
</div> </div>
</form>`; </form>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = null; fixture.debugElement.componentInstance.name = null;
rootTC.detectChanges(); fixture.detectChanges();
var form = rootTC.debugElement.componentViewChildren[0].inject(NgForm); var form = fixture.debugElement.componentViewChildren[0].inject(NgForm);
expect(form.controls['user']).not.toBeDefined(); expect(form.controls['user']).not.toBeDefined();
tick(); tick();
@ -662,17 +666,17 @@ export function main() {
inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => { inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => {
var t = `<div><form (ng-submit)="name='updated'"></form></div>`; var t = `<div><form (ng-submit)="name='updated'"></form></div>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = 'old'; fixture.debugElement.componentInstance.name = 'old';
var form = rootTC.debugElement.query(By.css("form")); var form = fixture.debugElement.query(By.css("form"));
dispatchEvent(form.nativeElement, "submit"); dispatchEvent(form.nativeElement, "submit");
tick(); tick();
expect(rootTC.debugElement.componentInstance.name).toEqual("updated"); expect(fixture.debugElement.componentInstance.name).toEqual("updated");
}))); })));
it("should not create a template-driven form when ng-no-form is used", it("should not create a template-driven form when ng-no-form is used",
@ -680,11 +684,11 @@ export function main() {
var t = `<form ng-no-form> var t = `<form ng-no-form>
</form>`; </form>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.name = null; fixture.debugElement.componentInstance.name = null;
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.componentViewChildren.length).toEqual(0); expect(fixture.debugElement.componentViewChildren.length).toEqual(0);
async.done(); async.done();
}); });
})); }));
@ -697,20 +701,20 @@ export function main() {
</div> </div>
</form>`; </form>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = 'show'; fixture.debugElement.componentInstance.name = 'show';
rootTC.detectChanges(); fixture.detectChanges();
tick(); tick();
var form = rootTC.debugElement.componentViewChildren[0].inject(NgForm); var form = fixture.debugElement.componentViewChildren[0].inject(NgForm);
expect(form.controls['login']).toBeDefined(); expect(form.controls['login']).toBeDefined();
rootTC.debugElement.componentInstance.name = 'hide'; fixture.debugElement.componentInstance.name = 'hide';
rootTC.detectChanges(); fixture.detectChanges();
tick(); tick();
expect(form.controls['login']).not.toBeDefined(); expect(form.controls['login']).not.toBeDefined();
@ -725,19 +729,19 @@ export function main() {
</form>`; </form>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = 'show'; fixture.debugElement.componentInstance.name = 'show';
rootTC.detectChanges(); fixture.detectChanges();
tick(); tick();
var form = rootTC.debugElement.componentViewChildren[0].inject(NgForm); var form = fixture.debugElement.componentViewChildren[0].inject(NgForm);
expect(form.controls['user']).toBeDefined(); expect(form.controls['user']).toBeDefined();
rootTC.debugElement.componentInstance.name = 'hide'; fixture.debugElement.componentInstance.name = 'hide';
rootTC.detectChanges(); fixture.detectChanges();
tick(); tick();
expect(form.controls['user']).not.toBeDefined(); expect(form.controls['user']).not.toBeDefined();
@ -749,22 +753,22 @@ export function main() {
<input type="text" ng-control="name" [(ng-model)]="name"> <input type="text" ng-control="name" [(ng-model)]="name">
</form>`; </form>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = "oldValue"; fixture.debugElement.componentInstance.name = "oldValue";
rootTC.detectChanges(); fixture.detectChanges();
tick(); tick();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(input.value).toEqual("oldValue"); expect(input.value).toEqual("oldValue");
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
tick(); tick();
expect(rootTC.debugElement.componentInstance.name).toEqual("updatedValue"); expect(fixture.debugElement.componentInstance.name).toEqual("updatedValue");
}))); })));
@ -772,21 +776,21 @@ export function main() {
inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => { inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => {
var t = `<div><input type="text" [(ng-model)]="name"></div>`; var t = `<div><input type="text" [(ng-model)]="name"></div>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = "oldValue"; fixture.debugElement.componentInstance.name = "oldValue";
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(input.value).toEqual("oldValue"); expect(input.value).toEqual("oldValue");
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
tick(); tick();
expect(rootTC.debugElement.componentInstance.name).toEqual("updatedValue"); expect(fixture.debugElement.componentInstance.name).toEqual("updatedValue");
}))); })));
}); });
@ -798,21 +802,21 @@ export function main() {
var t = `<div><input type="text" [ng-form-control]="form"></div>`; var t = `<div><input type="text" [ng-form-control]="form"></div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(sortedClassList(input)).toEqual(['ng-invalid', 'ng-pristine', 'ng-untouched']); expect(sortedClassList(input)).toEqual(['ng-invalid', 'ng-pristine', 'ng-untouched']);
dispatchEvent(input, "blur"); dispatchEvent(input, "blur");
rootTC.detectChanges(); fixture.detectChanges();
expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-touched"]); expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-touched"]);
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
rootTC.detectChanges(); fixture.detectChanges();
expect(sortedClassList(input)).toEqual(["ng-dirty", "ng-touched", "ng-valid"]); expect(sortedClassList(input)).toEqual(["ng-dirty", "ng-touched", "ng-valid"]);
async.done(); async.done();
@ -825,21 +829,21 @@ export function main() {
var t = `<form [ng-form-model]="form"><input type="text" ng-control="name"></form>`; var t = `<form [ng-form-model]="form"><input type="text" ng-control="name"></form>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-untouched"]); expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-untouched"]);
dispatchEvent(input, "blur"); dispatchEvent(input, "blur");
rootTC.detectChanges(); fixture.detectChanges();
expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-touched"]); expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-touched"]);
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
rootTC.detectChanges(); fixture.detectChanges();
expect(sortedClassList(input)).toEqual(["ng-dirty", "ng-touched", "ng-valid"]); expect(sortedClassList(input)).toEqual(["ng-dirty", "ng-touched", "ng-valid"]);
async.done(); async.done();
@ -850,21 +854,21 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
var t = `<div><input [(ng-model)]="name" required></div>`; var t = `<div><input [(ng-model)]="name" required></div>`;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((rootTC) => { tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then((fixture) => {
rootTC.debugElement.componentInstance.name = ""; fixture.debugElement.componentInstance.name = "";
rootTC.detectChanges(); fixture.detectChanges();
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-untouched"]); expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-untouched"]);
dispatchEvent(input, "blur"); dispatchEvent(input, "blur");
rootTC.detectChanges(); fixture.detectChanges();
expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-touched"]); expect(sortedClassList(input)).toEqual(["ng-invalid", "ng-pristine", "ng-touched"]);
input.value = "updatedValue"; input.value = "updatedValue";
dispatchEvent(input, "change"); dispatchEvent(input, "change");
rootTC.detectChanges(); fixture.detectChanges();
expect(sortedClassList(input)).toEqual(["ng-dirty", "ng-touched", "ng-valid"]); expect(sortedClassList(input)).toEqual(["ng-dirty", "ng-touched", "ng-valid"]);
async.done(); async.done();
@ -879,27 +883,27 @@ export function main() {
var t = var t =
`<div><input type="text" [ng-form-control]="form" [(ng-model)]="name"></div>`; `<div><input type="text" [ng-form-control]="form" [(ng-model)]="name"></div>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.form = form; fixture.debugElement.componentInstance.form = form;
rootTC.detectChanges(); fixture.detectChanges();
// In Firefox, effective text selection in the real DOM requires an actual focus // In Firefox, effective text selection in the real DOM requires an actual focus
// of the field. This is not an issue in a new HTML document. // of the field. This is not an issue in a new HTML document.
if (browserDetection.isFirefox) { if (browserDetection.isFirefox) {
var fakeDoc = DOM.createHtmlDocument(); var fakeDoc = DOM.createHtmlDocument();
DOM.appendChild(fakeDoc.body, rootTC.debugElement.nativeElement); DOM.appendChild(fakeDoc.body, fixture.debugElement.nativeElement);
} }
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
input.value = "aa"; input.value = "aa";
input.selectionStart = 1; input.selectionStart = 1;
dispatchEvent(input, "change"); dispatchEvent(input, "change");
tick(); tick();
rootTC.detectChanges(); fixture.detectChanges();
// selection start has not changed because we did not reset the value // selection start has not changed because we did not reset the value
expect(input.selectionStart).toEqual(1); expect(input.selectionStart).toEqual(1);
@ -908,33 +912,33 @@ export function main() {
it("should update the view when the model is set back to what used to be in the view", it("should update the view when the model is set back to what used to be in the view",
inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => { inject([TestComponentBuilder], fakeAsync((tcb: TestComponentBuilder) => {
var t = `<input type="text" [(ng-model)]="name">`; var t = `<input type="text" [(ng-model)]="name">`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.debugElement.componentInstance.name = ""; fixture.debugElement.componentInstance.name = "";
rootTC.detectChanges(); fixture.detectChanges();
// Type "aa" into the input. // Type "aa" into the input.
var input = rootTC.debugElement.query(By.css("input")).nativeElement; var input = fixture.debugElement.query(By.css("input")).nativeElement;
input.value = "aa"; input.value = "aa";
input.selectionStart = 1; input.selectionStart = 1;
dispatchEvent(input, "change"); dispatchEvent(input, "change");
tick(); tick();
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.componentInstance.name).toEqual("aa"); expect(fixture.debugElement.componentInstance.name).toEqual("aa");
// Programatically update the input value to be "bb". // Programatically update the input value to be "bb".
rootTC.debugElement.componentInstance.name = "bb"; fixture.debugElement.componentInstance.name = "bb";
tick(); tick();
rootTC.detectChanges(); fixture.detectChanges();
expect(input.value).toEqual("bb"); expect(input.value).toEqual("bb");
// Programatically set it back to "aa". // Programatically set it back to "aa".
rootTC.debugElement.componentInstance.name = "aa"; fixture.debugElement.componentInstance.name = "aa";
tick(); tick();
rootTC.detectChanges(); fixture.detectChanges();
expect(input.value).toEqual("aa"); expect(input.value).toEqual("aa");
}))); })));
it("should not crash when validity is checked from a binding", it("should not crash when validity is checked from a binding",
@ -944,11 +948,11 @@ export function main() {
// fixed. // fixed.
var t = `<form><div ng-control-group="x" #x="form"> var t = `<form><div ng-control-group="x" #x="form">
<input type="text" ng-control="test"></div>{{x.valid}}</form>`; <input type="text" ng-control="test"></div>{{x.valid}}</form>`;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then( tcb.overrideTemplate(MyComp, t).createAsync(MyComp).then(
(root) => { rootTC = root; }); (root) => { fixture = root; });
tick(); tick();
rootTC.detectChanges(); fixture.detectChanges();
}))); })));
}); });
}); });

View File

@ -13,7 +13,7 @@ import {
it, it,
xit, xit,
TestComponentBuilder, TestComponentBuilder,
RootTestComponent ComponentFixture
} from 'angular2/testing_internal'; } from 'angular2/testing_internal';
import {OnDestroy} from 'angular2/lifecycle_hooks'; import {OnDestroy} from 'angular2/lifecycle_hooks';
@ -24,7 +24,7 @@ import {DynamicComponentLoader} from 'angular2/src/core/linker/dynamic_component
import {ElementRef} from 'angular2/src/core/linker/element_ref'; import {ElementRef} from 'angular2/src/core/linker/element_ref';
import {DOCUMENT} from 'angular2/src/core/render/render'; import {DOCUMENT} from 'angular2/src/core/render/render';
import {DOM} from 'angular2/src/core/dom/dom_adapter'; import {DOM} from 'angular2/src/core/dom/dom_adapter';
import {RootTestComponent_} from "angular2/src/testing/test_component_builder"; import {ComponentFixture_} from "angular2/src/testing/test_component_builder";
export function main() { export function main() {
describe('DynamicComponentLoader', function() { describe('DynamicComponentLoader', function() {
@ -232,7 +232,7 @@ export function main() {
DOM.appendChild(doc.body, rootEl); DOM.appendChild(doc.body, rootEl);
loader.loadAsRoot(ChildComp, null, injector) loader.loadAsRoot(ChildComp, null, injector)
.then((componentRef) => { .then((componentRef) => {
var el = new RootTestComponent_(componentRef); var el = new ComponentFixture_(componentRef);
expect(rootEl.parentNode).toBe(doc.body); expect(rootEl.parentNode).toBe(doc.body);
el.detectChanges(); el.detectChanges();

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@ import {
containsRegexp, containsRegexp,
stringifyElement, stringifyElement,
TestComponentBuilder, TestComponentBuilder,
RootTestComponent, ComponentFixture,
fakeAsync, fakeAsync,
tick tick
} from 'angular2/testing_internal'; } from 'angular2/testing_internal';
@ -293,7 +293,7 @@ export function main() {
{template: '<simple string-prop="text"></simple>', directives: [Simple]})) {template: '<simple string-prop="text"></simple>', directives: [Simple]}))
.overrideTemplate(Simple, '<ng-content></ng-content><p>P,</p>{{stringProp}}') .overrideTemplate(Simple, '<ng-content></ng-content><p>P,</p>{{stringProp}}')
.createAsync(MainComp) .createAsync(MainComp)
.then((main: RootTestComponent) => { .then((main: ComponentFixture) => {
main.detectChanges(); main.detectChanges();
@ -314,7 +314,7 @@ export function main() {
{template: '<simple string-prop="text"></simple>', directives: [Simple]})) {template: '<simple string-prop="text"></simple>', directives: [Simple]}))
.overrideTemplate(Simple, '<style></style><p>P,</p>{{stringProp}}') .overrideTemplate(Simple, '<style></style><p>P,</p>{{stringProp}}')
.createAsync(MainComp) .createAsync(MainComp)
.then((main: RootTestComponent) => { .then((main: ComponentFixture) => {
main.detectChanges(); main.detectChanges();
expect(main.debugElement.nativeElement).toHaveText('P,text'); expect(main.debugElement.nativeElement).toHaveText('P,text');

View File

@ -211,10 +211,10 @@ export function main() {
tcb.overrideTemplate(MyComp, template) tcb.overrideTemplate(MyComp, template)
.createAsync(MyComp) .createAsync(MyComp)
.then((rtc) => { .then((fixture) => {
rtc.debugElement.componentInstance.shouldShow = true; fixture.debugElement.componentInstance.shouldShow = true;
rtc.detectChanges(); fixture.detectChanges();
rtc.destroy(); fixture.destroy();
async.done(); async.done();
}); });

View File

@ -55,15 +55,15 @@ export function main() {
describe('integration', () => { describe('integration', () => {
it('should work with mutable objects', it('should work with mutable objects',
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(TestComp).then((rootTC) => { tcb.createAsync(TestComp).then((fixture) => {
let mutable: number[] = [1]; let mutable: number[] = [1];
rootTC.debugElement.componentInstance.data = mutable; fixture.debugElement.componentInstance.data = mutable;
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText("[\n 1\n]"); expect(fixture.debugElement.nativeElement).toHaveText("[\n 1\n]");
mutable.push(2); mutable.push(2);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText("[\n 1,\n 2\n]"); expect(fixture.debugElement.nativeElement).toHaveText("[\n 1,\n 2\n]");
async.done(); async.done();
}); });

View File

@ -91,15 +91,15 @@ export function main() {
describe('integration', () => { describe('integration', () => {
it('should work with mutable arrays', it('should work with mutable arrays',
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(TestComp).then((rootTC) => { tcb.createAsync(TestComp).then((fixture) => {
let mutable: number[] = [1, 2]; let mutable: number[] = [1, 2];
rootTC.debugElement.componentInstance.data = mutable; fixture.debugElement.componentInstance.data = mutable;
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('2'); expect(fixture.debugElement.nativeElement).toHaveText('2');
mutable.push(3); mutable.push(3);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('2,3'); expect(fixture.debugElement.nativeElement).toHaveText('2,3');
async.done(); async.done();
}); });

View File

@ -1,5 +1,5 @@
import { import {
RootTestComponent, ComponentFixture,
AsyncTestCompleter, AsyncTestCompleter,
TestComponentBuilder, TestComponentBuilder,
beforeEach, beforeEach,
@ -58,7 +58,7 @@ export function main() {
describe('Router lifecycle hooks', () => { describe('Router lifecycle hooks', () => {
var tcb: TestComponentBuilder; var tcb: TestComponentBuilder;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
var rtr; var rtr;
beforeEachBindings(() => [ beforeEachBindings(() => [
@ -87,7 +87,7 @@ export function main() {
directives: [RouterOutlet, RouterLink] directives: [RouterOutlet, RouterLink]
})) }))
.createAsync(MyComp) .createAsync(MyComp)
.then((tc) => { rootTC = tc; }); .then((tc) => { fixture = tc; });
} }
it('should call the onActivate hook', inject([AsyncTestCompleter], (async) => { it('should call the onActivate hook', inject([AsyncTestCompleter], (async) => {
@ -95,8 +95,8 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})])) .then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})]))
.then((_) => rtr.navigateByUrl('/on-activate')) .then((_) => rtr.navigateByUrl('/on-activate'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('activate cmp'); expect(fixture.debugElement.nativeElement).toHaveText('activate cmp');
expect(log).toEqual(['activate: null -> /on-activate']); expect(log).toEqual(['activate: null -> /on-activate']);
async.done(); async.done();
}); });
@ -114,8 +114,8 @@ export function main() {
}); });
rtr.navigateByUrl('/parent-activate/child-activate') rtr.navigateByUrl('/parent-activate/child-activate')
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('parent {activate cmp}'); expect(fixture.debugElement.nativeElement).toHaveText('parent {activate cmp}');
expect(log).toEqual([ expect(log).toEqual([
'parent activate: null -> /parent-activate', 'parent activate: null -> /parent-activate',
'activate: null -> /child-activate' 'activate: null -> /child-activate'
@ -131,8 +131,8 @@ export function main() {
.then((_) => rtr.navigateByUrl('/on-deactivate')) .then((_) => rtr.navigateByUrl('/on-deactivate'))
.then((_) => rtr.navigateByUrl('/a')) .then((_) => rtr.navigateByUrl('/a'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('A'); expect(fixture.debugElement.nativeElement).toHaveText('A');
expect(log).toEqual(['deactivate: /on-deactivate -> /a']); expect(log).toEqual(['deactivate: /on-deactivate -> /a']);
async.done(); async.done();
}); });
@ -147,13 +147,13 @@ export function main() {
ObservableWrapper.subscribe<string>(eventBus, (ev) => { ObservableWrapper.subscribe<string>(eventBus, (ev) => {
if (ev.startsWith('deactivate')) { if (ev.startsWith('deactivate')) {
completer.resolve(true); completer.resolve(true);
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('parent {deactivate cmp}'); expect(fixture.debugElement.nativeElement).toHaveText('parent {deactivate cmp}');
} }
}); });
rtr.navigateByUrl('/a').then((_) => { rtr.navigateByUrl('/a').then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('A'); expect(fixture.debugElement.nativeElement).toHaveText('A');
expect(log).toEqual([ expect(log).toEqual([
'deactivate: /child-deactivate -> null', 'deactivate: /child-deactivate -> null',
'parent deactivate: /parent-deactivate -> /a' 'parent deactivate: /parent-deactivate -> /a'
@ -169,16 +169,16 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})])) .then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})]))
.then((_) => rtr.navigateByUrl('/on-reuse/1/a')) .then((_) => rtr.navigateByUrl('/on-reuse/1/a'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(log).toEqual([]); expect(log).toEqual([]);
expect(rootTC.debugElement.nativeElement).toHaveText('reuse {A}'); expect(fixture.debugElement.nativeElement).toHaveText('reuse {A}');
expect(cmpInstanceCount).toBe(1); expect(cmpInstanceCount).toBe(1);
}) })
.then((_) => rtr.navigateByUrl('/on-reuse/2/b')) .then((_) => rtr.navigateByUrl('/on-reuse/2/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(log).toEqual(['reuse: /on-reuse/1 -> /on-reuse/2']); expect(log).toEqual(['reuse: /on-reuse/1 -> /on-reuse/2']);
expect(rootTC.debugElement.nativeElement).toHaveText('reuse {B}'); expect(fixture.debugElement.nativeElement).toHaveText('reuse {B}');
expect(cmpInstanceCount).toBe(1); expect(cmpInstanceCount).toBe(1);
async.done(); async.done();
}); });
@ -191,16 +191,16 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})])) .then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})]))
.then((_) => rtr.navigateByUrl('/never-reuse/1/a')) .then((_) => rtr.navigateByUrl('/never-reuse/1/a'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(log).toEqual([]); expect(log).toEqual([]);
expect(rootTC.debugElement.nativeElement).toHaveText('reuse {A}'); expect(fixture.debugElement.nativeElement).toHaveText('reuse {A}');
expect(cmpInstanceCount).toBe(1); expect(cmpInstanceCount).toBe(1);
}) })
.then((_) => rtr.navigateByUrl('/never-reuse/2/b')) .then((_) => rtr.navigateByUrl('/never-reuse/2/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(log).toEqual([]); expect(log).toEqual([]);
expect(rootTC.debugElement.nativeElement).toHaveText('reuse {B}'); expect(fixture.debugElement.nativeElement).toHaveText('reuse {B}');
expect(cmpInstanceCount).toBe(2); expect(cmpInstanceCount).toBe(2);
async.done(); async.done();
}); });
@ -218,8 +218,8 @@ export function main() {
}); });
rtr.navigateByUrl('/can-activate/a') rtr.navigateByUrl('/can-activate/a')
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('canActivate {A}'); expect(fixture.debugElement.nativeElement).toHaveText('canActivate {A}');
expect(log).toEqual(['canActivate: null -> /can-activate']); expect(log).toEqual(['canActivate: null -> /can-activate']);
async.done(); async.done();
}); });
@ -238,8 +238,8 @@ export function main() {
}); });
rtr.navigateByUrl('/can-activate/a') rtr.navigateByUrl('/can-activate/a')
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
expect(log).toEqual(['canActivate: null -> /can-activate']); expect(log).toEqual(['canActivate: null -> /can-activate']);
async.done(); async.done();
}); });
@ -252,8 +252,8 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})])) .then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})]))
.then((_) => rtr.navigateByUrl('/can-deactivate/a')) .then((_) => rtr.navigateByUrl('/can-deactivate/a'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('canDeactivate {A}'); expect(fixture.debugElement.nativeElement).toHaveText('canDeactivate {A}');
expect(log).toEqual([]); expect(log).toEqual([]);
ObservableWrapper.subscribe<string>(eventBus, (ev) => { ObservableWrapper.subscribe<string>(eventBus, (ev) => {
@ -263,8 +263,8 @@ export function main() {
}); });
rtr.navigateByUrl('/a').then((_) => { rtr.navigateByUrl('/a').then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('A'); expect(fixture.debugElement.nativeElement).toHaveText('A');
expect(log).toEqual(['canDeactivate: /can-deactivate -> /a']); expect(log).toEqual(['canDeactivate: /can-deactivate -> /a']);
async.done(); async.done();
}); });
@ -277,8 +277,8 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})])) .then((_) => rtr.config([new Route({path: '/...', component: LifecycleCmp})]))
.then((_) => rtr.navigateByUrl('/can-deactivate/a')) .then((_) => rtr.navigateByUrl('/can-deactivate/a'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('canDeactivate {A}'); expect(fixture.debugElement.nativeElement).toHaveText('canDeactivate {A}');
expect(log).toEqual([]); expect(log).toEqual([]);
ObservableWrapper.subscribe<string>(eventBus, (ev) => { ObservableWrapper.subscribe<string>(eventBus, (ev) => {
@ -288,8 +288,8 @@ export function main() {
}); });
rtr.navigateByUrl('/a').then((_) => { rtr.navigateByUrl('/a').then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('canDeactivate {A}'); expect(fixture.debugElement.nativeElement).toHaveText('canDeactivate {A}');
expect(log).toEqual(['canDeactivate: /can-deactivate -> /a']); expect(log).toEqual(['canDeactivate: /can-deactivate -> /a']);
async.done(); async.done();
}); });

View File

@ -1,5 +1,5 @@
import { import {
RootTestComponent, ComponentFixture,
AsyncTestCompleter, AsyncTestCompleter,
TestComponentBuilder, TestComponentBuilder,
beforeEach, beforeEach,
@ -41,7 +41,7 @@ export function main() {
describe('navigation', () => { describe('navigation', () => {
var tcb: TestComponentBuilder; var tcb: TestComponentBuilder;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
var rtr; var rtr;
beforeEachBindings(() => [ beforeEachBindings(() => [
@ -70,7 +70,7 @@ export function main() {
directives: [RouterOutlet, RouterLink] directives: [RouterOutlet, RouterLink]
})) }))
.createAsync(MyComp) .createAsync(MyComp)
.then((tc) => { rootTC = tc; }); .then((tc) => { fixture = tc; });
} }
it('should work in a simple case', inject([AsyncTestCompleter], (async) => { it('should work in a simple case', inject([AsyncTestCompleter], (async) => {
@ -78,8 +78,8 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/test', component: HelloCmp})])) .then((_) => rtr.config([new Route({path: '/test', component: HelloCmp})]))
.then((_) => rtr.navigateByUrl('/test')) .then((_) => rtr.navigateByUrl('/test'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
async.done(); async.done();
}); });
})); }));
@ -91,13 +91,13 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/user/:name', component: UserCmp})])) .then((_) => rtr.config([new Route({path: '/user/:name', component: UserCmp})]))
.then((_) => rtr.navigateByUrl('/user/brian')) .then((_) => rtr.navigateByUrl('/user/brian'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('hello brian'); expect(fixture.debugElement.nativeElement).toHaveText('hello brian');
}) })
.then((_) => rtr.navigateByUrl('/user/igor')) .then((_) => rtr.navigateByUrl('/user/igor'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('hello igor'); expect(fixture.debugElement.nativeElement).toHaveText('hello igor');
async.done(); async.done();
}); });
})); }));
@ -108,8 +108,8 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/a/...', component: ParentCmp})])) .then((_) => rtr.config([new Route({path: '/a/...', component: ParentCmp})]))
.then((_) => rtr.navigateByUrl('/a/b')) .then((_) => rtr.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('outer { inner { hello } }'); expect(fixture.debugElement.nativeElement).toHaveText('outer { inner { hello } }');
async.done(); async.done();
}); });
})); }));
@ -120,8 +120,8 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/a/...', component: ParentCmp})])) .then((_) => rtr.config([new Route({path: '/a/...', component: ParentCmp})]))
.then((_) => rtr.navigateByUrl('/a')) .then((_) => rtr.navigateByUrl('/a'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('outer { inner { hello } }'); expect(fixture.debugElement.nativeElement).toHaveText('outer { inner { hello } }');
async.done(); async.done();
}); });
})); }));
@ -132,8 +132,8 @@ export function main() {
.then((_) => rtr.config([new AsyncRoute({path: '/a/...', loader: parentLoader})])) .then((_) => rtr.config([new AsyncRoute({path: '/a/...', loader: parentLoader})]))
.then((_) => rtr.navigateByUrl('/a/b')) .then((_) => rtr.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('outer { inner { hello } }'); expect(fixture.debugElement.nativeElement).toHaveText('outer { inner { hello } }');
async.done(); async.done();
}); });
})); }));
@ -148,8 +148,8 @@ export function main() {
])) ]))
.then((_) => rtr.navigateByUrl('/original')) .then((_) => rtr.navigateByUrl('/original'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('hello'); expect(fixture.debugElement.nativeElement).toHaveText('hello');
expect(location.urlChanges).toEqual(['/redirected']); expect(location.urlChanges).toEqual(['/redirected']);
async.done(); async.done();
}); });
@ -161,15 +161,15 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/team/:id/...', component: TeamCmp})])) .then((_) => rtr.config([new Route({path: '/team/:id/...', component: TeamCmp})]))
.then((_) => rtr.navigateByUrl('/team/angular/user/rado')) .then((_) => rtr.navigateByUrl('/team/angular/user/rado'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(cmpInstanceCount).toBe(1); expect(cmpInstanceCount).toBe(1);
expect(rootTC.debugElement.nativeElement).toHaveText('team angular { hello rado }'); expect(fixture.debugElement.nativeElement).toHaveText('team angular { hello rado }');
}) })
.then((_) => rtr.navigateByUrl('/team/angular/user/victor')) .then((_) => rtr.navigateByUrl('/team/angular/user/victor'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(cmpInstanceCount).toBe(1); expect(cmpInstanceCount).toBe(1);
expect(rootTC.debugElement.nativeElement) expect(fixture.debugElement.nativeElement)
.toHaveText('team angular { hello victor }'); .toHaveText('team angular { hello victor }');
async.done(); async.done();
}); });
@ -181,17 +181,17 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/team/:id/...', component: TeamCmp})])) .then((_) => rtr.config([new Route({path: '/team/:id/...', component: TeamCmp})]))
.then((_) => rtr.navigateByUrl('/team/angular/user/rado')) .then((_) => rtr.navigateByUrl('/team/angular/user/rado'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(cmpInstanceCount).toBe(1); expect(cmpInstanceCount).toBe(1);
expect(childCmpInstanceCount).toBe(1); expect(childCmpInstanceCount).toBe(1);
expect(rootTC.debugElement.nativeElement).toHaveText('team angular { hello rado }'); expect(fixture.debugElement.nativeElement).toHaveText('team angular { hello rado }');
}) })
.then((_) => rtr.navigateByUrl('/team/dart/user/rado')) .then((_) => rtr.navigateByUrl('/team/dart/user/rado'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(cmpInstanceCount).toBe(2); expect(cmpInstanceCount).toBe(2);
expect(childCmpInstanceCount).toBe(2); expect(childCmpInstanceCount).toBe(2);
expect(rootTC.debugElement.nativeElement).toHaveText('team dart { hello rado }'); expect(fixture.debugElement.nativeElement).toHaveText('team dart { hello rado }');
async.done(); async.done();
}); });
})); }));
@ -203,8 +203,8 @@ export function main() {
])) ]))
.then((_) => rtr.navigateByUrl('/route-data')) .then((_) => rtr.navigateByUrl('/route-data'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('true'); expect(fixture.debugElement.nativeElement).toHaveText('true');
async.done(); async.done();
}); });
})); }));
@ -218,8 +218,8 @@ export function main() {
])) ]))
.then((_) => rtr.navigateByUrl('/route-data')) .then((_) => rtr.navigateByUrl('/route-data'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('true'); expect(fixture.debugElement.nativeElement).toHaveText('true');
async.done(); async.done();
}); });
})); }));
@ -231,8 +231,8 @@ export function main() {
[new Route({path: '/route-data-default', component: RouteDataCmp})])) [new Route({path: '/route-data-default', component: RouteDataCmp})]))
.then((_) => rtr.navigateByUrl('/route-data-default')) .then((_) => rtr.navigateByUrl('/route-data-default'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText(''); expect(fixture.debugElement.nativeElement).toHaveText('');
async.done(); async.done();
}); });
})); }));
@ -243,8 +243,9 @@ export function main() {
.then((_) => rtr.config([new Route({path: '/...', component: AuxCmp})])) .then((_) => rtr.config([new Route({path: '/...', component: AuxCmp})]))
.then((_) => rtr.navigateByUrl('/hello(modal)')) .then((_) => rtr.navigateByUrl('/hello(modal)'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('main {hello} | aux {modal}'); expect(fixture.debugElement.nativeElement)
.toHaveText('main {hello} | aux {modal}');
async.done(); async.done();
}); });
})); }));

View File

@ -79,10 +79,10 @@ export function main() {
it('should rethrow exceptions from component constructors', it('should rethrow exceptions from component constructors',
inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => { inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => {
tcb.createAsync(AppCmp).then((rootTC) => { tcb.createAsync(AppCmp).then((fixture) => {
var router = rootTC.debugElement.componentInstance.router; var router = fixture.debugElement.componentInstance.router;
PromiseWrapper.catchError(router.navigateByUrl('/cause-error'), (error) => { PromiseWrapper.catchError(router.navigateByUrl('/cause-error'), (error) => {
expect(rootTC.debugElement.nativeElement).toHaveText('outer { oh no }'); expect(fixture.debugElement.nativeElement).toHaveText('outer { oh no }');
expect(error).toContainError('oops!'); expect(error).toContainError('oops!');
async.done(); async.done();
}); });
@ -98,8 +98,8 @@ export function main() {
inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => { inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => {
tcb.createAsync(HierarchyAppCmp) tcb.createAsync(HierarchyAppCmp)
.then((rootTC) => { .then((fixture) => {
var router = rootTC.debugElement.componentInstance.router; var router = fixture.debugElement.componentInstance.router;
var position = 0; var position = 0;
var flipped = false; var flipped = false;
var history = var history =
@ -110,8 +110,8 @@ export function main() {
] ]
router.subscribe((_) => { router.subscribe((_) => {
var location = rootTC.debugElement.componentInstance.location; var location = fixture.debugElement.componentInstance.location;
var element = rootTC.debugElement.nativeElement; var element = fixture.debugElement.nativeElement;
var path = location.path(); var path = location.path();
var entry = history[position]; var entry = history[position];
@ -150,12 +150,12 @@ export function main() {
inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => { inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => {
tcb.createAsync(HierarchyAppCmp) tcb.createAsync(HierarchyAppCmp)
.then((rootTC) => { .then((fixture) => {
var router = rootTC.debugElement.componentInstance.router; var router = fixture.debugElement.componentInstance.router;
router.subscribe((_) => { router.subscribe((_) => {
expect(rootTC.debugElement.nativeElement) expect(fixture.debugElement.nativeElement)
.toHaveText('root { parent { hello } }'); .toHaveText('root { parent { hello } }');
expect(rootTC.debugElement.componentInstance.location.path()) expect(fixture.debugElement.componentInstance.location.path())
.toEqual('/parent/child'); .toEqual('/parent/child');
async.done(); async.done();
}); });
@ -171,12 +171,12 @@ export function main() {
(async, tcb: TestComponentBuilder) => { (async, tcb: TestComponentBuilder) => {
tcb.createAsync(HierarchyAppCmp) tcb.createAsync(HierarchyAppCmp)
.then((rootTC) => { .then((fixture) => {
var router = rootTC.debugElement.componentInstance.router; var router = fixture.debugElement.componentInstance.router;
router.subscribe((_) => { router.subscribe((_) => {
expect(rootTC.debugElement.nativeElement) expect(fixture.debugElement.nativeElement)
.toHaveText('root { parent { hello } }'); .toHaveText('root { parent { hello } }');
expect(rootTC.debugElement.componentInstance.location.path()) expect(fixture.debugElement.componentInstance.location.path())
.toEqual('/my/app/parent/child'); .toEqual('/my/app/parent/child');
async.done(); async.done();
}); });
@ -194,12 +194,12 @@ export function main() {
it('should recognize and return querystring params with the injected RouteParams', it('should recognize and return querystring params with the injected RouteParams',
inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => { inject([AsyncTestCompleter, TestComponentBuilder], (async, tcb: TestComponentBuilder) => {
tcb.createAsync(QueryStringAppCmp) tcb.createAsync(QueryStringAppCmp)
.then((rootTC) => { .then((fixture) => {
var router = rootTC.debugElement.componentInstance.router; var router = fixture.debugElement.componentInstance.router;
router.subscribe((_) => { router.subscribe((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement) expect(fixture.debugElement.nativeElement)
.toHaveText('qParam = search-for-something'); .toHaveText('qParam = search-for-something');
/* /*
expect(applicationRef.hostComponent.location.path()) expect(applicationRef.hostComponent.location.path())
@ -207,7 +207,7 @@ export function main() {
async.done(); async.done();
}); });
router.navigateByUrl('/qs?q=search-for-something'); router.navigateByUrl('/qs?q=search-for-something');
rootTC.detectChanges(); fixture.detectChanges();
}); });
})); }));
}); });

View File

@ -1,5 +1,5 @@
import { import {
RootTestComponent, ComponentFixture,
AsyncTestCompleter, AsyncTestCompleter,
beforeEach, beforeEach,
ddescribe, ddescribe,
@ -43,7 +43,7 @@ import {DOM} from 'angular2/src/core/dom/dom_adapter';
export function main() { export function main() {
describe('router-link directive', function() { describe('router-link directive', function() {
var tcb: TestComponentBuilder; var tcb: TestComponentBuilder;
var rootTC: RootTestComponent; var fixture: ComponentFixture;
var router, location; var router, location;
beforeEachBindings(() => [ beforeEachBindings(() => [
@ -70,7 +70,7 @@ export function main() {
directives: [RouterOutlet, RouterLink] directives: [RouterOutlet, RouterLink]
})) }))
.createAsync(MyComp) .createAsync(MyComp)
.then((tc) => { rootTC = tc; }); .then((tc) => { fixture = tc; });
} }
it('should generate absolute hrefs that include the base href', it('should generate absolute hrefs that include the base href',
@ -81,8 +81,8 @@ export function main() {
[new Route({path: '/user', component: UserCmp, name: 'User'})])) [new Route({path: '/user', component: UserCmp, name: 'User'})]))
.then((_) => router.navigateByUrl('/a/b')) .then((_) => router.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(getHref(rootTC)).toEqual('/my/base/user'); expect(getHref(fixture)).toEqual('/my/base/user');
async.done(); async.done();
}); });
})); }));
@ -94,8 +94,8 @@ export function main() {
[new Route({path: '/user', component: UserCmp, name: 'User'})])) [new Route({path: '/user', component: UserCmp, name: 'User'})]))
.then((_) => router.navigateByUrl('/a/b')) .then((_) => router.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(getHref(rootTC)).toEqual('/user'); expect(getHref(fixture)).toEqual('/user');
async.done(); async.done();
}); });
})); }));
@ -107,10 +107,10 @@ export function main() {
[new Route({path: '/user/:name', component: UserCmp, name: 'User'})])) [new Route({path: '/user/:name', component: UserCmp, name: 'User'})]))
.then((_) => router.navigateByUrl('/a/b')) .then((_) => router.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.debugElement.componentInstance.name = 'brian'; fixture.debugElement.componentInstance.name = 'brian';
rootTC.detectChanges(); fixture.detectChanges();
expect(rootTC.debugElement.nativeElement).toHaveText('brian'); expect(fixture.debugElement.nativeElement).toHaveText('brian');
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[0].nativeElement, expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[0].nativeElement,
'href')) 'href'))
.toEqual('/user/brian'); .toEqual('/user/brian');
async.done(); async.done();
@ -125,8 +125,8 @@ export function main() {
[new Route({path: '/page/:number', component: SiblingPageCmp, name: 'Page'})])) [new Route({path: '/page/:number', component: SiblingPageCmp, name: 'Page'})]))
.then((_) => router.navigateByUrl('/page/1')) .then((_) => router.navigateByUrl('/page/1'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[1] expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[1]
.componentViewChildren[0] .componentViewChildren[0]
.nativeElement, .nativeElement,
'href')) 'href'))
@ -144,8 +144,8 @@ export function main() {
])) ]))
.then((_) => router.navigateByUrl('/page/1')) .then((_) => router.navigateByUrl('/page/1'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[1] expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[1]
.componentViewChildren[0] .componentViewChildren[0]
.nativeElement, .nativeElement,
'href')) 'href'))
@ -162,8 +162,8 @@ export function main() {
])) ]))
.then((_) => router.navigateByUrl('/book/1984/page/1')) .then((_) => router.navigateByUrl('/book/1984/page/1'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[1] expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[1]
.componentViewChildren[0] .componentViewChildren[0]
.nativeElement, .nativeElement,
'href')) 'href'))
@ -181,7 +181,7 @@ export function main() {
.then((_) => router.navigateByUrl('/book/1984/page/1')) .then((_) => router.navigateByUrl('/book/1984/page/1'))
.then((_) => { .then((_) => {
var link = ListWrapper.toJSON(['Book', {number: 100}]); var link = ListWrapper.toJSON(['Book', {number: 100}]);
expect(() => rootTC.detectChanges()) expect(() => fixture.detectChanges())
.toThrowErrorWith( .toThrowErrorWith(
`Link "${link}" is ambiguous, use "./" or "../" to disambiguate.`); `Link "${link}" is ambiguous, use "./" or "../" to disambiguate.`);
async.done(); async.done();
@ -200,8 +200,8 @@ export function main() {
])) ]))
.then((_) => router.navigate(['/ChildWithGrandchild'])) .then((_) => router.navigate(['/ChildWithGrandchild']))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[1] expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[1]
.componentViewChildren[0] .componentViewChildren[0]
.nativeElement, .nativeElement,
'href')) 'href'))
@ -217,14 +217,14 @@ export function main() {
[new Route({path: '/book/:title/...', component: BookCmp, name: 'Book'})])) [new Route({path: '/book/:title/...', component: BookCmp, name: 'Book'})]))
.then((_) => router.navigateByUrl('/book/1984/page/1')) .then((_) => router.navigateByUrl('/book/1984/page/1'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[1] expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[1]
.componentViewChildren[0] .componentViewChildren[0]
.nativeElement, .nativeElement,
'href')) 'href'))
.toEqual('/book/1984/page/100'); .toEqual('/book/1984/page/100');
expect(DOM.getAttribute(rootTC.debugElement.componentViewChildren[1] expect(DOM.getAttribute(fixture.debugElement.componentViewChildren[1]
.componentViewChildren[2] .componentViewChildren[2]
.componentViewChildren[0] .componentViewChildren[0]
.nativeElement, .nativeElement,
@ -245,9 +245,9 @@ export function main() {
<a [router-link]="['./BetterChild']" class="better-child-link">Better Child</a> <a [router-link]="['./BetterChild']" class="better-child-link">Better Child</a>
<router-outlet></router-outlet>`)) <router-outlet></router-outlet>`))
.then((_) => { .then((_) => {
var element = rootTC.debugElement.nativeElement; var element = fixture.debugElement.nativeElement;
rootTC.detectChanges(); fixture.detectChanges();
var link1 = DOM.querySelector(element, '.child-link'); var link1 = DOM.querySelector(element, '.child-link');
var link2 = DOM.querySelector(element, '.better-child-link'); var link2 = DOM.querySelector(element, '.better-child-link');
@ -256,7 +256,7 @@ export function main() {
expect(link2).not.toHaveCssClass('router-link-active'); expect(link2).not.toHaveCssClass('router-link-active');
router.subscribe((_) => { router.subscribe((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(link1).not.toHaveCssClass('router-link-active'); expect(link1).not.toHaveCssClass('router-link-active');
expect(link2).toHaveCssClass('router-link-active'); expect(link2).toHaveCssClass('router-link-active');
@ -280,9 +280,9 @@ export function main() {
<a [router-link]="['./ChildWithGrandchild/Grandchild']" class="child-with-grandchild-link">Better Child</a> <a [router-link]="['./ChildWithGrandchild/Grandchild']" class="child-with-grandchild-link">Better Child</a>
<router-outlet></router-outlet>`)) <router-outlet></router-outlet>`))
.then((_) => { .then((_) => {
var element = rootTC.debugElement.nativeElement; var element = fixture.debugElement.nativeElement;
rootTC.detectChanges(); fixture.detectChanges();
var link1 = DOM.querySelector(element, '.child-link'); var link1 = DOM.querySelector(element, '.child-link');
var link2 = DOM.querySelector(element, '.child-with-grandchild-link'); var link2 = DOM.querySelector(element, '.child-with-grandchild-link');
@ -291,7 +291,7 @@ export function main() {
expect(link2).not.toHaveCssClass('router-link-active'); expect(link2).not.toHaveCssClass('router-link-active');
router.subscribe((_) => { router.subscribe((_) => {
rootTC.detectChanges(); fixture.detectChanges();
expect(link1).not.toHaveCssClass('router-link-active'); expect(link1).not.toHaveCssClass('router-link-active');
expect(link2).toHaveCssClass('router-link-active'); expect(link2).toHaveCssClass('router-link-active');
@ -312,7 +312,7 @@ export function main() {
describe('when clicked', () => { describe('when clicked', () => {
var clickOnElement = function(view) { var clickOnElement = function(view) {
var anchorEl = rootTC.debugElement.componentViewChildren[0].nativeElement; var anchorEl = fixture.debugElement.componentViewChildren[0].nativeElement;
var dispatchedEvent = DOM.createMouseEvent('click'); var dispatchedEvent = DOM.createMouseEvent('click');
DOM.dispatchEvent(anchorEl, dispatchedEvent); DOM.dispatchEvent(anchorEl, dispatchedEvent);
return dispatchedEvent; return dispatchedEvent;
@ -324,9 +324,9 @@ export function main() {
[new Route({path: '/user', component: UserCmp, name: 'User'})])) [new Route({path: '/user', component: UserCmp, name: 'User'})]))
.then((_) => router.navigateByUrl('/a/b')) .then((_) => router.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
var dispatchedEvent = clickOnElement(rootTC); var dispatchedEvent = clickOnElement(fixture);
expect(DOM.isPrevented(dispatchedEvent)).toBe(true); expect(DOM.isPrevented(dispatchedEvent)).toBe(true);
// router navigation is async. // router navigation is async.
@ -345,9 +345,9 @@ export function main() {
[new Route({path: '/user', component: UserCmp, name: 'User'})])) [new Route({path: '/user', component: UserCmp, name: 'User'})]))
.then((_) => router.navigateByUrl('/a/b')) .then((_) => router.navigateByUrl('/a/b'))
.then((_) => { .then((_) => {
rootTC.detectChanges(); fixture.detectChanges();
var dispatchedEvent = clickOnElement(rootTC); var dispatchedEvent = clickOnElement(fixture);
expect(DOM.isPrevented(dispatchedEvent)).toBe(true); expect(DOM.isPrevented(dispatchedEvent)).toBe(true);
// router navigation is async. // router navigation is async.
@ -361,7 +361,7 @@ export function main() {
}); });
} }
function getHref(tc: RootTestComponent) { function getHref(tc: ComponentFixture) {
return DOM.getAttribute(tc.debugElement.componentViewChildren[0].nativeElement, 'href'); return DOM.getAttribute(tc.debugElement.componentViewChildren[0].nativeElement, 'href');
} }

View File

@ -95,10 +95,10 @@ export function main() {
it('should instantiate a component with valid DOM', it('should instantiate a component with valid DOM',
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(ChildComp).then((rootTestComponent) => { tcb.createAsync(ChildComp).then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Original Child'); expect(componentFixture.debugElement.nativeElement).toHaveText('Original Child');
async.done(); async.done();
}); });
})); }));
@ -106,13 +106,13 @@ export function main() {
it('should allow changing members of the component', it('should allow changing members of the component',
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.createAsync(MyIfComp).then((rootTestComponent) => { tcb.createAsync(MyIfComp).then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('MyIf()'); expect(componentFixture.debugElement.nativeElement).toHaveText('MyIf()');
rootTestComponent.debugElement.componentInstance.showMore = true; componentFixture.debugElement.componentInstance.showMore = true;
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('MyIf(More)'); expect(componentFixture.debugElement.nativeElement).toHaveText('MyIf(More)');
async.done(); async.done();
}); });
@ -123,9 +123,9 @@ export function main() {
tcb.overrideTemplate(MockChildComp, '<span>Mock</span>') tcb.overrideTemplate(MockChildComp, '<span>Mock</span>')
.createAsync(MockChildComp) .createAsync(MockChildComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Mock'); expect(componentFixture.debugElement.nativeElement).toHaveText('Mock');
async.done(); async.done();
}); });
@ -137,9 +137,9 @@ export function main() {
tcb.overrideView(ChildComp, tcb.overrideView(ChildComp,
new ViewMetadata({template: '<span>Modified {{childBinding}}</span>'})) new ViewMetadata({template: '<span>Modified {{childBinding}}</span>'}))
.createAsync(ChildComp) .createAsync(ChildComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Modified Child'); expect(componentFixture.debugElement.nativeElement).toHaveText('Modified Child');
async.done(); async.done();
}); });
@ -150,9 +150,9 @@ export function main() {
tcb.overrideDirective(ParentComp, ChildComp, MockChildComp) tcb.overrideDirective(ParentComp, ChildComp, MockChildComp)
.createAsync(ParentComp) .createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Parent(Mock)'); expect(componentFixture.debugElement.nativeElement).toHaveText('Parent(Mock)');
async.done(); async.done();
}); });
@ -165,9 +165,9 @@ export function main() {
tcb.overrideDirective(ParentComp, ChildComp, ChildWithChildComp) tcb.overrideDirective(ParentComp, ChildComp, ChildWithChildComp)
.overrideDirective(ChildWithChildComp, ChildChildComp, MockChildChildComp) .overrideDirective(ChildWithChildComp, ChildChildComp, MockChildChildComp)
.createAsync(ParentComp) .createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement) expect(componentFixture.debugElement.nativeElement)
.toHaveText('Parent(Original Child(ChildChild Mock))'); .toHaveText('Parent(Original Child(ChildChild Mock))');
async.done(); async.done();
@ -180,9 +180,9 @@ export function main() {
tcb.overrideProviders(TestBindingsComp, tcb.overrideProviders(TestBindingsComp,
[provide(FancyService, {useClass: MockFancyService})]) [provide(FancyService, {useClass: MockFancyService})])
.createAsync(TestBindingsComp) .createAsync(TestBindingsComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement) expect(componentFixture.debugElement.nativeElement)
.toHaveText('injected value: mocked out value'); .toHaveText('injected value: mocked out value');
async.done(); async.done();
}); });
@ -195,9 +195,9 @@ export function main() {
tcb.overrideViewProviders(TestViewBindingsComp, tcb.overrideViewProviders(TestViewBindingsComp,
[provide(FancyService, {useClass: MockFancyService})]) [provide(FancyService, {useClass: MockFancyService})])
.createAsync(TestViewBindingsComp) .createAsync(TestViewBindingsComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement) expect(componentFixture.debugElement.nativeElement)
.toHaveText('injected value: mocked out value'); .toHaveText('injected value: mocked out value');
async.done(); async.done();
}); });

View File

@ -243,23 +243,23 @@ export function main() {
it('should instantiate a component with valid DOM', it('should instantiate a component with valid DOM',
injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb.createAsync(ChildComp).then((rootTestComponent) => { return tcb.createAsync(ChildComp).then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Original Child'); expect(componentFixture.debugElement.nativeElement).toHaveText('Original Child');
}); });
})); }));
it('should allow changing members of the component', it('should allow changing members of the component',
injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => { injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb.createAsync(MyIfComp).then((rootTestComponent) => { return tcb.createAsync(MyIfComp).then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('MyIf()'); expect(componentFixture.debugElement.nativeElement).toHaveText('MyIf()');
rootTestComponent.debugElement.componentInstance.showMore = true; componentFixture.debugElement.componentInstance.showMore = true;
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('MyIf(More)'); expect(componentFixture.debugElement.nativeElement).toHaveText('MyIf(More)');
}); });
})); }));
@ -268,9 +268,9 @@ export function main() {
return tcb.overrideTemplate(MockChildComp, '<span>Mock</span>') return tcb.overrideTemplate(MockChildComp, '<span>Mock</span>')
.createAsync(MockChildComp) .createAsync(MockChildComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Mock'); expect(componentFixture.debugElement.nativeElement).toHaveText('Mock');
}); });
})); }));
@ -282,9 +282,9 @@ export function main() {
ChildComp, ChildComp,
new ViewMetadata({template: '<span>Modified {{childBinding}}</span>'})) new ViewMetadata({template: '<span>Modified {{childBinding}}</span>'}))
.createAsync(ChildComp) .createAsync(ChildComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Modified Child'); expect(componentFixture.debugElement.nativeElement).toHaveText('Modified Child');
}); });
})); }));
@ -294,9 +294,9 @@ export function main() {
return tcb.overrideDirective(ParentComp, ChildComp, MockChildComp) return tcb.overrideDirective(ParentComp, ChildComp, MockChildComp)
.createAsync(ParentComp) .createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement).toHaveText('Parent(Mock)'); expect(componentFixture.debugElement.nativeElement).toHaveText('Parent(Mock)');
}); });
})); }));
@ -308,9 +308,9 @@ export function main() {
return tcb.overrideDirective(ParentComp, ChildComp, ChildWithChildComp) return tcb.overrideDirective(ParentComp, ChildComp, ChildWithChildComp)
.overrideDirective(ChildWithChildComp, ChildChildComp, MockChildChildComp) .overrideDirective(ChildWithChildComp, ChildChildComp, MockChildChildComp)
.createAsync(ParentComp) .createAsync(ParentComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement) expect(componentFixture.debugElement.nativeElement)
.toHaveText('Parent(Original Child(ChildChild Mock))'); .toHaveText('Parent(Original Child(ChildChild Mock))');
}); });
@ -322,9 +322,9 @@ export function main() {
return tcb.overrideProviders(TestProvidersComp, return tcb.overrideProviders(TestProvidersComp,
[bind(FancyService).toClass(MockFancyService)]) [bind(FancyService).toClass(MockFancyService)])
.createAsync(TestProvidersComp) .createAsync(TestProvidersComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement) expect(componentFixture.debugElement.nativeElement)
.toHaveText('injected value: mocked out value'); .toHaveText('injected value: mocked out value');
}); });
})); }));
@ -336,9 +336,9 @@ export function main() {
return tcb.overrideViewProviders(TestViewProvidersComp, return tcb.overrideViewProviders(TestViewProvidersComp,
[bind(FancyService).toClass(MockFancyService)]) [bind(FancyService).toClass(MockFancyService)])
.createAsync(TestViewProvidersComp) .createAsync(TestViewProvidersComp)
.then((rootTestComponent) => { .then((componentFixture) => {
rootTestComponent.detectChanges(); componentFixture.detectChanges();
expect(rootTestComponent.debugElement.nativeElement) expect(componentFixture.debugElement.nativeElement)
.toHaveText('injected value: mocked out value'); .toHaveText('injected value: mocked out value');
}); });
})); }));

View File

@ -138,12 +138,12 @@ export function main() {
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
tcb.overrideView(MyComp, new ViewMetadata({template: '<div>{{ctxProp}}</div>'})) tcb.overrideView(MyComp, new ViewMetadata({template: '<div>{{ctxProp}}</div>'}))
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTC) => { .then((fixture) => {
var renderEl = getRenderElement(rootTC.debugElement.elementRef); var renderEl = getRenderElement(fixture.debugElement.elementRef);
expect(renderEl).toHaveText(''); expect(renderEl).toHaveText('');
rootTC.debugElement.componentInstance.ctxProp = 'Hello World!'; fixture.debugElement.componentInstance.ctxProp = 'Hello World!';
rootTC.detectChanges(); fixture.detectChanges();
expect(renderEl).toHaveText('Hello World!'); expect(renderEl).toHaveText('Hello World!');
async.done(); async.done();
@ -156,7 +156,7 @@ export function main() {
tcb.overrideView(MyComp, new ViewMetadata( tcb.overrideView(MyComp, new ViewMetadata(
{template: '<input [title]="y" style="position:absolute">'})) {template: '<input [title]="y" style="position:absolute">'}))
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTC) => { .then((fixture) => {
var checkSetters = (elr) => { var checkSetters = (elr) => {
var el = getRenderElement(elr); var el = getRenderElement(elr);
renderer.setElementProperty(elr, 'tabIndex', 1); renderer.setElementProperty(elr, 'tabIndex', 1);
@ -177,9 +177,9 @@ export function main() {
}; };
// root element // root element
checkSetters(rootTC.debugElement.elementRef); checkSetters(fixture.debugElement.elementRef);
// nested elements // nested elements
checkSetters(rootTC.debugElement.componentViewChildren[0].elementRef); checkSetters(fixture.debugElement.componentViewChildren[0].elementRef);
async.done(); async.done();
}); });
@ -192,17 +192,17 @@ export function main() {
directives: [NgIf] directives: [NgIf]
})) }))
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTC) => { .then((fixture) => {
var rootEl = getRenderElement(rootTC.debugElement.elementRef); var rootEl = getRenderElement(fixture.debugElement.elementRef);
expect(rootEl).toHaveText(''); expect(rootEl).toHaveText('');
rootTC.debugElement.componentInstance.ctxBoolProp = true; fixture.debugElement.componentInstance.ctxBoolProp = true;
rootTC.detectChanges(); fixture.detectChanges();
expect(rootEl).toHaveText('hello'); expect(rootEl).toHaveText('hello');
rootTC.debugElement.componentInstance.ctxBoolProp = false; fixture.debugElement.componentInstance.ctxBoolProp = false;
rootTC.detectChanges(); fixture.detectChanges();
expect(rootEl).toHaveText(''); expect(rootEl).toHaveText('');
async.done(); async.done();
@ -216,8 +216,8 @@ export function main() {
tcb.overrideView(MyComp, tcb.overrideView(MyComp,
new ViewMetadata({template: '<input [title]="y"></input>'})) new ViewMetadata({template: '<input [title]="y"></input>'}))
.createAsync(MyComp) .createAsync(MyComp)
.then((rootTC) => { .then((fixture) => {
var elRef = rootTC.debugElement.componentViewChildren[0].elementRef; var elRef = fixture.debugElement.componentViewChildren[0].elementRef;
renderer.invokeElementMethod(elRef, 'setAttribute', ['a', 'b']); renderer.invokeElementMethod(elRef, 'setAttribute', ['a', 'b']);
expect(DOM.getAttribute(getRenderElement(elRef), 'a')).toEqual('b'); expect(DOM.getAttribute(getRenderElement(elRef), 'a')).toEqual('b');

View File

@ -7,6 +7,6 @@
* *
*/ */
export * from './src/testing/testing'; export * from './src/testing/testing';
export {RootTestComponent, TestComponentBuilder} from './src/testing/test_component_builder'; export {ComponentFixture, TestComponentBuilder} from './src/testing/test_component_builder';
export * from './src/testing/test_injector'; export * from './src/testing/test_injector';
export * from './src/testing/fake_async'; export * from './src/testing/fake_async';

View File

@ -36,10 +36,9 @@ export function main() {
describe('button[md-button]', () => { describe('button[md-button]', () => {
it('should handle a click on the button', inject([AsyncTestCompleter], (async) => { it('should handle a click on the button', inject([AsyncTestCompleter], (async) => {
builder.createAsync(TestApp).then(rootTestComponent => { builder.createAsync(TestApp).then(fixture => {
let testComponent = rootTestComponent.debugElement.componentInstance; let testComponent = fixture.debugElement.componentInstance;
let buttonDebugElement = let buttonDebugElement = getChildDebugElement(fixture.debugElement, 'button');
getChildDebugElement(rootTestComponent.debugElement, 'button');
buttonDebugElement.nativeElement.click(); buttonDebugElement.nativeElement.click();
expect(testComponent.clickCount).toBe(1); expect(testComponent.clickCount).toBe(1);
@ -49,10 +48,9 @@ export function main() {
}), 1000); }), 1000);
it('should disable the button', inject([AsyncTestCompleter], (async) => { it('should disable the button', inject([AsyncTestCompleter], (async) => {
builder.createAsync(TestApp).then(rootTestComponent => { builder.createAsync(TestApp).then(fixture => {
let testAppComponent = rootTestComponent.debugElement.componentInstance; let testAppComponent = fixture.debugElement.componentInstance;
let buttonDebugElement = let buttonDebugElement = getChildDebugElement(fixture.debugElement, 'button');
getChildDebugElement(rootTestComponent.debugElement, 'button');
let buttonElement = buttonDebugElement.nativeElement; let buttonElement = buttonDebugElement.nativeElement;
// The button should initially be enabled. // The button should initially be enabled.
@ -60,7 +58,7 @@ export function main() {
// After the disabled binding has been changed. // After the disabled binding has been changed.
testAppComponent.isDisabled = true; testAppComponent.isDisabled = true;
rootTestComponent.detectChanges(); fixture.detectChanges();
// The button should should now be disabled. // The button should should now be disabled.
expect(buttonElement.disabled).toBe(true); expect(buttonElement.disabled).toBe(true);
@ -82,9 +80,9 @@ export function main() {
}); });
it('should remove disabled anchors from tab order', inject([AsyncTestCompleter], (async) => { it('should remove disabled anchors from tab order', inject([AsyncTestCompleter], (async) => {
builder.createAsync(TestApp).then(rootTestComponent => { builder.createAsync(TestApp).then(fixture => {
let testAppComponent = rootTestComponent.debugElement.componentInstance; let testAppComponent = fixture.debugElement.componentInstance;
let anchorDebugElement = getChildDebugElement(rootTestComponent.debugElement, 'a'); let anchorDebugElement = getChildDebugElement(fixture.debugElement, 'a');
let anchorElement = anchorDebugElement.nativeElement; let anchorElement = anchorDebugElement.nativeElement;
// The anchor should initially be in the tab order. // The anchor should initially be in the tab order.
@ -92,7 +90,7 @@ export function main() {
// After the disabled binding has been changed. // After the disabled binding has been changed.
testAppComponent.isDisabled = true; testAppComponent.isDisabled = true;
rootTestComponent.detectChanges(); fixture.detectChanges();
// The anchor should now be out of the tab order. // The anchor should now be out of the tab order.
expect(anchorElement.tabIndex).toBe(-1); expect(anchorElement.tabIndex).toBe(-1);