aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorTimmy Willison <4timmywil@gmail.com>2017-12-11 12:58:35 -0500
committerTimmy Willison <4timmywil@gmail.com>2018-01-08 11:28:35 -0500
commit3a8e44745c014871bc56e94d91e57c45ae4be208 (patch)
tree35bfd2a7dc382712bbc26a9076c4d865e09ae58f /test
parent909e0c99251ee56ec35db0e08d5b1e6219ac8fbc (diff)
downloadjquery-3a8e44745c014871bc56e94d91e57c45ae4be208.tar.gz
jquery-3a8e44745c014871bc56e94d91e57c45ae4be208.zip
Core: deprecate jQuery.proxy (not slated for removal)
Fixes gh-2958 Close gh-3885
Diffstat (limited to 'test')
-rw-r--r--test/unit/core.js48
-rw-r--r--test/unit/deprecated.js48
-rw-r--r--test/unit/event.js15
3 files changed, 56 insertions, 55 deletions
diff --git a/test/unit/core.js b/test/unit/core.js
index 6778b14e9..7c7514ccc 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -1531,54 +1531,6 @@ QUnit.test( "jQuery.isEmptyObject", function( assert ) {
// equal(true, jQuery.isEmptyObject(null), "isEmptyObject on null" );
} );
-QUnit.test( "jQuery.proxy", function( assert ) {
- assert.expect( 9 );
-
- var test2, test3, test4, fn, cb,
- test = function() {
- assert.equal( this, thisObject, "Make sure that scope is set properly." );
- },
- thisObject = { foo: "bar", method: test };
-
- // Make sure normal works
- test.call( thisObject );
-
- // Basic scoping
- jQuery.proxy( test, thisObject )();
-
- // Another take on it
- jQuery.proxy( thisObject, "method" )();
-
- // Make sure it doesn't freak out
- assert.equal( jQuery.proxy( null, thisObject ), undefined, "Make sure no function was returned." );
-
- // Partial application
- test2 = function( a ) {
- assert.equal( a, "pre-applied", "Ensure arguments can be pre-applied." );
- };
- jQuery.proxy( test2, null, "pre-applied" )();
-
- // Partial application w/ normal arguments
- test3 = function( a, b ) {
- assert.equal( b, "normal", "Ensure arguments can be pre-applied and passed as usual." );
- };
- jQuery.proxy( test3, null, "pre-applied" )( "normal" );
-
- // Test old syntax
- test4 = { "meth": function( a ) {
- assert.equal( a, "boom", "Ensure old syntax works." );
- } };
- jQuery.proxy( test4, "meth" )( "boom" );
-
- // jQuery 1.9 improved currying with `this` object
- fn = function() {
- assert.equal( Array.prototype.join.call( arguments, "," ), "arg1,arg2,arg3", "args passed" );
- assert.equal( this.foo, "bar", "this-object passed" );
- };
- cb = jQuery.proxy( fn, null, "arg1", "arg2" );
- cb.call( thisObject, "arg3" );
-} );
-
QUnit.test( "jQuery.parseHTML", function( assert ) {
assert.expect( 23 );
diff --git a/test/unit/deprecated.js b/test/unit/deprecated.js
index 962cad4fa..9837b3bae 100644
--- a/test/unit/deprecated.js
+++ b/test/unit/deprecated.js
@@ -208,3 +208,51 @@ QUnit.test( "jQuery.now", function( assert ) {
assert.ok( typeof jQuery.now() === "number", "jQuery.now is a function" );
} );
+
+QUnit.test( "jQuery.proxy", function( assert ) {
+ assert.expect( 9 );
+
+ var test2, test3, test4, fn, cb,
+ test = function() {
+ assert.equal( this, thisObject, "Make sure that scope is set properly." );
+ },
+ thisObject = { foo: "bar", method: test };
+
+ // Make sure normal works
+ test.call( thisObject );
+
+ // Basic scoping
+ jQuery.proxy( test, thisObject )();
+
+ // Another take on it
+ jQuery.proxy( thisObject, "method" )();
+
+ // Make sure it doesn't freak out
+ assert.equal( jQuery.proxy( null, thisObject ), undefined, "Make sure no function was returned." );
+
+ // Partial application
+ test2 = function( a ) {
+ assert.equal( a, "pre-applied", "Ensure arguments can be pre-applied." );
+ };
+ jQuery.proxy( test2, null, "pre-applied" )();
+
+ // Partial application w/ normal arguments
+ test3 = function( a, b ) {
+ assert.equal( b, "normal", "Ensure arguments can be pre-applied and passed as usual." );
+ };
+ jQuery.proxy( test3, null, "pre-applied" )( "normal" );
+
+ // Test old syntax
+ test4 = { "meth": function( a ) {
+ assert.equal( a, "boom", "Ensure old syntax works." );
+ } };
+ jQuery.proxy( test4, "meth" )( "boom" );
+
+ // jQuery 1.9 improved currying with `this` object
+ fn = function() {
+ assert.equal( Array.prototype.join.call( arguments, "," ), "arg1,arg2,arg3", "args passed" );
+ assert.equal( this.foo, "bar", "this-object passed" );
+ };
+ cb = jQuery.proxy( fn, null, "arg1", "arg2" );
+ cb.call( thisObject, "arg3" );
+} );
diff --git a/test/unit/event.js b/test/unit/event.js
index ccaf72514..e23c6fd29 100644
--- a/test/unit/event.js
+++ b/test/unit/event.js
@@ -694,8 +694,8 @@ QUnit.test( "on(), with different this object", function( assert ) {
};
jQuery( "#firstp" )
- .on( "click", jQuery.proxy( handler1, thisObject ) ).trigger( "click" ).off( "click", handler1 )
- .on( "click", data, jQuery.proxy( handler2, thisObject ) ).trigger( "click" ).off( "click", handler2 );
+ .on( "click", handler1.bind( thisObject ) ).trigger( "click" ).off( "click", handler1 )
+ .on( "click", data, handler2.bind( thisObject ) ).trigger( "click" ).off( "click", handler2 );
assert.ok( !jQuery._data( jQuery( "#firstp" )[ 0 ], "events" ), "Event handler unbound when using different this object and data." );
} );
@@ -1640,18 +1640,19 @@ QUnit.test( ".on()/.off()", function( assert ) {
jQuery( "#body" ).off( "click", "#foo" );
// Test binding with different this object
- jQuery( "#body" ).on( "click", "#foo", jQuery.proxy( function() {
- assert.equal( this.foo, "bar", "on with event scope" ); }, { "foo": "bar" }
- ) );
+ jQuery( "#body" ).on( "click", "#foo", function() {
+ assert.equal( this.foo, "bar", "on with event scope" );
+ }.bind( { "foo": "bar" } ) );
+
jQuery( "#foo" ).trigger( "click" );
jQuery( "#body" ).off( "click", "#foo" );
// Test binding with different this object, event data, and trigger data
- jQuery( "#body" ).on( "click", "#foo", true, jQuery.proxy( function( e, data ) {
+ jQuery( "#body" ).on( "click", "#foo", true, function( e, data ) {
assert.equal( e.data, true, "on with with different this object, event data, and trigger data" );
assert.equal( this.foo, "bar", "on with with different this object, event data, and trigger data" );
assert.equal( data, true, "on with with different this object, event data, and trigger data" );
- }, { "foo": "bar" } ) );
+ }.bind( { "foo": "bar" } ) );
jQuery( "#foo" ).trigger( "click", true );
jQuery( "#body" ).off( "click", "#foo" );