]> source.dussan.org Git - jquery.git/commitdiff
Tests: More improvments for testrunner
authorOleg Gaidarenko <markelog@gmail.com>
Tue, 18 Feb 2014 16:13:48 +0000 (20:13 +0400)
committerOleg Gaidarenko <markelog@gmail.com>
Tue, 15 Apr 2014 13:45:58 +0000 (17:45 +0400)
Conform to style guide and simplify it

test/data/testinit.js
test/data/testrunner.js

index 06f33d19b22ce7efabbc9a011f354f6baca8fac7..2751f65cc99644d5cf5373439ee41b5ee73e6afa 100644 (file)
@@ -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;
index 2b15dd2e0554dba33fc317a5f26fc109f251e4ad..ea7cf7d7a2da9a944a1e9518c42699dfa3aefa29 100644 (file)
@@ -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() {
        };
 })();
 
-});
+})();