@@ -15,151 +15,123 @@ import {
1515
1616import { StringMapWrapper } from 'angular2/src/facade/collection' ;
1717
18- import { Injector , bind } from 'angular2/di' ;
19-
20- import { Compiler } from 'angular2/src/core/compiler/compiler' ;
21- import { TemplateResolver } from 'angular2/src/core/compiler/template_resolver' ;
22-
2318import { Template } from 'angular2/src/core/annotations/template' ;
24- import { Decorator , Component } from 'angular2/src/core/annotations/annotations' ;
19+ import { Component } from 'angular2/src/core/annotations/annotations' ;
2520
26- import { MockTemplateResolver } from 'angular2/src/mock/template_resolver_mock ' ;
21+ import { TestBed } from 'angular2/src/test_lib/test_bed ' ;
2722
2823import { CSSClass } from 'angular2/src/directives/class' ;
2924
3025export function main ( ) {
3126 describe ( 'binding to CSS class list' , ( ) => {
3227
33- var view , cd , compiler , component , tplResolver ;
34-
35- beforeEachBindings ( ( ) => [
36- bind ( TemplateResolver ) . toClass ( MockTemplateResolver )
37- ] ) ;
38-
39- beforeEach ( inject ( [ Compiler , TemplateResolver ] , ( c , t ) => {
40- compiler = c ;
41- tplResolver = t ;
42- } ) ) ;
43-
44- function createView ( pv ) {
45- component = new TestComponent ( ) ;
46- view = pv . instantiate ( null , null ) ;
47- view . hydrate ( new Injector ( [ ] ) , null , null , component , null ) ;
48- cd = view . changeDetector ;
49- }
50-
51- function compileWithTemplate ( html ) {
52- var template = new Template ( {
53- inline : html ,
54- directives : [ CSSClass ]
55- } ) ;
56- tplResolver . setTemplate ( TestComponent , template ) ;
57- return compiler . compile ( TestComponent ) ;
58- }
59-
60- it ( 'should add classes specified in an object literal' , inject ( [ AsyncTestCompleter ] , ( async ) => {
28+ it ( 'should add classes specified in an object literal' ,
29+ inject ( [ TestBed , AsyncTestCompleter ] , ( tb , async ) => {
6130 var template = '<div [class]="{foo: true, bar: false}"></div>' ;
62- compileWithTemplate ( template ) . then ( ( pv ) => {
63- createView ( pv ) ;
6431
65- cd . detectChanges ( ) ;
32+ tb . createView ( TestComponent , { html : template } ) . then ( ( view ) => {
33+ view . detectChanges ( ) ;
6634 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo' ) ;
6735
6836 async . done ( ) ;
6937 } ) ;
7038 } ) ) ;
7139
72- it ( 'should add and remove classes based on changes in object literal values' , inject ( [ AsyncTestCompleter ] , ( async ) => {
40+ it ( 'should add and remove classes based on changes in object literal values' ,
41+ inject ( [ TestBed , AsyncTestCompleter ] , ( tb , async ) => {
7342 var template = '<div [class]="{foo: condition, bar: !condition}"></div>' ;
74- compileWithTemplate ( template ) . then ( ( pv ) => {
75- createView ( pv ) ;
76- cd . detectChanges ( ) ;
43+
44+ tb . createView ( TestComponent , { html : template } ) . then ( ( view ) => {
45+ view . detectChanges ( ) ;
7746 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo' ) ;
7847
79- component . condition = false ;
80- cd . detectChanges ( ) ;
48+ view . context . condition = false ;
49+ view . detectChanges ( ) ;
8150 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding bar' ) ;
8251
8352 async . done ( ) ;
8453 } ) ;
8554 } ) ) ;
8655
87- it ( 'should add and remove classes based on changes to the expression object' , inject ( [ AsyncTestCompleter ] , ( async ) => {
56+ it ( 'should add and remove classes based on changes to the expression object' ,
57+ inject ( [ TestBed , AsyncTestCompleter ] , ( tb , async ) => {
8858 var template = '<div [class]="expr"></div>' ;
89- compileWithTemplate ( template ) . then ( ( pv ) => {
90- createView ( pv ) ;
91- cd . detectChanges ( ) ;
59+
60+ tb . createView ( TestComponent , { html : template } ) . then ( ( view ) => {
61+ view . detectChanges ( ) ;
9262 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo' ) ;
9363
94- StringMapWrapper . set ( component . expr , 'bar' , true ) ;
95- cd . detectChanges ( ) ;
64+ StringMapWrapper . set ( view . context . expr , 'bar' , true ) ;
65+ view . detectChanges ( ) ;
9666 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo bar' ) ;
9767
98- StringMapWrapper . set ( component . expr , 'baz' , true ) ;
99- cd . detectChanges ( ) ;
68+ StringMapWrapper . set ( view . context . expr , 'baz' , true ) ;
69+ view . detectChanges ( ) ;
10070 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo bar baz' ) ;
10171
102- StringMapWrapper . delete ( component . expr , 'bar' ) ;
103- cd . detectChanges ( ) ;
72+ StringMapWrapper . delete ( view . context . expr , 'bar' ) ;
73+ view . detectChanges ( ) ;
10474 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo baz' ) ;
10575
10676 async . done ( ) ;
10777 } ) ;
10878 } ) ) ;
10979
110- it ( 'should retain existing classes when expression evaluates to null' , inject ( [ AsyncTestCompleter ] , ( async ) => {
80+ it ( 'should retain existing classes when expression evaluates to null' ,
81+ inject ( [ TestBed , AsyncTestCompleter ] , ( tb , async ) => {
11182 var template = '<div [class]="expr"></div>' ;
112- compileWithTemplate ( template ) . then ( ( pv ) => {
113- createView ( pv ) ;
114- cd . detectChanges ( ) ;
83+
84+ tb . createView ( TestComponent , { html : template } ) . then ( ( view ) => {
85+ view . detectChanges ( ) ;
11586 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo' ) ;
11687
117- component . expr = null ;
118- cd . detectChanges ( ) ;
88+ view . context . expr = null ;
89+ view . detectChanges ( ) ;
11990 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding foo' ) ;
12091
121- component . expr = { 'foo' : false , 'bar' : true } ;
122- cd . detectChanges ( ) ;
92+ view . context . expr = { 'foo' : false , 'bar' : true } ;
93+ view . detectChanges ( ) ;
12394 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'ng-binding bar' ) ;
12495
12596 async . done ( ) ;
12697 } ) ;
12798 } ) ) ;
12899
129- it ( 'should co-operate with the class attribute' , inject ( [ AsyncTestCompleter ] , ( async ) => {
100+ it ( 'should co-operate with the class attribute' ,
101+ inject ( [ TestBed , AsyncTestCompleter ] , ( tb , async ) => {
130102 var template = '<div [class]="expr" class="init foo"></div>' ;
131- compileWithTemplate ( template ) . then ( ( pv ) => {
132- createView ( pv ) ;
133103
134- StringMapWrapper . set ( component . expr , 'bar' , true ) ;
135- cd . detectChanges ( ) ;
104+ tb . createView ( TestComponent , { html : template } ) . then ( ( view ) => {
105+ StringMapWrapper . set ( view . context . expr , 'bar' , true ) ;
106+ view . detectChanges ( ) ;
136107 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'init foo ng-binding bar' ) ;
137108
138- StringMapWrapper . set ( component . expr , 'foo' , false ) ;
139- cd . detectChanges ( ) ;
109+ StringMapWrapper . set ( view . context . expr , 'foo' , false ) ;
110+ view . detectChanges ( ) ;
140111 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'init ng-binding bar' ) ;
141112
142113 async . done ( ) ;
143114 } ) ;
144115 } ) ) ;
145116
146- it ( 'should co-operate with the class attribute and class.name binding' , inject ( [ AsyncTestCompleter ] , ( async ) => {
117+ it ( 'should co-operate with the class attribute and class.name binding' ,
118+ inject ( [ TestBed , AsyncTestCompleter ] , ( tb , async ) => {
147119 var template = '<div class="init foo" [class]="expr" [class.baz]="condition"></div>' ;
148- compileWithTemplate ( template ) . then ( ( pv ) => {
149- createView ( pv ) ;
150- cd . detectChanges ( ) ;
120+
121+ tb . createView ( TestComponent , { html : template } ) . then ( ( view ) => {
122+ view . detectChanges ( ) ;
151123 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'init foo ng-binding baz' ) ;
152124
153- StringMapWrapper . set ( component . expr , 'bar' , true ) ;
154- cd . detectChanges ( ) ;
125+ StringMapWrapper . set ( view . context . expr , 'bar' , true ) ;
126+ view . detectChanges ( ) ;
155127 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'init foo ng-binding baz bar' ) ;
156128
157- StringMapWrapper . set ( component . expr , 'foo' , false ) ;
158- cd . detectChanges ( ) ;
129+ StringMapWrapper . set ( view . context . expr , 'foo' , false ) ;
130+ view . detectChanges ( ) ;
159131 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'init ng-binding baz bar' ) ;
160132
161- component . condition = false ;
162- cd . detectChanges ( ) ;
133+ view . context . condition = false ;
134+ view . detectChanges ( ) ;
163135 expect ( view . nodes [ 0 ] . className ) . toEqual ( 'init ng-binding bar' ) ;
164136
165137 async . done ( ) ;
@@ -169,6 +141,7 @@ export function main() {
169141}
170142
171143@Component ( { selector : 'test-cmp' } )
144+ @Template ( { directives : [ CSSClass ] } )
172145class TestComponent {
173146 condition :boolean ;
174147 expr ;
0 commit comments