equals(jQuery, $, "ready doesn't provide an event object, instead it provides a reference to the jQuery function, see http://docs.jquery.com/Events/ready#fn");
start();
(function(){
// This code must be run before DOM ready!
varnotYetReady,noEarlyExecution,
order=[],
args={};
notYetReady=!jQuery.isReady;
test("jQuery.isReady",function(){
expect(2);
equals(notYetReady,true,"jQuery.isReady should not be true before DOM ready");
equals(jQuery.isReady,true,"jQuery.isReady should be true once DOM is ready");
});
});
// Create an event handler.
functionmakeHandler(testId){
// When returned function is executed, push testId onto `order` array
// to ensure execution order. Also, store event handler arg to ensure
// the correct arg is being passed into the event handler.
// This assumes that QUnit tests are run on DOM ready!
test("jQuery ready",function(){
expect(10);
ok(noEarlyExecution,"Handlers bound to DOM ready should not execute before DOM ready");
// Ensure execution order.
same(order,["a","b","d","e","c","f"],"Bound DOM ready handlers should execute in bind-order, but those bound with jQuery(document).bind( 'ready', fn ) will always execute last");
// Ensure handler argument is correct.
equals(args.a,jQuery,"Argument passed to fn in jQuery( fn ) should be jQuery");
equals(args.b,jQuery,"Argument passed to fn in jQuery(document).ready( fn ) should be jQuery");
ok(args.cinstanceofjQuery.Event,"Argument passed to fn in jQuery(document).bind( 'ready', fn ) should be an event object");
order=[];
// Now that the ready event has fired, again bind to the ready event
// in every possible way. These event handlers should execute immediately.
jQuery(makeHandler("g"));
equals(order.pop(),"g","Event handler should execute immediately");
equals(args.g,jQuery,"Argument passed to fn in jQuery( fn ) should be jQuery");
jQuery(document).ready(makeHandler("h"));
equals(order.pop(),"h","Event handler should execute immediately");
equals(args.h,jQuery,"Argument passed to fn in jQuery(document).ready( fn ) should be jQuery");