@@ -349,23 +349,43 @@ export function main() {
349349 describe ( "validations" , ( ) => {
350350 it ( "should use validators defined in html" ,
351351 inject ( [ TestComponentBuilder , AsyncTestCompleter ] , ( tcb : TestComponentBuilder , async ) => {
352- var form = new ControlGroup ( { "login" : new Control ( "aa" ) } ) ;
352+ var form = new ControlGroup (
353+ { "login" : new Control ( "" ) , "min" : new Control ( "" ) , "max" : new Control ( "" ) } ) ;
353354
354355 var t = `<div [ng-form-model]="form">
355356 <input type="text" ng-control="login" required>
357+ <input type="text" ng-control="min" minlength="3">
358+ <input type="text" ng-control="max" maxlength="3">
356359 </div>` ;
357360
358361 tcb . overrideTemplate ( MyComp , t ) . createAsync ( MyComp ) . then ( ( rootTC ) => {
359362 rootTC . debugElement . componentInstance . form = form ;
360363 rootTC . detectChanges ( ) ;
361- expect ( form . valid ) . toEqual ( true ) ;
362364
363- var input = rootTC . debugElement . query ( By . css ( "input" ) ) ;
365+ var required = rootTC . debugElement . query ( By . css ( "[required]" ) ) ;
366+ var minLength = rootTC . debugElement . query ( By . css ( "[minlength]" ) ) ;
367+ var maxLength = rootTC . debugElement . query ( By . css ( "[maxlength]" ) ) ;
364368
365- input . nativeElement . value = "" ;
366- dispatchEvent ( input . nativeElement , "change" ) ;
369+ required . nativeElement . value = "" ;
370+ minLength . nativeElement . value = "1" ;
371+ maxLength . nativeElement . value = "1234" ;
372+ dispatchEvent ( required . nativeElement , "change" ) ;
373+ dispatchEvent ( minLength . nativeElement , "change" ) ;
374+ dispatchEvent ( maxLength . nativeElement , "change" ) ;
375+
376+ expect ( form . hasError ( "required" , [ "login" ] ) ) . toEqual ( true ) ;
377+ expect ( form . hasError ( "minlength" , [ "min" ] ) ) . toEqual ( true ) ;
378+ expect ( form . hasError ( "maxlength" , [ "max" ] ) ) . toEqual ( true ) ;
379+
380+ required . nativeElement . value = "1" ;
381+ minLength . nativeElement . value = "123" ;
382+ maxLength . nativeElement . value = "123" ;
383+ dispatchEvent ( required . nativeElement , "change" ) ;
384+ dispatchEvent ( minLength . nativeElement , "change" ) ;
385+ dispatchEvent ( maxLength . nativeElement , "change" ) ;
386+
387+ expect ( form . valid ) . toEqual ( true ) ;
367388
368- expect ( form . valid ) . toEqual ( false ) ;
369389 async . done ( ) ;
370390 } ) ;
371391 } ) ) ;
0 commit comments