@@ -175,14 +175,38 @@ describe("directive", function(){
175175 } ) ;
176176 } ) ;
177177
178- it ( 'should ng:class' , function ( ) {
179- var scope = compile ( '<div class="existing" ng:class="[\'A\', \'B\']"></div>' ) ;
180- scope . $eval ( ) ;
181- expect ( element . hasClass ( 'existing' ) ) . toBeTruthy ( ) ;
182- expect ( element . hasClass ( 'A' ) ) . toBeTruthy ( ) ;
183- expect ( element . hasClass ( 'B' ) ) . toBeTruthy ( ) ;
178+
179+ describe ( 'ng:class' , function ( ) {
180+ it ( 'should add new and remove old classes dynamically' , function ( ) {
181+ var scope = compile ( '<div class="existing" ng:class="dynClass"></div>' ) ;
182+ scope . dynClass = 'A' ;
183+ scope . $eval ( ) ;
184+ expect ( element . hasClass ( 'existing' ) ) . toBe ( true ) ;
185+ expect ( element . hasClass ( 'A' ) ) . toBe ( true ) ;
186+
187+ scope . dynClass = 'B' ;
188+ scope . $eval ( ) ;
189+ expect ( element . hasClass ( 'existing' ) ) . toBe ( true ) ;
190+ expect ( element . hasClass ( 'A' ) ) . toBe ( false ) ;
191+ expect ( element . hasClass ( 'B' ) ) . toBe ( true ) ;
192+
193+ delete scope . dynClass ;
194+ scope . $eval ( ) ;
195+ expect ( element . hasClass ( 'existing' ) ) . toBe ( true ) ;
196+ expect ( element . hasClass ( 'A' ) ) . toBe ( false ) ;
197+ expect ( element . hasClass ( 'B' ) ) . toBe ( false ) ;
198+ } ) ;
199+
200+ it ( 'should support adding multiple classes' , function ( ) {
201+ var scope = compile ( '<div class="existing" ng:class="[\'A\', \'B\']"></div>' ) ;
202+ scope . $eval ( ) ;
203+ expect ( element . hasClass ( 'existing' ) ) . toBeTruthy ( ) ;
204+ expect ( element . hasClass ( 'A' ) ) . toBeTruthy ( ) ;
205+ expect ( element . hasClass ( 'B' ) ) . toBeTruthy ( ) ;
206+ } ) ;
184207 } ) ;
185208
209+
186210 it ( 'should ng:class odd/even' , function ( ) {
187211 var scope = compile ( '<ul><li ng:repeat="i in [0,1]" class="existing" ng:class-odd="\'odd\'" ng:class-even="\'even\'"></li><ul>' ) ;
188212 scope . $eval ( ) ;
0 commit comments