module("ajax");
+test("serialize()", function() {
+ expect(1);
+ var data = $(':input').not('button').serialize();
+ // ignore button, IE takes text content as value, not relevant for this test
+ ok( data == 'action=Test&text2=Test&radio1=on&radio2=on&check=on&=on&hidden=&foo[bar]=&name=name&=foobar&select1=&select2=3&select3=1', 'Check form serialization as query string' );
+});
+
+test("param", function() {
+ expect(4);
+ var params = {foo:"bar", baz:42, quux:"All your base are belong to us"};
+ ok( $.param(params) == "foo=bar&baz=42&quux=All%20your%20base%20are%20belong%20to%20us", "simple" );
+
+ params = {someName: [1, 2, 3], regularThing: "blah" };
+ ok( $.param(params) == "someName=1&someName=2&someName=3®ularThing=blah", "with array" );
+
+ params = {"foo[]":["baz", 42, "All your base are belong to us"]};
+ ok( $.param(params) == "foo[]=baz&foo[]=42&foo[]=All%20your%20base%20are%20belong%20to%20us", "more array" );
+
+ params = {"foo[bar]":"baz", "foo[beep]":42, "foo[quux]":"All your base are belong to us"};
+ ok( $.param(params) == "foo[bar]=baz&foo[beep]=42&foo[quux]=All%20your%20base%20are%20belong%20to%20us", "even more arrays" );
+});
+
+test("pass-through request object", function() {
+ expect(7);
+ stop(true);
+ var count = 0;
+ var success = function() {
+ if(count++ == 6)
+ start();
+ }
+ var url = "data/name.php";
+ ok( $.get(url, success), "get" );
+ ok( $.getIfModified(url, success), "getIfModified" );
+ ok( $.post(url, success), "post" );
+ ok( $.getScript("data/test.js", success), "script" );
+ ok( $.getJSON("data/json.php", success), "json" );
+ ok( $.ajax({url: url, success: success}), "generic" );
+});
+
+test("synchronous request", function() {
+ ok( /^{ "data"/.test( $.ajax({url: "data/json.php", async: false}).responseText ), "check returned text" );
+});
+
+test("synchronous request with callbacks", function() {
+ var result;
+ $.ajax({url: "data/json.php", async: false, success: function(data) { result = data; } });
+ ok( /^{ "data"/.test( result ), "check returned text" );
+});
+
test("load(String, Object, Function) - simple: inject text into DOM", function() {
expect(2);
stop();
test("load(String, Object, Function) - inject without callback", function() {
expect(1);
- stop(); // check if load can be called with only url
+ stop(true); // check if load can be called with only url
$('#first').load("data/name.php");
});
});
});
-test("serialize()", function() {
- expect(1);
- var data = $(':input').not('button').serialize();
- // ignore button, IE takes text content as value, not relevant for this test
- ok( data == 'action=Test&text2=Test&radio1=on&radio2=on&check=on&=on&hidden=&foo[bar]=&name=name&=foobar&select1=&select2=3&select3=1', 'Check form serialization as query string' );
-});
-
test("test global handlers - success", function() {
- expect(6);
+ expect(8);
stop();
- var counter = { complete: 0, success: 0, error: 0 },
+ var counter = { complete: 0, success: 0, error: 0, send: 0 },
success = function() { counter.success++ },
error = function() { counter.error++ },
- complete = function() { counter.complete++ };
+ complete = function() { counter.complete++ },
+ send = function() { counter.send++ };
- $('#foo').ajaxStart(complete).ajaxStop(complete).ajaxComplete(complete).ajaxError(error).ajaxSuccess(success);
+ $('#foo').ajaxStart(complete).ajaxStop(complete).ajaxSend(send).ajaxComplete(complete).ajaxError(error).ajaxSuccess(success);
// start with successful test
- $.ajax({url: "data/name.php", success: success, error: error, complete: function() {
+ $.ajax({url: "data/name.php", beforeSend: send, success: success, error: error, complete: function() {
ok( counter.error == 0, 'Check succesful request' );
ok( counter.success == 2, 'Check succesful request' );
ok( counter.complete == 3, 'Check succesful request' );
- counter.error = counter.success = counter.complete = 0;
+ ok( counter.send == 2, 'Check succesful request' );
+ counter.error = counter.success = counter.complete = counter.send = 0;
$.ajaxTimeout(500);
- $.ajax({url: "data/name.php?wait=5", success: success, error: error, complete: function() {
+ $.ajax({url: "data/name.php?wait=5", beforeSend: send, success: success, error: error, complete: function() {
ok( counter.error == 2, 'Check failed request' );
ok( counter.success == 0, 'Check failed request' );
ok( counter.complete == 3, 'Check failed request' );
+ ok( counter.send == 2, 'Check failed request' );
start();
}});
}});
});
test("test global handlers - failure", function() {
- expect(6);
+ expect(8);
stop();
- var counter = { complete: 0, success: 0, error: 0 },
+ var counter = { complete: 0, success: 0, error: 0, send: 0 },
success = function() { counter.success++ },
- error = function() { counter.error++ };
+ error = function() { counter.error++ },
+ complete = function() { counter.complete++ },
+ send = function() { counter.send++ };
$.ajaxTimeout(0);
- $.ajax({url: "data/name.php", global: false, success: success, error: error, complete: function() {
+ $('#foo').ajaxStart(complete).ajaxStop(complete).ajaxSend(send).ajaxComplete(complete).ajaxError(error).ajaxSuccess(success);
+ $.ajax({url: "data/name.php", global: false, beforeSend: send, success: success, error: error, complete: function() {
ok( counter.error == 0, 'Check sucesful request without globals' );
ok( counter.success == 1, 'Check sucesful request without globals' );
ok( counter.complete == 0, 'Check sucesful request without globals' );
- counter.error = counter.success = counter.complete = 0;
+ ok( counter.send == 1, 'Check sucesful request without globals' );
+ counter.error = counter.success = counter.complete = counter.send = 0;
$.ajaxTimeout(500);
- $.ajax({url: "data/name.php?wait=5", global: false, success: success, error: error, complete: function() {
+ $.ajax({url: "data/name.php?wait=5", global: false, beforeSend: send, success: success, error: error, complete: function() {
+ var x = counter;
ok( counter.error == 1, 'Check failed request without globals' );
ok( counter.success == 0, 'Check failed request without globals' );
ok( counter.complete == 0, 'Check failed request without globals' );
+ ok( counter.send == 1, 'Check failed request without globals' );
start();
}});
}});
test("$.getScript(String, Function) - no callback", function() {
expect(1);
- stop();
+ stop(true);
$.getScript("data/test.js");
});
error: pass,
success: fail
});
+ // reset timeout
+ $.ajaxTimeout(0);
});
test("$.ajaxTimeout(Number) with localtimeout", function() {
start();
}
});
-});
\ No newline at end of file
+});
+
+test("$.ajax - beforeSend", function() {
+ expect(1);
+ stop();
+ var check = false;
+ $.ajax({
+ url: "data/name.php",
+ data: {'req': true},
+ beforeSend: function(xml) {
+ check = true
+ },
+ success: function(data) {
+ ok( check, "check beforeSend was executed" );
+ start();
+ }
+ });
+});
+
+test("ajaxSetup()", function() {
+ expect(1);
+ stop();
+ $.ajaxSetup({
+ url: "data/name.php?name=foo",
+ success: function(msg){
+ ok( msg == 'bar', 'Check for GET' );
+ start();
+ }
+ });
+ $.ajax();
+});