add time to test.html request url using new Date().getTime()
[jquery.git] / src / ajax / ajaxTest.js
index a84df1d..2c798a0 100644 (file)
@@ -22,6 +22,34 @@ test("param", function() {
        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() {
+       expect(2);
+       var result;
+       $.ajax({url: "data/json.php", async: false, success: function(data) { ok(true, "sucess callback executed"); result = data; } });
+       ok( /^{ "data"/.test( result ), "check returned text" );
+});
+
 test("load(String, Object, Function) - simple: inject text into DOM", function() {
        expect(2);
        stop();
@@ -33,7 +61,7 @@ test("load(String, Object, Function) - simple: inject text into DOM", function()
 
 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");
 });
 
@@ -47,7 +75,7 @@ test("load(String, Object, Function) - check scripts", function() {
          ok( $('#ap').html() == 'bar', 'Check if script evaluation has modified DOM');
          start();
        };
-       $('#first').load('data/test.html', function() {
+       $('#first').load('data/test.html?'+new Date().getTime(), function() {
          ok( $('#first').html().match(/^html text/), 'Check content after loading html' );
          ok( testFoo == "foo", 'Check if script was evaluated after load' );
          setTimeout(verifyEvaluation, 600);
@@ -55,47 +83,56 @@ test("load(String, Object, Function) - check scripts", function() {
 });
 
 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();
          }});
        }});
@@ -135,7 +172,7 @@ test("$.getScript(String, Function) - with callback", function() {
 
 test("$.getScript(String, Function) - no callback", function() {
        expect(1);
-       stop();
+       stop(true);
        $.getScript("data/test.js");
 });
 
@@ -199,6 +236,8 @@ test("$.ajaxTimeout(Number) - with global timeout", function() {
          error: pass,
          success: fail
        });
+       // reset timeout
+       $.ajaxTimeout(0);
 });
 
 test("$.ajaxTimeout(Number) with localtimeout", function() {
@@ -257,7 +296,7 @@ test("$.ajax - dataType html", function() {
        };
        $.ajax({
          dataType: "html",
-         url: "data/test.html",
+         url: "data/test.html?"+new Date().getTime(),
          success: function(data) {
            ok( data.match(/^html text/), 'Check content for datatype html' );
            ok( testFoo == "foo", 'Check if script was evaluated for datatype html' );
@@ -279,19 +318,32 @@ test("$.ajax - xml: non-namespace elements inside namespaced elements", function
        });
 });
 
-test("$.ajax - preprocess", function() {
+test("$.ajax - beforeSend", function() {
        expect(1);
        stop();
-       var customHeader = "value-for-custom-header";
+       var check = false;
        $.ajax({
                url: "data/name.php", 
                data: {'req': true},
-               preprocess: function(xml) {
-                       xml.setRequestHeader('customHeader', customHeader)
+               beforeSend: function(xml) {
+                       check = true
                },
                success: function(data) {
-                       ok( data == customHeader, "check return value, should be the custom header sent" );
+                       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();
                }
        });
-});
\ No newline at end of file
+       $.ajax();
+});