Revised jsonp unit tests and added a test for when the jsonp option is set to false.
This commit is contained in:
parent
158fa822de
commit
0e93b2e24c
1 changed files with 222 additions and 259 deletions
|
@ -1114,286 +1114,249 @@ test("jQuery.getScript(String, Function) - no callback", function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test("jQuery.ajax() - JSONP, Local", function() {
|
jQuery.each( [ "Same Domain", "Cross Domain" ] , function( crossDomain , label ) {
|
||||||
expect(14);
|
|
||||||
|
|
||||||
var count = 0;
|
test("jQuery.ajax() - JSONP, " + label, function() {
|
||||||
function plus(){ if ( ++count == 14 ) start(); }
|
expect(16);
|
||||||
|
|
||||||
stop();
|
var count = 0;
|
||||||
|
function plus(){ if ( ++count == 16 ) start(); }
|
||||||
|
|
||||||
jQuery.ajax({
|
stop();
|
||||||
url: "data/jsonp.php",
|
|
||||||
dataType: "jsonp",
|
|
||||||
success: function(data){
|
|
||||||
ok( data.data, "JSON results returned (GET, no callback)" );
|
|
||||||
plus();
|
|
||||||
},
|
|
||||||
error: function(data){
|
|
||||||
ok( false, "Ajax error JSON (GET, no callback)" );
|
|
||||||
plus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php?callback=?",
|
url: "data/jsonp.php",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
success: function(data){
|
crossDomain: crossDomain,
|
||||||
ok( data.data, "JSON results returned (GET, url callback)" );
|
success: function(data){
|
||||||
plus();
|
ok( data.data, "JSON results returned (GET, no callback)" );
|
||||||
},
|
plus();
|
||||||
error: function(data){
|
},
|
||||||
ok( false, "Ajax error JSON (GET, url callback)" );
|
error: function(data){
|
||||||
plus();
|
ok( false, "Ajax error JSON (GET, no callback)" );
|
||||||
}
|
plus();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php?callback=?",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
data: "callback=?",
|
crossDomain: crossDomain,
|
||||||
success: function(data){
|
success: function(data){
|
||||||
ok( data.data, "JSON results returned (GET, data callback)" );
|
ok( data.data, "JSON results returned (GET, url callback)" );
|
||||||
plus();
|
plus();
|
||||||
},
|
},
|
||||||
error: function(data){
|
error: function(data){
|
||||||
ok( false, "Ajax error JSON (GET, data callback)" );
|
ok( false, "Ajax error JSON (GET, url callback)" );
|
||||||
plus();
|
plus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php?callback=??",
|
url: "data/jsonp.php",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
success: function(data){
|
crossDomain: crossDomain,
|
||||||
ok( data.data, "JSON results returned (GET, url context-free callback)" );
|
data: "callback=?",
|
||||||
plus();
|
success: function(data){
|
||||||
},
|
ok( data.data, "JSON results returned (GET, data callback)" );
|
||||||
error: function(data){
|
plus();
|
||||||
ok( false, "Ajax error JSON (GET, url context-free callback)" );
|
},
|
||||||
plus();
|
error: function(data){
|
||||||
}
|
ok( false, "Ajax error JSON (GET, data callback)" );
|
||||||
});
|
plus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php?callback=??",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
data: "callback=??",
|
crossDomain: crossDomain,
|
||||||
success: function(data){
|
success: function(data){
|
||||||
ok( data.data, "JSON results returned (GET, data context-free callback)" );
|
ok( data.data, "JSON results returned (GET, url context-free callback)" );
|
||||||
plus();
|
plus();
|
||||||
},
|
},
|
||||||
error: function(data){
|
error: function(data){
|
||||||
ok( false, "Ajax error JSON (GET, data context-free callback)" );
|
ok( false, "Ajax error JSON (GET, url context-free callback)" );
|
||||||
plus();
|
plus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php/??",
|
url: "data/jsonp.php",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
success: function(data){
|
crossDomain: crossDomain,
|
||||||
ok( data.data, "JSON results returned (GET, REST-like)" );
|
data: "callback=??",
|
||||||
plus();
|
success: function(data){
|
||||||
},
|
ok( data.data, "JSON results returned (GET, data context-free callback)" );
|
||||||
error: function(data){
|
plus();
|
||||||
ok( false, "Ajax error JSON (GET, REST-like)" );
|
},
|
||||||
plus();
|
error: function(data){
|
||||||
}
|
ok( false, "Ajax error JSON (GET, data context-free callback)" );
|
||||||
});
|
plus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php/???json=1",
|
url: "data/jsonp.php/??",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
success: function(data){
|
crossDomain: crossDomain,
|
||||||
strictEqual( jQuery.type(data), "array", "JSON results returned (GET, REST-like with param)" );
|
success: function(data){
|
||||||
plus();
|
ok( data.data, "JSON results returned (GET, REST-like)" );
|
||||||
},
|
plus();
|
||||||
error: function(data){
|
},
|
||||||
ok( false, "Ajax error JSON (GET, REST-like with param)" );
|
error: function(data){
|
||||||
plus();
|
ok( false, "Ajax error JSON (GET, REST-like)" );
|
||||||
}
|
plus();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php/???json=1",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
data: {
|
crossDomain: crossDomain,
|
||||||
callback: "?"
|
success: function(data){
|
||||||
},
|
strictEqual( jQuery.type(data), "array", "JSON results returned (GET, REST-like with param)" );
|
||||||
success: function(data){
|
plus();
|
||||||
ok( data.data, "JSON results returned (GET, processed data callback)" );
|
},
|
||||||
plus();
|
error: function(data){
|
||||||
},
|
ok( false, "Ajax error JSON (GET, REST-like with param)" );
|
||||||
error: function(data){
|
plus();
|
||||||
ok( false, "Ajax error JSON (GET, processed data callback)" );
|
}
|
||||||
plus();
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
jsonp: "callback",
|
crossDomain: crossDomain,
|
||||||
success: function(data){
|
data: {
|
||||||
ok( data.data, "JSON results returned (GET, data obj callback)" );
|
callback: "?"
|
||||||
plus();
|
},
|
||||||
},
|
success: function(data){
|
||||||
error: function(data){
|
ok( data.data, "JSON results returned (GET, processed data callback)" );
|
||||||
ok( false, "Ajax error JSON (GET, data obj callback)" );
|
plus();
|
||||||
plus();
|
},
|
||||||
}
|
error: function(data){
|
||||||
});
|
ok( false, "Ajax error JSON (GET, processed data callback)" );
|
||||||
|
plus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
jsonpCallback: "jsonpResults",
|
crossDomain: crossDomain,
|
||||||
success: function(data){
|
jsonp: "callback",
|
||||||
ok( data.data, "JSON results returned (GET, custom callback name)" );
|
success: function(data){
|
||||||
plus();
|
ok( data.data, "JSON results returned (GET, data obj callback)" );
|
||||||
},
|
plus();
|
||||||
error: function(data){
|
},
|
||||||
ok( false, "Ajax error JSON (GET, custom callback name)" );
|
error: function(data){
|
||||||
plus();
|
ok( false, "Ajax error JSON (GET, data obj callback)" );
|
||||||
}
|
plus();
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
window.jsonpResults = function(data) {
|
||||||
type: "POST",
|
ok( data.data, "JSON results returned (GET, custom callback function)" );
|
||||||
url: "data/jsonp.php",
|
window.jsonpResults = undefined;
|
||||||
dataType: "jsonp",
|
|
||||||
success: function(data){
|
|
||||||
ok( data.data, "JSON results returned (POST, no callback)" );
|
|
||||||
plus();
|
plus();
|
||||||
},
|
};
|
||||||
error: function(data){
|
|
||||||
ok( false, "Ajax error JSON (GET, data obj callback)" );
|
|
||||||
plus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
type: "POST",
|
url: "data/jsonp.php",
|
||||||
url: "data/jsonp.php",
|
dataType: "jsonp",
|
||||||
data: "callback=?",
|
crossDomain: crossDomain,
|
||||||
dataType: "jsonp",
|
jsonpCallback: "jsonpResults",
|
||||||
success: function(data){
|
success: function(data){
|
||||||
ok( data.data, "JSON results returned (POST, data callback)" );
|
ok( data.data, "JSON results returned (GET, custom callback name)" );
|
||||||
plus();
|
plus();
|
||||||
},
|
},
|
||||||
error: function(data){
|
error: function(data){
|
||||||
ok( false, "Ajax error JSON (POST, data callback)" );
|
ok( false, "Ajax error JSON (GET, custom callback name)" );
|
||||||
plus();
|
plus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php",
|
||||||
jsonp: "callback",
|
dataType: "jsonp",
|
||||||
dataType: "jsonp",
|
crossDomain: crossDomain,
|
||||||
success: function(data){
|
success: function(data){
|
||||||
ok( data.data, "JSON results returned (POST, data obj callback)" );
|
ok( data.data, "JSON results returned (POST, no callback)" );
|
||||||
plus();
|
plus();
|
||||||
},
|
},
|
||||||
error: function(data){
|
error: function(data){
|
||||||
ok( false, "Ajax error JSON (POST, data obj callback)" );
|
ok( false, "Ajax error JSON (GET, data obj callback)" );
|
||||||
plus();
|
plus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//#7578
|
jQuery.ajax({
|
||||||
jQuery.ajax({
|
type: "POST",
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php",
|
||||||
dataType: "jsonp",
|
data: "callback=?",
|
||||||
beforeSend: function(){
|
dataType: "jsonp",
|
||||||
strictEqual( this.cache, false, "cache must be false on JSON request" );
|
crossDomain: crossDomain,
|
||||||
plus();
|
success: function(data){
|
||||||
return false;
|
ok( data.data, "JSON results returned (POST, data callback)" );
|
||||||
}
|
plus();
|
||||||
});
|
},
|
||||||
});
|
error: function(data){
|
||||||
|
ok( false, "Ajax error JSON (POST, data callback)" );
|
||||||
|
plus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test("jQuery.ajax() - JSONP - Custom JSONP Callback", function() {
|
jQuery.ajax({
|
||||||
expect(1);
|
type: "POST",
|
||||||
stop();
|
url: "data/jsonp.php",
|
||||||
|
jsonp: "callback",
|
||||||
|
dataType: "jsonp",
|
||||||
|
crossDomain: crossDomain,
|
||||||
|
success: function(data){
|
||||||
|
ok( data.data, "JSON results returned (POST, data obj callback)" );
|
||||||
|
plus();
|
||||||
|
},
|
||||||
|
error: function(data){
|
||||||
|
ok( false, "Ajax error JSON (POST, data obj callback)" );
|
||||||
|
plus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
window.jsonpResults = function(data) {
|
//#7578
|
||||||
ok( data.data, "JSON results returned (GET, custom callback function)" );
|
jQuery.ajax({
|
||||||
window.jsonpResults = undefined;
|
url: "data/jsonp.php",
|
||||||
start();
|
dataType: "jsonp",
|
||||||
};
|
crossDomain: crossDomain,
|
||||||
|
beforeSend: function(){
|
||||||
|
strictEqual( this.cache, false, "cache must be false on JSON request" );
|
||||||
|
plus();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
jQuery.ajax({
|
jQuery.ajax({
|
||||||
url: "data/jsonp.php",
|
url: "data/jsonp.php?callback=XXX",
|
||||||
dataType: "jsonp",
|
dataType: "jsonp",
|
||||||
jsonpCallback: "jsonpResults"
|
jsonp: false,
|
||||||
});
|
jsonpCallback: "XXX",
|
||||||
});
|
crossDomain: crossDomain,
|
||||||
|
beforeSend: function() {
|
||||||
|
console.log( this.url );
|
||||||
|
},
|
||||||
|
success: function(data){
|
||||||
|
console.log(data);
|
||||||
|
ok( data.data, "JSON results returned (GET, custom callback name with no url manipulation)" );
|
||||||
|
plus();
|
||||||
|
},
|
||||||
|
error: function(data){
|
||||||
|
console.log(data);
|
||||||
|
ok( false, "Ajax error JSON (GET, custom callback name with no url manipulation)" );
|
||||||
|
plus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test("jQuery.ajax() - JSONP, Remote", function() {
|
|
||||||
expect(4);
|
|
||||||
|
|
||||||
var count = 0;
|
|
||||||
function plus(){ if ( ++count == 4 ) start(); }
|
|
||||||
|
|
||||||
var base = window.location.href.replace(/[^\/]*$/, "");
|
|
||||||
|
|
||||||
stop();
|
|
||||||
|
|
||||||
jQuery.ajax({
|
|
||||||
url: base + "data/jsonp.php",
|
|
||||||
dataType: "jsonp",
|
|
||||||
success: function(data){
|
|
||||||
ok( data.data, "JSON results returned (GET, no callback)" );
|
|
||||||
plus();
|
|
||||||
},
|
|
||||||
error: function(data){
|
|
||||||
ok( false, "Ajax error JSON (GET, no callback)" );
|
|
||||||
plus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
jQuery.ajax({
|
|
||||||
url: base + "data/jsonp.php?callback=?",
|
|
||||||
dataType: "jsonp",
|
|
||||||
success: function(data){
|
|
||||||
ok( data.data, "JSON results returned (GET, url callback)" );
|
|
||||||
plus();
|
|
||||||
},
|
|
||||||
error: function(data){
|
|
||||||
ok( false, "Ajax error JSON (GET, url callback)" );
|
|
||||||
plus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
jQuery.ajax({
|
|
||||||
url: base + "data/jsonp.php",
|
|
||||||
dataType: "jsonp",
|
|
||||||
data: "callback=?",
|
|
||||||
success: function(data){
|
|
||||||
ok( data.data, "JSON results returned (GET, data callback)" );
|
|
||||||
plus();
|
|
||||||
},
|
|
||||||
error: function(data){
|
|
||||||
ok( false, "Ajax error JSON (GET, data callback)" );
|
|
||||||
plus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
jQuery.ajax({
|
|
||||||
url: base + "data/jsonp.php",
|
|
||||||
dataType: "jsonp",
|
|
||||||
jsonp: "callback",
|
|
||||||
success: function(data){
|
|
||||||
ok( data.data, "JSON results returned (GET, data obj callback)" );
|
|
||||||
plus();
|
|
||||||
},
|
|
||||||
error: function(data){
|
|
||||||
ok( false, "Ajax error JSON (GET, data obj callback)" );
|
|
||||||
plus();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue