]> source.dussan.org Git - jquery.git/commitdiff
Data: test that delete is not used on DOM nodes
authorJason Bedard <jason+github@jbedard.ca>
Tue, 8 Sep 2015 18:30:54 +0000 (20:30 +0200)
committerMichał Gołębiowski <m.goleb@gmail.com>
Tue, 8 Sep 2015 18:31:06 +0000 (20:31 +0200)
(test cherry-picked from 0e982433eb94391b3e9f6838d9b8fbf9bb31abf9)

Closes gh-2479

test/unit/event.js

index 0f500e6cdaa67df932ce8a4eef99dd0f06c1d34c..07b71a15a83604eb76ae216d52d0ffa3d887b593 100644 (file)
@@ -2725,6 +2725,30 @@ QUnit.test( "Inline event result is returned (#13993)", function( assert ) {
        assert.equal( result, 42, "inline handler returned value" );
 } );
 
+QUnit.test( ".off() removes the expando when there's no more data", function( assert ) {
+       assert.expect( 2 );
+
+       var key,
+               div = jQuery( "<div/>" ).appendTo( "#qunit-fixture" );
+
+       div.on( "click", false );
+       div.on( "custom", function() {
+               assert.ok( true, "Custom event triggered" );
+       } );
+       div.trigger( "custom" );
+       div.off( "click custom" );
+
+       // Make sure the expando is gone
+       for ( key in div[ 0 ] ) {
+               if ( /^jQuery/.test( key ) ) {
+                       assert.strictEqual(
+                               div[ 0 ][ key ], undefined,
+                               "Expando was not removed when there was no more data"
+                       );
+               }
+       }
+} );
+
 QUnit.test( "preventDefault() on focusin does not throw exception", function( assert ) {
        assert.expect( 1 );