X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax%2FajaxTest.js;h=cbc15add5c5823cd9b6fb268fbf5a920e0dadd6e;hb=f1c91fd023ad0bbd01a386bca4d8503e0e27df73;hp=ba5d4a46d0b06940015d670c88f68f26d33787c0;hpb=46faa03820f82e5b03e6b3d73bd9d5b194b2b310;p=jquery.git diff --git a/src/ajax/ajaxTest.js b/src/ajax/ajaxTest.js index ba5d4a4..cbc15ad 100644 --- a/src/ajax/ajaxTest.js +++ b/src/ajax/ajaxTest.js @@ -1,10 +1,32 @@ module("ajax"); -test("load(String, Object, Function) - simple: inject text into DOM", function() { +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("load(String, Object, Function) - simple: inject text into DOM", function() { + expect(2); stop(); $('#first').load("data/name.php", function() { - ok( $('#first').text() == 'ERROR', 'Check if content was injected into the DOM' ); + ok( /^ERROR/.test($('#first').text()), 'Check if content was injected into the DOM' ); start(); }); }); @@ -13,17 +35,12 @@ test("load(String, Object, Function) - inject without callback", function() { expect(1); stop(); // check if load can be called with only url $('#first').load("data/name.php"); - $.get("data/name.php", function() { - ok( $('#first').text() == 'ERROR', 'Check if load works without callback'); - start(); - }); }); test("load(String, Object, Function) - check scripts", function() { - expect(6); + expect(7); stop(); - window.foobar = undefined; - window.foo = undefined; + testFoo = undefined; var verifyEvaluation = function() { ok( foobar == "bar", 'Check if script src was evaluated after load' ); ok( $('#foo').html() == 'foo', 'Check if script evaluation has modified DOM'); @@ -32,18 +49,11 @@ test("load(String, Object, Function) - check scripts", function() { }; $('#first').load('data/test.html', function() { ok( $('#first').html().match(/^html text/), 'Check content after loading html' ); - ok( foo == "foo", 'Check if script was evaluated after load' ); + ok( testFoo == "foo", 'Check if script was evaluated after load' ); setTimeout(verifyEvaluation, 600); }); }); -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); stop(); @@ -109,7 +119,7 @@ test("$.getIfModified(String, Hash, Function)", function() { expect(1); stop(); $.getIfModified("data/name.php", function(msg) { - ok( msg == 'ERROR', 'Check ifModified' ); + ok( /^ERROR/.test(msg), 'Check ifModified' ); start(); }); }); @@ -238,10 +248,9 @@ test("$.ajax - simple post", function() { }); test("$.ajax - dataType html", function() { - expect(4); + expect(5); stop(); - window.foobar = undefined; - window.foo = undefined; + testFoo = undefined; var verifyEvaluation = function() { ok( foobar == "bar", 'Check if script src was evaluated for datatype html' ); start(); @@ -251,7 +260,7 @@ test("$.ajax - dataType html", function() { url: "data/test.html", success: function(data) { ok( data.match(/^html text/), 'Check content for datatype html' ); - ok( foo == "foo", 'Check if script was evaluated for datatype html' ); + ok( testFoo == "foo", 'Check if script was evaluated for datatype html' ); setTimeout(verifyEvaluation, 600); } }); @@ -268,4 +277,21 @@ test("$.ajax - xml: non-namespace elements inside namespaced elements", function start(); } }); +}); + +test("$.ajax - preprocess", function() { + expect(1); + stop(); + var customHeader = "value"; + $.ajax({ + url: "data/name.php", + data: {'req': true}, + beforeSend: function(xml) { + xml.setRequestHeader('X-Custom-Header', customHeader); + }, + success: function(data) { + ok( data == customHeader, "check return value, should be the custom header sent" ); + start(); + } + }); }); \ No newline at end of file