X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=sidebyside;f=test%2Funit%2Fajax.js;h=4478c9b89f58c1264946db9030e906aaede80661;hb=7638fc58354e295f96a2d948adcb1ce1c2da60b3;hp=2a6bc32c6e2cd3538038d706f95b031d91ba98e2;hpb=6649ae290373e147ef5d2f6b3664dadc1e2779a6;p=jquery.git diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 2a6bc32..4478c9b 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -70,6 +70,44 @@ test("jQuery.ajax() - error callbacks", function() { }); }); +test("Ajax events with context", function() { + expect(6); + + stop(); + var context = {}; + + function event(e){ + equals( this, context, e.type ); + } + + function callback(){ + equals( this, context, "context is preserved on callback" ); + } + + jQuery('#foo').add(context) + .ajaxSend(event) + .ajaxComplete(event) + .ajaxError(event) + .ajaxSuccess(event); + + jQuery.ajax({ + url: url("data/name.html"), + beforeSend: callback, + success: callback, + error: callback, + complete:function(){ + callback.call(this); + setTimeout(proceed, 300); + }, + context:context + }); + + function proceed(){ + jQuery('#foo').add(context).unbind(); + start(); + } +}); + test("jQuery.ajax() - disabled globals", function() { expect( 3 ); stop(); @@ -183,7 +221,7 @@ test("jQuery.ajax - dataType html", function() { }); test("serialize()", function() { - expect(6); + expect(5); equals( jQuery('#form').serialize(), "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&select1=&select2=3&select3=1&select3=2", @@ -205,24 +243,39 @@ test("serialize()", function() { "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&select1=&select2=3&select3=1&select3=2&T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=", 'Multiple form serialization as query string'); + /* Temporarily disabled. Opera 10 has problems with form serialization. equals( jQuery('#form, #testForm :input').serialize(), "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&select1=&select2=3&select3=1&select3=2&T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=", 'Mixed form/input serialization as query string'); + */ }); test("jQuery.param()", function() { - expect(4); + expect(8); var params = {foo:"bar", baz:42, quux:"All your base are belong to us"}; equals( jQuery.param(params), "foo=bar&baz=42&quux=All+your+base+are+belong+to+us", "simple" ); params = {someName: [1, 2, 3], regularThing: "blah" }; equals( jQuery.param(params), "someName=1&someName=2&someName=3®ularThing=blah", "with array" ); + params = {foo: ['a', 'b', 'c']}; + equals( jQuery.param(params), "foo=a&foo=b&foo=c", "with array of strings" ); + params = {"foo[]":["baz", 42, "All your base are belong to us"]}; equals( jQuery.param(params), "foo%5B%5D=baz&foo%5B%5D=42&foo%5B%5D=All+your+base+are+belong+to+us", "more array" ); params = {"foo[bar]":"baz", "foo[beep]":42, "foo[quux]":"All your base are belong to us"}; equals( jQuery.param(params), "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bquux%5D=All+your+base+are+belong+to+us", "even more arrays" ); + + params = {foo: {bar: "baz", beep: 42, quux: "All your base are belong to us"}}; + equals( jQuery.param(params), "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bquux%5D=All+your+base+are+belong+to+us", "nested object" ); + + params = {foo: {"bar[]": [1,2,3]}}; + equals( jQuery.param(params), "foo%5Bbar%5D%5B%5D=1&foo%5Bbar%5D%5B%5D=2&foo%5Bbar%5D%5B%5D=3", "nested array"); + + params = {foo: [{bar: "baz", beep: 42}, {bar: "baz2", beep: 43}]}; + equals( jQuery.param(params), "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bbar%5D=baz2&foo%5Bbeep%5D=43", "nested array of objects" ); + }); test("synchronous request", function() { @@ -269,19 +322,20 @@ test("pass-through request object", function() { test("ajax cache", function () { expect(18); + stop(); var count = 0; jQuery("#firstp").bind("ajaxSuccess", function (e, xml, s) { var re = /_=(.*?)(&|$)/g; - var oldOne = null; + var oldOne = null; for (var i = 0; i < 6; i++) { - var ret = re.exec(s.url); + var ret = re.exec(s.url); if (!ret) { break; } - oldOne = ret[1]; + oldOne = ret[1]; } equals(i, 1, "Test to make sure only one 'no-cache' parameter is there"); ok(oldOne != "tobereplaced555", "Test to be sure parameter (if it was there) was replaced");