From fcc9a9ec9685e25864ca793698e4ac5e60226272 Mon Sep 17 00:00:00 2001 From: Steve Mao Date: Sun, 25 Sep 2016 14:12:20 +1000 Subject: [PATCH] Tests: move readywait to an iframe test Close gh-3576 Fixes gh-3573 --- src/deprecated.js | 14 +++++++------- test/{ => data}/readywait.html | 28 +++++++++++++++++----------- test/data/readywaitasset.js | 1 - test/data/readywaitloader.js | 25 ------------------------- test/unit/ready.js | 13 +++++++++++++ 5 files changed, 37 insertions(+), 44 deletions(-) rename test/{ => data}/readywait.html (77%) delete mode 100644 test/data/readywaitasset.js delete mode 100644 test/data/readywaitloader.js diff --git a/src/deprecated.js b/src/deprecated.js index 195ce7ad9..9589ec872 100644 --- a/src/deprecated.js +++ b/src/deprecated.js @@ -23,16 +23,16 @@ jQuery.fn.extend( { return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - }, - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } } } ); +jQuery.holdReady = function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } +}; jQuery.isArray = Array.isArray; jQuery.parseJSON = JSON.parse; jQuery.nodeName = nodeName; diff --git a/test/readywait.html b/test/data/readywait.html similarity index 77% rename from test/readywait.html rename to test/data/readywait.html index e34a0d795..d7de0b082 100644 --- a/test/readywait.html +++ b/test/data/readywait.html @@ -14,22 +14,28 @@ #output { background-color: green } #expectedOutput { background-color: green } - + + - diff --git a/test/data/readywaitasset.js b/test/data/readywaitasset.js deleted file mode 100644 index 2308965ce..000000000 --- a/test/data/readywaitasset.js +++ /dev/null @@ -1 +0,0 @@ -var delayedMessage = "It worked!"; diff --git a/test/data/readywaitloader.js b/test/data/readywaitloader.js deleted file mode 100644 index 8f4a3452e..000000000 --- a/test/data/readywaitloader.js +++ /dev/null @@ -1,25 +0,0 @@ -// Simple script loader that uses jQuery.readyWait via jQuery.holdReady() - -//Hold on jQuery! -jQuery.holdReady( true ); - -var readyRegExp = /^(complete|loaded)$/; - -function assetLoaded( evt ) { - var node = evt.currentTarget || evt.srcElement; - if ( evt.type === "load" || readyRegExp.test( node.readyState ) ) { - jQuery.holdReady( false ); - } -} - -setTimeout( function() { - var script = document.createElement( "script" ); - script.type = "text/javascript"; - if ( script.addEventListener ) { - script.addEventListener( "load", assetLoaded, false ); - } else { - script.attachEvent( "onreadystatechange", assetLoaded ); - } - script.src = "data/readywaitasset.js"; - document.getElementsByTagName( "head" )[ 0 ].appendChild( script ); -}, 2000 ); diff --git a/test/unit/ready.js b/test/unit/ready.js index 775b6048a..d3396b1c4 100644 --- a/test/unit/ready.js +++ b/test/unit/ready.js @@ -4,6 +4,7 @@ QUnit.module( "ready" ); var notYetReady, noEarlyExecution, whenified = jQuery.when( jQuery.ready ), promisified = Promise.resolve( jQuery.ready ), + start = new Date(), order = [], args = {}; @@ -147,4 +148,16 @@ QUnit.module( "ready" ); done(); } ); } ); + + testIframe( + "holdReady test needs to be a standalone test since it deals with DOM ready", + "readywait.html", + function( assert, jQuery, window, document, releaseCalled ) { + assert.expect( 2 ); + var now = new Date(); + assert.ok( now - start >= 300, "Needs to have waited at least half a second" ); + assert.ok( releaseCalled, "The release function was called, which resulted in ready" ); + } + ); + } )(); -- 2.39.5