@@ -7,16 +7,6 @@ var host = require('../config').host;
77module . exports = function ( ) {
88
99describe ( 'Resource' , function ( ) {
10- var random = Math . random ;
11-
12- before ( function ( ) {
13- Math . random = function ( ) { return 1 } ;
14- } )
15-
16- after ( function ( ) {
17- Math . random = random ;
18- } ) ;
19-
2010 describe ( '.constructor' , function ( ) {
2111 it ( 'initializes url, dynamic and options' , function ( done ) {
2212 var resource = new Resource ( 'http://solidus.com/page' ) ;
@@ -313,7 +303,7 @@ describe('Resource', function() {
313303 if ( util . isNode || util . supportsCORS ) {
314304 assert . deepEqual ( res . data , { url : '/page?a=1&b=2' } ) ;
315305 } else {
316- assert . deepEqual ( res . data , { url : '/page?a=1&b=2&callback=solidus_client_jsonp_callback_100000 ' } ) ;
306+ assert . deepEqual ( res . data , { url : '/page?a=1&b=2&callback=solidus_client_jsonp_callback ' } ) ;
317307 }
318308 done ( ) ;
319309 } ) ;
@@ -369,19 +359,46 @@ describe('Resource', function() {
369359
370360 describe ( 'with jsonp' , function ( ) {
371361 it ( 'with successful response' , function ( done ) {
372- var resource = new Resource ( { url : 'http://localhost:8081 /page?a=1', query : { b : 2 } , jsonp : true } ) ;
362+ var resource = new Resource ( { url : host + ' /page?a=1', query : { b : 2 } , jsonp : true } ) ;
373363 resource . get ( function ( err , res ) {
374364 assert . equal ( err , null ) ;
375- assert . deepEqual ( res . data , { url : '/page?a=1&b=2&callback=solidus_client_jsonp_callback_100000 ' } ) ;
365+ assert . deepEqual ( res . data , { url : '/page?a=1&b=2&callback=solidus_client_jsonp_callback ' } ) ;
376366 done ( ) ;
377367 } ) ;
378368 } ) ;
379369
380370 it ( 'with timeout' , function ( done ) {
381- var resource = new Resource ( { url : 'http://localhost:8081/with-delay' , jsonp : true , timeout : 1 } ) ;
371+ var called ;
372+ var resource = new Resource ( { url : host + '/with-delay' , jsonp : true , timeout : 1 } ) ;
382373 resource . get ( function ( err , res ) {
383374 assert . equal ( err . message , 'timeout of 1ms exceeded' ) ;
384- assert ( ! res . data )
375+ assert ( ! res . data ) ;
376+ assert ( ! called ) ;
377+ called = true ;
378+
379+ // Highjack the jsonp callback, to end the test when the real request come back
380+ var oldCallback = window [ err . callbackName ] ;
381+ window [ err . callbackName ] = function ( data ) {
382+ assert . deepEqual ( data , { url : '/with-delay?callback=solidus_client_jsonp_callback' } ) ;
383+ oldCallback ( data ) ;
384+ assert ( ! window [ err . callbackName ] ) ;
385+ done ( ) ;
386+ }
387+ } ) ;
388+ } ) ;
389+
390+ it ( 'with connection error' , function ( done ) {
391+ // If this test fails, maybe you have something running on port 8888?
392+ var called ;
393+ var resource = new Resource ( { url : 'http://localhost:8888' , jsonp : true , timeout : 1 } ) ;
394+ resource . get ( function ( err , res ) {
395+ assert . equal ( err . message , 'timeout of 1ms exceeded' ) ;
396+ assert ( ! res . data ) ;
397+ assert ( ! called ) ;
398+ called = true ;
399+
400+ // The real request will never come back
401+ window [ err . callbackName ] ( { } ) ;
385402 done ( ) ;
386403 } ) ;
387404 } ) ;
@@ -434,7 +451,7 @@ describe('Resource', function() {
434451 var resource = new Resource ( { url : host + '/with-post-object?a=1' , query : { b : 2 } , jsonp : true } ) ;
435452 resource . post ( { id : 1 , type : 'object' } , function ( err , res ) {
436453 assert . equal ( err , null ) ;
437- assert . deepEqual ( res . data , { url : '/with-post-object?a=1&b=2&callback=solidus_client_jsonp_callback_100000 &id=1&type=object' } ) ;
454+ assert . deepEqual ( res . data , { url : '/with-post-object?a=1&b=2&callback=solidus_client_jsonp_callback &id=1&type=object' } ) ;
438455 done ( ) ;
439456 } ) ;
440457 } ) ;
@@ -443,7 +460,7 @@ describe('Resource', function() {
443460 var resource = new Resource ( { url : host + '/with-post-string?a=1' , query : { b : 2 } , jsonp : true } ) ;
444461 resource . post ( 'id=1&type=string' , function ( err , res ) {
445462 assert . equal ( err , null ) ;
446- assert . deepEqual ( res . data , { url : '/with-post-string?a=1&b=2&callback=solidus_client_jsonp_callback_100000 &id=1&type=string' } ) ;
463+ assert . deepEqual ( res . data , { url : '/with-post-string?a=1&b=2&callback=solidus_client_jsonp_callback &id=1&type=string' } ) ;
447464 done ( ) ;
448465 } ) ;
449466 } ) ;
@@ -452,7 +469,7 @@ describe('Resource', function() {
452469 var resource = new Resource ( { url : host + '/with-post-empty?a=1' , query : { b : 2 } , jsonp : true } ) ;
453470 resource . post ( null , function ( err , res ) {
454471 assert . equal ( err , null ) ;
455- assert . deepEqual ( res . data , { url : '/with-post-empty?a=1&b=2&callback=solidus_client_jsonp_callback_100000 ' } ) ;
472+ assert . deepEqual ( res . data , { url : '/with-post-empty?a=1&b=2&callback=solidus_client_jsonp_callback ' } ) ;
456473 done ( ) ;
457474 } ) ;
458475 } ) ;
0 commit comments