diff --git a/test/data/testrunner.js b/test/data/testrunner.js index c4fa5d378..816b271a6 100644 --- a/test/data/testrunner.js +++ b/test/data/testrunner.js @@ -21,74 +21,6 @@ QUnit.config.testTimeout = 60e3; // 1 minute // Enforce an "expect" argument or expect() call in all test bodies. QUnit.config.requireExpects = true; -/** - * @param {jQuery|HTMLElement|Object|Array} elems Target (or array of targets) for jQuery.data. - * @param {string} key - */ -QUnit.assert.expectJqData = function( env, elems, key ) { - var i, elem, expando; - - // As of jQuery 2.0, there will be no "cache"-data is - // stored and managed completely below the API surface - if ( jQuery.cache ) { - env.checkJqData = true; - - if ( elems.jquery && elems.toArray ) { - elems = elems.toArray(); - } - if ( !Array.isArray( elems ) ) { - elems = [ elems ]; - } - - for ( i = 0; i < elems.length; 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, - // in that case we can't test that target for memory leaks. - // But we don't have to since in that case the data will/must will - // be available as long as the object is not garbage collected by - // the js engine, and when it is, the data will be removed with it. - if ( !elem.nodeType ) { - - // Fixes false positives for dataTests(window), dataTests({}). - continue; - } - - expando = elem[ jQuery.expando ]; - - if ( expando === undefined ) { - - // In this case the element exists fine, but - // jQuery.data (or internal data) was never (in)directly - // called. - // Since this method was called it means some data was - // expected to be found, but since there is nothing, fail early - // (instead of in teardown). - this.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 ); - } else { - expectedDataKeys[ expando ] = [ key ]; - } - } - } - } - -}; -QUnit.config.urlConfig.push( { - id: "jqdata", - label: "Always check jQuery.data", - tooltip: "Trigger QUnit.expectJqData detection for all tests " + - "instead of just the ones that call it" -} ); - /** * Ensures that tests have cleaned up properly after themselves. Should be passed as the * teardown function on all modules' lifecycle object. @@ -97,30 +29,6 @@ window.moduleTeardown = function( assert ) { 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 ]; - if ( !QUnit.equiv( expectedKeys, actualKeys ) ) { - assert.deepEqual( actualKeys, expectedKeys, "Expected keys exist in jQuery.cache" ); - } - 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 ) { - assert.deepEqual( - expectedDataKeys[ i ], - undefined, - "No unexpected keys were left in jQuery.cache (#" + i + ")" - ); - delete expectedDataKeys[ i ]; - } - } - // Reset data register expectedDataKeys = {}; diff --git a/test/unit/attributes.js b/test/unit/attributes.js index 41bdadb18..386aadaf3 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -1411,10 +1411,6 @@ var testToggleClass = function( valueObj, assert ) { e.toggleClass( false ); e.toggleClass(); assert.ok( e.is( ".testD.testE" ), "Assert class present (restored from data)" ); - - // Cleanup - e.removeClass( "testD" ); - assert.expectJqData( this, e[ 0 ], "__className__" ); }; QUnit.test( "toggleClass(String|boolean|undefined[, boolean])", function( assert ) { diff --git a/test/unit/data.js b/test/unit/data.js index 7e019a4ce..154ea5eeb 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -132,11 +132,6 @@ QUnit.test( "jQuery.data(div)", function( assert ) { var div = document.createElement( "div" ); dataTests( div, assert ); - - // We stored one key in the private data - // assert that nothing else was put in there, and that that - // one stayed there. - assert.expectJqData( this, div, "foo" ); } ); QUnit.test( "jQuery.data({})", function( assert ) { @@ -159,8 +154,6 @@ QUnit.test( "jQuery.data(document)", function( assert ) { assert.expect( 25 ); dataTests( document, assert ); - - assert.expectJqData( this, document, "foo" ); } ); QUnit.test( "jQuery.data()", function( assert ) { diff --git a/test/unit/effects.js b/test/unit/effects.js index 13190dc5b..278545ab9 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -90,9 +90,6 @@ QUnit.test( "show()", function( assert ) { assert.ok( pass, "Show with " + name + " does not call animate callback" ); } ); - // Tolerate data from show()/hide() - assert.expectJqData( this, div, "olddisplay" ); - jQuery( "
" + "

" + @@ -217,8 +214,6 @@ supportjQuery.each( hideOptions, function( type, setup ) { } ); clock.tick( 300 ); - - assert.expectJqData( this, $span, "olddisplay" ); } ); // Support: IE 11+, Edge 12 - 18+ @@ -251,8 +246,6 @@ supportjQuery.each( hideOptions, function( type, setup ) { } ); clock.tick( 300 ); - - assert.expectJqData( this, $shadowChild, "olddisplay" ); } ); } ); @@ -1161,9 +1154,6 @@ QUnit.test( "interrupt toggle", function( assert ) { // Save original property value for comparison jQuery.data( this, "startVal", jQuery( this ).css( prop ) ); - - // Expect olddisplay data from our .hide() call below - assert.expectJqData( env, this, "olddisplay" ); } ); // Interrupt a hiding toggle @@ -1613,8 +1603,6 @@ QUnit.test( "animate should set display for disconnected nodes", function( asser assert.strictEqual( $divInline.show()[ 0 ].style.display, "inline", "show() should not change display if it already set" ); - assert.expectJqData( env, $divNone[ 0 ], "olddisplay" ); - jQuery.each( showMethods, function( name, opt ) { jQuery.fn[ name ].apply( jQuery( "
" ), opt.concat( [ function() { assert.strictEqual( jQuery( this ).css( "display" ), nullParentDisplay,