]> source.dussan.org Git - jquery.git/commitdiff
Tests: Remove obsolete jQuery data tests
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Mon, 13 Jan 2020 18:23:01 +0000 (19:23 +0100)
committerGitHub <noreply@github.com>
Mon, 13 Jan 2020 18:23:01 +0000 (19:23 +0100)
The tests relied on `jQuery.cache` so they only ever worked in jQuery 1.x.

Closes gh-4586

test/data/testrunner.js
test/unit/attributes.js
test/unit/data.js
test/unit/effects.js

index c4fa5d378d2afb39b340bb8ac925fa3df4777256..816b271a626cc4a92457cde14508a476254b886c 100644 (file)
@@ -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 = {};
 
index 41bdadb1865e88b1037262d501c0c7357e9e0da3..386aadaf365e5d4cd9e822a932e4a546ff75f27c 100644 (file)
@@ -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 ) {
index 7e019a4ce1335b44a6b4d6b605f812a8181527ae..154ea5eebb3724d261124180b13d9c686dbcbd59 100644 (file)
@@ -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(<embed>)", function( assert ) {
index 13190dc5bbad00bc4c913c4f9a1ee6ea056c2a06..278545ab9cad36fc8f130d6f2461ac903f7a0bba 100644 (file)
@@ -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(
                "<div id='show-tests'>" +
                "<div><p><a href='#'></a></p><code></code><pre></pre><span></span></div>" +
@@ -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( "<div/>" ), opt.concat( [ function() {
                        assert.strictEqual( jQuery( this ).css( "display" ), nullParentDisplay,