aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2015-07-06 10:13:01 -0400
committerTimmy Willison <timmywillisn@gmail.com>2015-07-06 17:08:42 -0400
commitef77f83db86b806425203d1e5ecbcc119d7b9c32 (patch)
tree19a1a9915213077b85a3873febea7e6cf6348e41 /test
parent589534008873c4c083d14b07cc36c9b2ae4c5399 (diff)
downloadjquery-ef77f83db86b806425203d1e5ecbcc119d7b9c32.tar.gz
jquery-ef77f83db86b806425203d1e5ecbcc119d7b9c32.zip
Deferred: add .catch handler
Fixes gh-2102
Diffstat (limited to 'test')
-rw-r--r--test/unit/deferred.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/unit/deferred.js b/test/unit/deferred.js
index 97f9111dd..af91b3616 100644
--- a/test/unit/deferred.js
+++ b/test/unit/deferred.js
@@ -167,6 +167,42 @@ test( "jQuery.Deferred.then - filtering (fail)", function( assert ) {
});
});
+test( "jQuery.Deferred.catch", function( assert ) {
+ assert.expect( 4 );
+
+ var value1, value2, value3,
+ defer = jQuery.Deferred(),
+ piped = defer.catch(function( a, b ) {
+ return a * b;
+ }),
+ done = jQuery.map( new Array( 3 ), function() { return assert.async(); } );
+
+ piped.done(function( result ) {
+ value3 = result;
+ });
+
+ defer.fail(function( a, b ) {
+ value1 = a;
+ value2 = b;
+ });
+
+ defer.reject( 2, 3 ).catch(function() {
+ assert.strictEqual( value1, 2, "first reject value ok" );
+ assert.strictEqual( value2, 3, "second reject value ok" );
+ assert.strictEqual( value3, 6, "result of filter ok" );
+ done.pop().call();
+ });
+
+ jQuery.Deferred().resolve().catch(function() {
+ assert.ok( false, "then should not be called on resolve" );
+ }).then( done.pop() );
+
+ jQuery.Deferred().reject().catch( jQuery.noop ).done(function( value ) {
+ assert.strictEqual( value, undefined, "then fail callback can return undefined/null" );
+ done.pop().call();
+ });
+});
+
test( "[PIPE ONLY] jQuery.Deferred.pipe - filtering (fail)", function( assert ) {
assert.expect( 4 );