Skip to content

Commit

Permalink
Add readyWait tests. Fixes #8145.
Browse files Browse the repository at this point in the history
Adds tests for the fix to #6781.
  • Loading branch information
jrburke authored and jitter committed Feb 12, 2011
1 parent 2862f58 commit d99268a
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/data/readywaitasset.js
@@ -0,0 +1 @@
var delayedMessage = "It worked!";
25 changes: 25 additions & 0 deletions test/data/readywaitloader.js
@@ -0,0 +1,25 @@
// Simple script loader that uses jQuery.readyWait

//Hold on jQuery!
jQuery.readyWait++;

var readyRegExp = /^(complete|loaded)$/;

function assetLoaded( evt ){
var node = evt.currentTarget || evt.srcElement;
if ( evt.type === "load" || readyRegExp.test(node.readyState) ) {
jQuery.ready(true);
}
}

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 );
85 changes: 85 additions & 0 deletions test/readywait.html
@@ -0,0 +1,85 @@
<!DOCTYPE html>
<html>
<!--
Test for jQuery.readyWait. Needs to be a
standalone test since it deals with DOM
ready.
-->
<head>
<title>
jQuery.readyWait Test
</title>
<style>
div { margin-top: 10px; }
#output { background-color: green }
#expectedOutput { background-color: green }
</style>
<script src="../src/core.js"></script>
<script src="../src/support.js"></script>
<script src="../src/data.js"></script>
<script src="../src/queue.js"></script>
<script src="../src/attributes.js"></script>
<script src="../src/event.js"></script>
<script src="../src/sizzle/sizzle.js"></script>
<script src="../src/sizzle-jquery.js"></script>
<script src="../src/traversing.js"></script>
<script src="../src/manipulation.js"></script>
<script src="../src/css.js"></script>
<script src="../src/ajax.js"></script>
<script src="../src/ajax/jsonp.js"></script>
<script src="../src/ajax/script.js"></script>
<script src="../src/ajax/xhr.js"></script>
<script src="../src/effects.js"></script>
<script src="../src/offset.js"></script>
<script src="../src/dimensions.js"></script>

<!-- Load the script loader that uses
jQuery.readyWait -->
<script src="data/readywaitloader.js"></script>

<script type="text/javascript">
jQuery(function() {
// The delayedMessage is defined by
// the readywaitasset.js file, so the
// next line will only work if this DOM
// ready callback is called after readyWait
// has been decremented by readywaitloader.js
// If an error occurs.
jQuery("#output").append(delayedMessage);
});
</script>
</head>
<body>
<h1>
jQuery.readyWait Test
</h1>
<p>
This is a test page for jQuery.readyWait, that was
added due to this ticket
<a href="http://bugs.jquery.com/ticket/6781">#6781</a>.
</p>
<p>
Test for jQuery.readyWait, which can be used
by plugins and other scripts to indicate something
important to the page is still loading and needs
to block the DOM ready callbacks that are registered
with jQuery.
</p>
<p>
Script loaders are the most likely kind of script
to use jQuery.readyWait, but it could be used by
other things like a script that loads a CSS file
and wants to pause the DOM ready callbacks.
</p>
<p>
<strong>Expected Result</strong>: The text
<span id="expectedOutput">It Worked!</span>
appears below after about <strong>2 seconds.</strong>
</p>
<p>
If there is an error in the console,
or the text does not show up, then the test failed.
</p>
<div id="output"></div>
</body>
</html>

0 comments on commit d99268a

Please sign in to comment.