Skip to content
Permalink
Browse files

Fixes #9446. Context is properly propagated using pipe. If context wa…

…s the original deferred, then context is updated to next deferred in the chain. Unit tests added.
  • Loading branch information...
jaubourg committed Jun 30, 2011
1 parent 5b92a5f commit 139135a98aab1c422e5ae05b026535a40d58328f
Showing with 28 additions and 1 deletion.
  1. +1 −1 src/deferred.js
  2. +27 −0 test/unit/deferred.js
@@ -122,7 +122,7 @@ jQuery.extend({
if ( returned && jQuery.isFunction( returned.promise ) ) {
returned.promise().then( newDefer.resolve, newDefer.reject );
} else {
newDefer[ action ]( returned );
newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
}
});
} else {
@@ -275,6 +275,33 @@ test( "jQuery.Deferred.pipe - deferred (fail)", function() {
strictEqual( value3, 6, "result of filter ok" );
});

test( "jQuery.Deferred.pipe - context", function() {

expect(4);

var context = {};

jQuery.Deferred().resolveWith( context, [ 2 ] ).pipe(function( value ) {
return value * 3;
}).done(function( value ) {
strictEqual( this, context, "custom context correctly propagated" );
strictEqual( value, 6, "proper value received" );
});

var defer = jQuery.Deferred(),
piped = defer.pipe(function( value ) {
return value * 3;
});

defer.resolve( 2 );

piped.done(function( value ) {
strictEqual( this.promise(), piped, "default context gets updated to latest defer in the chain" );
strictEqual( value, 6, "proper value received" );
});
});


test( "jQuery.when" , function() {

expect( 23 );

0 comments on commit 139135a

Please sign in to comment.
You can’t perform that action at this time.