@@ -2,6 +2,7 @@ QUnit.module( "ready" );
22
33( function ( ) {
44 var notYetReady , noEarlyExecution ,
5+ whenified = jQuery . when ( jQuery . ready ) ,
56 promisified = Promise . resolve ( jQuery . ready ) ,
67 order = [ ] ,
78 args = { } ;
@@ -41,35 +42,33 @@ QUnit.module( "ready" );
4142 // Bind to the ready event in every possible way.
4243 jQuery ( makeHandler ( "a" ) ) ;
4344 jQuery ( document ) . ready ( makeHandler ( "b" ) ) ;
45+ jQuery . ready . then ( makeHandler ( "c" ) ) ;
4446
45- // Throw in an error to ensure other callbacks are called
47+ // Throw in some errors
4648 jQuery ( function ( ) {
4749 throwError ( 1 ) ;
4850 } ) ;
49-
50- // Throw two errors in a row
5151 jQuery ( function ( ) {
5252 throwError ( 2 ) ;
5353 } ) ;
54- jQuery . when ( jQuery . ready ) . done ( makeHandler ( "c" ) ) ;
5554
56- // Do it twice, just to be sure.
55+ // Bind again to ensure that the errors didn't lock everything up
5756 jQuery ( makeHandler ( "d" ) ) ;
5857 jQuery ( document ) . ready ( makeHandler ( "e" ) ) ;
59- jQuery . when ( jQuery . ready ) . done ( makeHandler ( "f" ) ) ;
58+ jQuery . ready . then ( makeHandler ( "f" ) ) ;
6059
6160 noEarlyExecution = order . length === 0 ;
6261
6362 // This assumes that QUnit tests are run on DOM ready!
6463 QUnit . test ( "jQuery ready" , function ( assert ) {
65- assert . expect ( 8 ) ;
64+ assert . expect ( 10 ) ;
6665
6766 assert . ok ( noEarlyExecution ,
6867 "Handlers bound to DOM ready should not execute before DOM ready" ) ;
6968
7069 // Ensure execution order.
7170 assert . deepEqual ( order , [ "a" , "b" , "c" , "d" , "e" , "f" ] ,
72- "Bound DOM ready handlers should execute in on- order" ) ;
71+ "Bound DOM ready handlers should execute in bind order" ) ;
7372
7473 // Ensure handler argument is correct.
7574 assert . equal ( args . a , jQuery ,
@@ -84,17 +83,42 @@ QUnit.module( "ready" );
8483 var done = assert . async ( ) ;
8584 jQuery ( makeHandler ( "g" ) ) ;
8685 jQuery ( document ) . ready ( makeHandler ( "h" ) ) ;
86+ jQuery . ready . then ( makeHandler ( "i" ) ) ;
8787 window . setTimeout ( function ( ) {
88- assert . equal ( order . shift ( ) , "g" , "Event handler should execute immediately, but async" ) ;
89- assert . equal ( args . g , jQuery , "Argument passed to fn in jQuery( fn ) should be jQuery" ) ;
88+ assert . equal ( order . shift ( ) , "g" ,
89+ "Event handler should execute immediately, but async" ) ;
90+ assert . equal ( args . g , jQuery ,
91+ "Argument passed to fn in jQuery( fn ) should be jQuery" ) ;
9092
91- assert . equal ( order . shift ( ) , "h" , "Event handler should execute immediately, but async" ) ;
93+ assert . equal ( order . shift ( ) , "h" ,
94+ "Event handler should execute immediately, but async" ) ;
9295 assert . equal ( args . h , jQuery ,
9396 "Argument passed to fn in jQuery(document).ready( fn ) should be jQuery" ) ;
97+
98+ assert . equal ( order . shift ( ) , "i" ,
99+ "Event handler should execute immediately, but async" ) ;
100+ assert . equal ( args . h , jQuery ,
101+ "Argument passed to fn in jQuery.ready.then( fn ) should be jQuery" ) ;
102+
94103 done ( ) ;
95104 } ) ;
96105 } ) ;
97106
107+ QUnit . test ( "jQuery.when(jQuery.ready)" , function ( assert ) {
108+ assert . expect ( 2 ) ;
109+ var done = jQuery . map ( new Array ( 2 ) , function ( ) { return assert . async ( ) ; } ) ;
110+
111+ whenified . then ( function ( ) {
112+ assert . ok ( jQuery . isReady , "jQuery.when Deferred resolved" ) ;
113+ done . pop ( ) ( ) ;
114+ } ) ;
115+
116+ jQuery . when ( jQuery . ready ) . then ( function ( ) {
117+ assert . ok ( jQuery . isReady , "jQuery.when Deferred resolved" ) ;
118+ done . pop ( ) ( ) ;
119+ } ) ;
120+ } ) ;
121+
98122 QUnit . test ( "Promise.resolve(jQuery.ready)" , function ( assert ) {
99123 assert . expect ( 2 ) ;
100124 var done = jQuery . map ( new Array ( 2 ) , function ( ) { return assert . async ( ) ; } ) ;
0 commit comments