@@ -2383,4 +2383,72 @@ describe('Validator', function() {
2383
2383
2384
2384
} ) ;
2385
2385
2386
+ describe ( 'for the url rule' , function ( ) {
2387
+
2388
+ it ( 'should pass a valid URL' , function ( ) {
2389
+
2390
+ var elem = null ,
2391
+ elemValid = null ,
2392
+ formValid = null ;
2393
+
2394
+ textInput . data ( 'validations' , 'active_url' ) ;
2395
+ textInput . val ( 'ftp://sub.domain.com/url/params?get=params&are=magic' ) ;
2396
+
2397
+ testForm . validator ( $ . extend ( {
2398
+ callback : function ( e , v ) {
2399
+ elem = e ;
2400
+ elemValid = v ;
2401
+ } ,
2402
+ done : function ( v ) {
2403
+ formValid = v ;
2404
+ }
2405
+ } , defaultOptions ) ) . submit ( ) ;
2406
+
2407
+ waitsFor ( function ( ) {
2408
+ return elem !== null &&
2409
+ formValid !== null ;
2410
+ } ) ;
2411
+
2412
+ runs ( function ( ) {
2413
+ expect ( $ ( elem ) . attr ( 'name' ) ) . toEqual ( textInput . attr ( 'name' ) ) ;
2414
+ expect ( elemValid ) . toEqual ( true ) ;
2415
+ expect ( formValid ) . toEqual ( true ) ;
2416
+ } ) ;
2417
+
2418
+ } ) ;
2419
+
2420
+ it ( 'should fail an invalid URL' , function ( ) {
2421
+
2422
+ var elem = null ,
2423
+ elemValid = null ,
2424
+ formValid = null ;
2425
+
2426
+ textInput . data ( 'validations' , 'active_url' ) ;
2427
+ textInput . val ( 'ftp:/a/sub.domain.com/url/params?get=params&are=magic' ) ;
2428
+
2429
+ testForm . validator ( $ . extend ( {
2430
+ callback : function ( e , v ) {
2431
+ elem = e ;
2432
+ elemValid = v ;
2433
+ } ,
2434
+ done : function ( v ) {
2435
+ formValid = v ;
2436
+ }
2437
+ } , defaultOptions ) ) . submit ( ) ;
2438
+
2439
+ waitsFor ( function ( ) {
2440
+ return elem !== null &&
2441
+ formValid !== null ;
2442
+ } ) ;
2443
+
2444
+ runs ( function ( ) {
2445
+ expect ( $ ( elem ) . attr ( 'name' ) ) . toEqual ( textInput . attr ( 'name' ) ) ;
2446
+ expect ( elemValid ) . toEqual ( false ) ;
2447
+ expect ( formValid ) . toEqual ( false ) ;
2448
+ } ) ;
2449
+
2450
+ } ) ;
2451
+
2452
+ } ) ;
2453
+
2386
2454
} ) ;
0 commit comments