diff options
author | Oleg Gaidarenko <markelog@gmail.com> | 2014-02-18 20:13:48 +0400 |
---|---|---|
committer | Oleg Gaidarenko <markelog@gmail.com> | 2014-04-15 17:45:58 +0400 |
commit | 8e5d1caf7ad8f02d727bdd5ef9dfed9ff463c8ea (patch) | |
tree | 18f50d2bbd9ddee11cbbfa4526f8e1b6bc8a141e /test | |
parent | 92cff8b1a38fc45f1a6f6ddb92d089b739e7f5f5 (diff) | |
download | jquery-8e5d1caf7ad8f02d727bdd5ef9dfed9ff463c8ea.tar.gz jquery-8e5d1caf7ad8f02d727bdd5ef9dfed9ff463c8ea.zip |
Tests: More improvments for testrunner
Conform to style guide and simplify it
Diffstat (limited to 'test')
-rw-r--r-- | test/data/testinit.js | 37 | ||||
-rw-r--r-- | test/data/testrunner.js | 58 |
2 files changed, 36 insertions, 59 deletions
diff --git a/test/data/testinit.js b/test/data/testinit.js index 06f33d19b..2751f65cc 100644 --- a/test/data/testinit.js +++ b/test/data/testinit.js @@ -16,7 +16,7 @@ original$ = this.$ = "replaced"; /** * Returns an array of elements with the given IDs - * @example q("main", "foo", "bar") + * @example q( "main", "foo", "bar" ) * @result [<div id="main">, <span id="foo">, <input id="bar">] */ this.q = function() { @@ -38,7 +38,7 @@ this.q = function() { * @result returns true if "//[a]" return two elements with the IDs 'foo' and 'baar' */ this.t = function( a, b, c ) { - var f = jQuery(b).get(), + var f = jQuery( b ).get(), s = "", i = 0; @@ -46,7 +46,7 @@ this.t = function( a, b, c ) { s += ( s && "," ) + '"' + f[ i ].id + '"'; } - deepEqual(f, q.apply( q, c ), a + " (" + b + ")"); + deepEqual( f, q.apply( q, c ), a + " (" + b + ")" ); }; this.createDashboardXML = function() { @@ -98,13 +98,13 @@ this.createWithFriesXML = function() { this.createXMLFragment = function() { var xml, frag; if ( window.ActiveXObject ) { - xml = new ActiveXObject("msxml2.domdocument"); + xml = new ActiveXObject( "msxml2.domdocument" ); } else { xml = document.implementation.createDocument( "", "", null ); } if ( xml ) { - frag = xml.createElement("data"); + frag = xml.createElement( "data" ); } return frag; @@ -112,13 +112,13 @@ this.createXMLFragment = function() { fireNative = document.createEvent ? function( node, type ) { - var event = document.createEvent('HTMLEvents'); + var event = document.createEvent( "HTMLEvents" ); + event.initEvent( type, true, true ); node.dispatchEvent( event ); } : function( node, type ) { - var event = document.createEventObject(); - node.fireEvent( 'on' + type, event ); + node.fireEvent( "on" + type, document.createEventObject() ); }; /** @@ -233,31 +233,28 @@ this.testIframe = function( fileName, name, fn ) { }; this.testIframeWithCallback = function( title, fileName, func ) { - - test( title, function() { + asyncTest( title, 1, function() { var iframe; - // Expect one assertion, but allow overrides - expect( 1 ); - - stop(); window.iframeCallback = function() { - var self = this, - args = arguments; + var args = arguments; + setTimeout(function() { - window.iframeCallback = undefined; + this.iframeCallback = undefined; + iframe.remove(); - func.apply( self, args ); + func.apply( this, args ); func = function() {}; + start(); - }, 0 ); + }); }; iframe = jQuery( "<div/>" ).css({ position: "absolute", width: "500px", left: "-600px" }) .append( jQuery( "<iframe/>" ).attr( "src", url( "./data/" + fileName ) ) ) .appendTo( "#qunit-fixture" ); }); }; -window.iframeCallback = undefined; +this.iframeCallback = undefined; // Tests are always loaded async QUnit.config.autostart = false; diff --git a/test/data/testrunner.js b/test/data/testrunner.js index 2b15dd2e0..ea7cf7d7a 100644 --- a/test/data/testrunner.js +++ b/test/data/testrunner.js @@ -1,19 +1,14 @@ -define(function() { - -// Allow subprojects to test against their own fixtures -var qunitModule = QUnit.module, - qunitTest = QUnit.test, - // Store the old counts so that we only assert on tests that have actually leaked, - // instead of asserting every time a test has leaked sometime in the past - oldCacheLength = 0, +(function() { + +// Store the old counts so that we only assert on tests that have actually leaked, +// instead of asserting every time a test has leaked sometime in the past +var oldCacheLength = 0, oldActive = 0, expectedDataKeys = {}, - reset, splice = [].splice, ajaxSettings = jQuery.ajaxSettings; - /** * QUnit configuration */ @@ -45,7 +40,7 @@ QUnit.expectJqData = function( elems, key ) { } for ( i = 0; i < elems.length; i++ ) { - elem = elems[i]; + elem = elems[ i ]; // jQuery.data only stores data for nodes in jQuery.cache, // for other data targets the data is stored in the object itself, @@ -69,10 +64,10 @@ QUnit.expectJqData = function( elems, key ) { // (instead of in teardown). notStrictEqual( expando, undefined, "Target for expectJqData must have an expando, for else there can be no data to expect." ); } else { - if ( expectedDataKeys[expando] ) { - expectedDataKeys[expando].push( key ); + if ( expectedDataKeys[ expando ] ) { + expectedDataKeys[ expando ].push( key ); } else { - expectedDataKeys[expando] = [ key ]; + expectedDataKeys[ expando ] = [ key ]; } } } @@ -90,26 +85,25 @@ QUnit.config.urlConfig.push({ * teardown function on all modules' lifecycle object. */ window.moduleTeardown = function() { - var i, - expectedKeys, actualKeys, + var i, expectedKeys, actualKeys, cacheLength = 0; // Only look for jQuery data problems if this test actually // provided some information to compare against. if ( QUnit.urlParams.jqdata || this.checkJqData ) { for ( i in jQuery.cache ) { - expectedKeys = expectedDataKeys[i]; - actualKeys = jQuery.cache[i] ? Object.keys( jQuery.cache[i] ) : jQuery.cache[i]; + expectedKeys = expectedDataKeys[ i ]; + actualKeys = jQuery.cache[ i ] ? Object.keys( jQuery.cache[ i ] ) : jQuery.cache[ i ]; if ( !QUnit.equiv( expectedKeys, actualKeys ) ) { deepEqual( actualKeys, expectedKeys, "Expected keys exist in jQuery.cache" ); } - delete jQuery.cache[i]; - delete expectedDataKeys[i]; + delete jQuery.cache[ i ]; + delete expectedDataKeys[ i ]; } // In case it was removed from cache before (or never there in the first place) for ( i in expectedDataKeys ) { - deepEqual( expectedDataKeys[i], undefined, "No unexpected keys were left in jQuery.cache (#" + i + ")" ); - delete expectedDataKeys[i]; + deepEqual( expectedDataKeys[ i ], undefined, "No unexpected keys were left in jQuery.cache (#" + i + ")" ); + delete expectedDataKeys[ i ]; } } @@ -143,18 +137,7 @@ window.moduleTeardown = function() { } }; -QUnit.done(function() { - // Remove our own fixtures outside #qunit-fixture - supportjQuery("#qunit ~ *").remove(); -}); - -// jQuery-specific post-test cleanup -reset = function () { - - // Ensure jQuery events and data on the fixture are properly removed - jQuery("#qunit-fixture").empty(); - // ...even if the jQuery under test has a broken .empty() - supportjQuery("#qunit-fixture").empty(); +QUnit.testDone(function() { // Reset internal jQuery state jQuery.event.global = {}; @@ -166,10 +149,7 @@ reset = function () { // Cleanup globals Globals.cleanup(); - jQuery("#qunit-fixture")[0].innerHTML = QUnit.config.fixture; -}; - -QUnit.testDone(reset); +}); // Register globals for cleanup and the cleanup code itself window.Globals = (function() { @@ -192,4 +172,4 @@ window.Globals = (function() { }; })(); -}); +})(); |