ajax.js (21526B)
1 module("ajax"); 2 3 // Safari 3 randomly crashes when running these tests, 4 // but only in the full suite - you can run just the Ajax 5 // tests and they'll pass 6 //if ( !jQuery.browser.safari ) { 7 8 if ( !isLocal ) { 9 10 test("$.ajax() - success callbacks", function() { 11 expect( 8 ); 12 13 $.ajaxSetup({ timeout: 0 }); 14 15 stop(); 16 17 setTimeout(function(){ 18 $('#foo').ajaxStart(function(){ 19 ok( true, "ajaxStart" ); 20 }).ajaxStop(function(){ 21 ok( true, "ajaxStop" ); 22 start(); 23 }).ajaxSend(function(){ 24 ok( true, "ajaxSend" ); 25 }).ajaxComplete(function(){ 26 ok( true, "ajaxComplete" ); 27 }).ajaxError(function(){ 28 ok( false, "ajaxError" ); 29 }).ajaxSuccess(function(){ 30 ok( true, "ajaxSuccess" ); 31 }); 32 33 $.ajax({ 34 url: url("data/name.html"), 35 beforeSend: function(){ ok(true, "beforeSend"); }, 36 success: function(){ ok(true, "success"); }, 37 error: function(){ ok(false, "error"); }, 38 complete: function(){ ok(true, "complete"); } 39 }); 40 }, 13); 41 }); 42 43 /* mozilla: the ajaxSuccess part fails intermittently on MacOSX 44 45 test("$.ajax() - error callbacks", function() { 46 expect( 7 ); 47 stop(); 48 49 $('#foo').ajaxStart(function(){ 50 ok( true, "ajaxStart" ); 51 }).ajaxStop(function(){ 52 ok( true, "ajaxStop" ); 53 start(); 54 }).ajaxSend(function(){ 55 ok( true, "ajaxSend" ); 56 }).ajaxComplete(function(){ 57 ok( true, "ajaxComplete" ); 58 }).ajaxError(function(){ 59 ok( true, "ajaxError" ); 60 }).ajaxSuccess(function(){ 61 ok( false, "ajaxSuccess" ); 62 }) 63 ; 64 65 $.ajaxSetup({ timeout: 500 }); 66 67 $.ajax({ 68 url: url("data/name.php?wait=5"), 69 beforeSend: function(){ ok(true, "beforeSend"); }, 70 success: function(){ ok(false, "success"); }, 71 error: function(){ ok(true, "error"); }, 72 complete: function(){ ok(true, "complete"); } 73 }); 74 }); 75 76 */ 77 78 test("$.ajax() - disabled globals", function() { 79 expect( 3 ); 80 stop(); 81 82 $('#foo').ajaxStart(function(){ 83 ok( false, "ajaxStart" ); 84 }).ajaxStop(function(){ 85 ok( false, "ajaxStop" ); 86 }).ajaxSend(function(){ 87 ok( false, "ajaxSend" ); 88 }).ajaxComplete(function(){ 89 ok( false, "ajaxComplete" ); 90 }).ajaxError(function(){ 91 ok( false, "ajaxError" ); 92 }).ajaxSuccess(function(){ 93 ok( false, "ajaxSuccess" ); 94 }); 95 96 $.ajax({ 97 global: false, 98 url: url("data/name.html"), 99 beforeSend: function(){ ok(true, "beforeSend"); }, 100 success: function(){ ok(true, "success"); }, 101 error: function(){ ok(false, "error"); }, 102 complete: function(){ 103 ok(true, "complete"); 104 setTimeout(function(){ start(); }, 13); 105 } 106 }); 107 }); 108 109 test("$.ajax - xml: non-namespace elements inside namespaced elements", function() { 110 expect(3); 111 stop(); 112 $.ajax({ 113 url: url("data/with_fries.xml"), 114 dataType: "xml", 115 success: function(resp) { 116 equals( $("properties", resp).length, 1, 'properties in responseXML' ); 117 equals( $("jsconf", resp).length, 1, 'jsconf in responseXML' ); 118 equals( $("thing", resp).length, 2, 'things in responseXML' ); 119 start(); 120 } 121 }); 122 }); 123 124 test("$.ajax - beforeSend", function() { 125 expect(1); 126 stop(); 127 128 var check = false; 129 130 $.ajaxSetup({ timeout: 0 }); 131 132 $.ajax({ 133 url: url("data/name.html"), 134 beforeSend: function(xml) { 135 check = true; 136 }, 137 success: function(data) { 138 ok( check, "check beforeSend was executed" ); 139 start(); 140 } 141 }); 142 }); 143 144 test("$.ajax - beforeSend, cancel request (#2688)", function() { 145 expect(2); 146 var request = $.ajax({ 147 url: url("data/name.html"), 148 beforeSend: function() { 149 ok( true, "beforeSend got called, canceling" ); 150 return false; 151 }, 152 success: function() { 153 ok( false, "request didn't get canceled" ); 154 }, 155 complete: function() { 156 ok( false, "request didn't get canceled" ); 157 }, 158 error: function() { 159 ok( false, "request didn't get canceled" ); 160 } 161 }); 162 ok( request === false, "canceled request must return false instead of XMLHttpRequest instance" ); 163 }); 164 165 var foobar; 166 167 test("$.ajax - dataType html", function() { 168 expect(5); 169 stop(); 170 171 foobar = null; 172 testFoo = undefined; 173 174 var verifyEvaluation = function() { 175 equals( testFoo, "foo", 'Check if script was evaluated for datatype html' ); 176 equals( foobar, "bar", 'Check if script src was evaluated for datatype html' ); 177 start(); 178 }; 179 180 $.ajax({ 181 dataType: "html", 182 url: url("data/test.html"), 183 success: function(data) { 184 $("#ap").html(data); 185 ok( data.match(/^html text/), 'Check content for datatype html' ); 186 setTimeout(verifyEvaluation, 600); 187 } 188 }); 189 }); 190 191 test("serialize()", function() { 192 expect(6); 193 194 equals( $('#form').serialize(), 195 "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2", 196 'Check form serialization as query string'); 197 198 equals( $('#form :input').serialize(), 199 "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2", 200 'Check input serialization as query string'); 201 202 equals( $('#testForm').serialize(), 203 'T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=', 204 'Check form serialization as query string'); 205 206 equals( $('#testForm :input').serialize(), 207 'T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=', 208 'Check input serialization as query string'); 209 210 equals( $('#form, #testForm').serialize(), 211 "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&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=", 212 'Multiple form serialization as query string'); 213 214 equals( $('#form, #testForm :input').serialize(), 215 "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&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=", 216 'Mixed form/input serialization as query string'); 217 }); 218 219 test("$.param()", function() { 220 expect(4); 221 var params = {foo:"bar", baz:42, quux:"All your base are belong to us"}; 222 equals( $.param(params), "foo=bar&baz=42&quux=All+your+base+are+belong+to+us", "simple" ); 223 224 params = {someName: [1, 2, 3], regularThing: "blah" }; 225 equals( $.param(params), "someName=1&someName=2&someName=3®ularThing=blah", "with array" ); 226 227 params = {"foo[]":["baz", 42, "All your base are belong to us"]}; 228 equals( $.param(params), "foo%5B%5D=baz&foo%5B%5D=42&foo%5B%5D=All+your+base+are+belong+to+us", "more array" ); 229 230 params = {"foo[bar]":"baz", "foo[beep]":42, "foo[quux]":"All your base are belong to us"}; 231 equals( $.param(params), "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bquux%5D=All+your+base+are+belong+to+us", "even more arrays" ); 232 }); 233 234 test("synchronous request", function() { 235 expect(1); 236 ok( /^{ "data"/.test( $.ajax({url: url("data/json_obj.js"), async: false}).responseText ), "check returned text" ); 237 }); 238 239 test("synchronous request with callbacks", function() { 240 expect(2); 241 var result; 242 $.ajax({url: url("data/json_obj.js"), async: false, success: function(data) { ok(true, "success callback executed"); result = data; } }); 243 ok( /^{ "data"/.test( result ), "check returned text" ); 244 }); 245 246 test("pass-through request object", function() { 247 expect(8); 248 stop(true); 249 250 var target = "data/name.html"; 251 var successCount = 0; 252 var errorCount = 0; 253 var errorEx = ""; 254 var success = function() { 255 successCount++; 256 }; 257 $("#foo").ajaxError(function (e, xml, s, ex) { 258 errorCount++; 259 errorEx += ": " + xml.status; 260 }); 261 $("#foo").one('ajaxStop', function () { 262 equals(successCount, 5, "Check all ajax calls successful"); 263 equals(errorCount, 0, "Check no ajax errors (status" + errorEx + ")"); 264 $("#foo").unbind('ajaxError'); 265 start(); 266 }); 267 268 ok( $.get(url(target), success), "get" ); 269 ok( $.post(url(target), success), "post" ); 270 ok( $.getScript(url("data/test.js"), success), "script" ); 271 ok( $.getJSON(url("data/json_obj.js"), success), "json" ); 272 ok( $.ajax({url: url(target), success: success}), "generic" ); 273 }); 274 275 /* mozilla: php not currently supported in mochitest (08/08/2008) 276 test("ajax cache", function () { 277 expect(18); 278 stop(); 279 280 var count = 0; 281 282 $("#firstp").bind("ajaxSuccess", function (e, xml, s) { 283 var re = /_=(.*?)(&|$)/g; 284 var oldOne = null; 285 for (var i = 0; i < 6; i++) { 286 var ret = re.exec(s.url); 287 if (!ret) { 288 break; 289 } 290 oldOne = ret[1]; 291 } 292 equals(i, 1, "Test to make sure only one 'no-cache' parameter is there"); 293 ok(oldOne != "tobereplaced555", "Test to be sure parameter (if it was there) was replaced"); 294 if(++count == 6) 295 start(); 296 }); 297 298 ok( $.ajax({url: "data/text.php", cache:false}), "test with no parameters" ); 299 ok( $.ajax({url: "data/text.php?pizza=true", cache:false}), "test with 1 parameter" ); 300 ok( $.ajax({url: "data/text.php?_=tobereplaced555", cache:false}), "test with _= parameter" ); 301 ok( $.ajax({url: "data/text.php?pizza=true&_=tobereplaced555", cache:false}), "test with 1 parameter plus _= one" ); 302 ok( $.ajax({url: "data/text.php?_=tobereplaced555&tv=false", cache:false}), "test with 1 parameter plus _= one before it" ); 303 ok( $.ajax({url: "data/text.php?name=David&_=tobereplaced555&washere=true", cache:false}), "test with 2 parameters surrounding _= one" ); 304 }); 305 */ 306 307 test("global ajaxSettings", function() { 308 expect(2); 309 310 var tmp = jQuery.extend({}, jQuery.ajaxSettings); 311 var orig = { url: "data/with_fries.xml" }; 312 var t; 313 314 $.ajaxSetup({ data: {foo: 'bar', bar: 'BAR'} }); 315 316 t = jQuery.extend({}, orig); 317 t.data = {}; 318 $.ajax(t); 319 ok( t.url.indexOf('foo') > -1 && t.url.indexOf('bar') > -1, "Check extending {}" ); 320 321 t = jQuery.extend({}, orig); 322 t.data = { zoo: 'a', ping: 'b' }; 323 $.ajax(t); 324 ok( t.url.indexOf('ping') > -1 && t.url.indexOf('zoo') > -1 && t.url.indexOf('foo') > -1 && t.url.indexOf('bar') > -1, "Check extending { zoo: 'a', ping: 'b' }" ); 325 326 jQuery.ajaxSettings = tmp; 327 }); 328 329 test("load(String)", function() { 330 expect(1); 331 stop(true); // check if load can be called with only url 332 $('#first').load("data/name.html", start); 333 }); 334 335 test("load('url selector')", function() { 336 expect(1); 337 stop(true); // check if load can be called with only url 338 $('#first').load("data/test3.html div.user", function(){ 339 equals( $(this).children("div").length, 2, "Verify that specific elements were injected" ); 340 start(); 341 }); 342 }); 343 344 test("load(String, Function) with ajaxSetup on dataType json, see #2046", function() { 345 expect(1); 346 stop(); 347 $.ajaxSetup({ dataType: "json" }); 348 $("#first").ajaxComplete(function (e, xml, s) { 349 equals( s.dataType, "html", "Verify the load() dataType was html" ); 350 $("#first").unbind("ajaxComplete"); 351 $.ajaxSetup({ dataType: "" }); 352 start(); 353 }); 354 $('#first').load("data/test3.html"); 355 }); 356 357 test("load(String, Function) - simple: inject text into DOM", function() { 358 expect(2); 359 stop(); 360 $('#first').load(url("data/name.html"), function() { 361 ok( /^ERROR/.test($('#first').text()), 'Check if content was injected into the DOM' ); 362 start(); 363 }); 364 }); 365 366 test("load(String, Function) - check scripts", function() { 367 expect(7); 368 stop(); 369 window.testFoo = undefined; 370 window.foobar = null; 371 var verifyEvaluation = function() { 372 equals( foobar, "bar", 'Check if script src was evaluated after load' ); 373 equals( $('#ap').html(), 'bar', 'Check if script evaluation has modified DOM'); 374 start(); 375 }; 376 $('#first').load(url('data/test.html'), function() { 377 ok( $('#first').html().match(/^html text/), 'Check content after loading html' ); 378 equals( $('#foo').html(), 'foo', 'Check if script evaluation has modified DOM'); 379 equals( testFoo, "foo", 'Check if script was evaluated after load' ); 380 setTimeout(verifyEvaluation, 600); 381 }); 382 }); 383 384 test("load(String, Function) - check file with only a script tag", function() { 385 expect(3); 386 stop(); 387 testFoo = undefined; 388 $('#first').load(url('data/test2.html'), function() { 389 equals( $('#foo').html(), 'foo', 'Check if script evaluation has modified DOM'); 390 equals( testFoo, "foo", 'Check if script was evaluated after load' ); 391 start(); 392 }); 393 }); 394 395 test("$.get(String, Hash, Function) - parse xml and use text() on nodes", function() { 396 expect(2); 397 stop(); 398 $.get(url('data/dashboard.xml'), function(xml) { 399 var content = []; 400 $('tab', xml).each(function() { 401 content.push($(this).text()); 402 }); 403 equals( content[0], 'blabla', 'Check first tab'); 404 equals( content[1], 'blublu', 'Check second tab'); 405 start(); 406 }); 407 }); 408 409 test("$.getScript(String, Function) - with callback", function() { 410 expect(2); 411 stop(); 412 window.foobar = null; 413 $.getScript(url("data/test.js"), function() { 414 equals( foobar, "bar", 'Check if script was evaluated' ); 415 setTimeout(start, 100); 416 }); 417 }); 418 419 test("$.getScript(String, Function) - no callback", function() { 420 expect(1); 421 stop(true); 422 $.getScript(url("data/test.js"), start); 423 }); 424 425 /* mozilla: Tests using php scripts not currently supported (06/26/2008) 426 427 test("$.ajax() - JSONP, Local", function() { 428 expect(7); 429 430 var count = 0; 431 function plus(){ if ( ++count == 7 ) start(); } 432 433 stop(); 434 435 $.ajax({ 436 url: "data/jsonp.php", 437 dataType: "jsonp", 438 success: function(data){ 439 ok( data.data, "JSON results returned (GET, no callback)" ); 440 plus(); 441 }, 442 error: function(data){ 443 ok( false, "Ajax error JSON (GET, no callback)" ); 444 plus(); 445 } 446 }); 447 448 $.ajax({ 449 url: "data/jsonp.php?callback=?", 450 dataType: "jsonp", 451 success: function(data){ 452 ok( data.data, "JSON results returned (GET, url callback)" ); 453 plus(); 454 }, 455 error: function(data){ 456 ok( false, "Ajax error JSON (GET, url callback)" ); 457 plus(); 458 } 459 }); 460 461 $.ajax({ 462 url: "data/jsonp.php", 463 dataType: "jsonp", 464 data: "callback=?", 465 success: function(data){ 466 ok( data.data, "JSON results returned (GET, data callback)" ); 467 plus(); 468 }, 469 error: function(data){ 470 ok( false, "Ajax error JSON (GET, data callback)" ); 471 plus(); 472 } 473 }); 474 475 $.ajax({ 476 url: "data/jsonp.php", 477 dataType: "jsonp", 478 jsonp: "callback", 479 success: function(data){ 480 ok( data.data, "JSON results returned (GET, data obj callback)" ); 481 plus(); 482 }, 483 error: function(data){ 484 ok( false, "Ajax error JSON (GET, data obj callback)" ); 485 plus(); 486 } 487 }); 488 489 $.ajax({ 490 type: "POST", 491 url: "data/jsonp.php", 492 dataType: "jsonp", 493 success: function(data){ 494 ok( data.data, "JSON results returned (POST, no callback)" ); 495 plus(); 496 }, 497 error: function(data){ 498 ok( false, "Ajax error JSON (GET, data obj callback)" ); 499 plus(); 500 } 501 }); 502 503 $.ajax({ 504 type: "POST", 505 url: "data/jsonp.php", 506 data: "callback=?", 507 dataType: "jsonp", 508 success: function(data){ 509 ok( data.data, "JSON results returned (POST, data callback)" ); 510 plus(); 511 }, 512 error: function(data){ 513 ok( false, "Ajax error JSON (POST, data callback)" ); 514 plus(); 515 } 516 }); 517 518 $.ajax({ 519 type: "POST", 520 url: "data/jsonp.php", 521 jsonp: "callback", 522 dataType: "jsonp", 523 success: function(data){ 524 ok( data.data, "JSON results returned (POST, data obj callback)" ); 525 plus(); 526 }, 527 error: function(data){ 528 ok( false, "Ajax error JSON (POST, data obj callback)" ); 529 plus(); 530 } 531 }); 532 }); 533 534 test("$.ajax() - JSONP, Remote", function() { 535 expect(4); 536 537 var count = 0; 538 function plus(){ if ( ++count == 4 ) start(); } 539 540 var base = window.location.href.replace(/\?.*$/, ""); 541 542 stop(); 543 544 $.ajax({ 545 url: base + "data/jsonp.php", 546 dataType: "jsonp", 547 success: function(data){ 548 ok( data.data, "JSON results returned (GET, no callback)" ); 549 plus(); 550 }, 551 error: function(data){ 552 ok( false, "Ajax error JSON (GET, no callback)" ); 553 plus(); 554 } 555 }); 556 557 $.ajax({ 558 url: base + "data/jsonp.php?callback=?", 559 dataType: "jsonp", 560 success: function(data){ 561 ok( data.data, "JSON results returned (GET, url callback)" ); 562 plus(); 563 }, 564 error: function(data){ 565 ok( false, "Ajax error JSON (GET, url callback)" ); 566 plus(); 567 } 568 }); 569 570 $.ajax({ 571 url: base + "data/jsonp.php", 572 dataType: "jsonp", 573 data: "callback=?", 574 success: function(data){ 575 ok( data.data, "JSON results returned (GET, data callback)" ); 576 plus(); 577 }, 578 error: function(data){ 579 ok( false, "Ajax error JSON (GET, data callback)" ); 580 plus(); 581 } 582 }); 583 584 $.ajax({ 585 url: base + "data/jsonp.php", 586 dataType: "jsonp", 587 jsonp: "callback", 588 success: function(data){ 589 ok( data.data, "JSON results returned (GET, data obj callback)" ); 590 plus(); 591 }, 592 error: function(data){ 593 ok( false, "Ajax error JSON (GET, data obj callback)" ); 594 plus(); 595 } 596 }); 597 }); 598 599 test("$.ajax() - script, Remote", function() { 600 expect(2); 601 602 var base = window.location.href.replace(/\?.*$/, ""); 603 604 stop(); 605 606 window.foobar = null; 607 $.ajax({ 608 url: base + "data/test.js", 609 dataType: "script", 610 success: function(data){ 611 ok( foobar, "Script results returned (GET, no callback)" ); 612 start(); 613 } 614 }); 615 }); 616 617 test("$.ajax() - script, Remote with POST", function() { 618 expect(3); 619 620 var base = window.location.href.replace(/\?.*$/, ""); 621 622 stop(); 623 624 window.foobar = null; 625 $.ajax({ 626 url: base + "data/test.js", 627 type: "POST", 628 dataType: "script", 629 success: function(data, status){ 630 ok( foobar, "Script results returned (GET, no callback)" ); 631 equals( status, "success", "Script results returned (GET, no callback)" ); 632 start(); 633 } 634 }); 635 }); 636 637 test("$.ajax() - script, Remote with scheme-less URL", function() { 638 expect(2); 639 640 var base = window.location.href.replace(/\?.*$/, ""); 641 base = base.replace(/^.*?\/\//, "//"); 642 643 stop(); 644 645 window.foobar = null; 646 $.ajax({ 647 url: base + "data/test.js", 648 dataType: "script", 649 success: function(data){ 650 ok( foobar, "Script results returned (GET, no callback)" ); 651 start(); 652 } 653 }); 654 }); 655 656 test("$.getJSON(String, Hash, Function) - JSON array", function() { 657 expect(4); 658 stop(); 659 $.getJSON(url("data/json.php"), {json: "array"}, function(json) { 660 equals( json[0].name, 'John', 'Check JSON: first, name' ); 661 equals( json[0].age, 21, 'Check JSON: first, age' ); 662 equals( json[1].name, 'Peter', 'Check JSON: second, name' ); 663 equals( json[1].age, 25, 'Check JSON: second, age' ); 664 start(); 665 }); 666 }); 667 668 test("$.getJSON(String, Function) - JSON object", function() { 669 expect(2); 670 stop(); 671 $.getJSON(url("data/json.php"), function(json) { 672 equals( json.data.lang, 'en', 'Check JSON: lang' ); 673 equals( json.data.length, 25, 'Check JSON: length' ); 674 start(); 675 }); 676 }); 677 678 test("$.getJSON(String, Function) - JSON object with absolute url to local content", function() { 679 expect(2); 680 681 var base = window.location.href.replace(/\?.*$/, ""); 682 683 stop(); 684 $.getJSON(url(base + "data/json.php"), function(json) { 685 equals( json.data.lang, 'en', 'Check JSON: lang' ); 686 equals( json.data.length, 25, 'Check JSON: length' ); 687 start(); 688 }); 689 }); 690 691 test("$.post(String, Hash, Function) - simple with xml", function() { 692 expect(4); 693 stop(); 694 $.post(url("data/name.php"), {xml: "5-2"}, function(xml){ 695 $('math', xml).each(function() { 696 equals( $('calculation', this).text(), '5-2', 'Check for XML' ); 697 equals( $('result', this).text(), '3', 'Check for XML' ); 698 }); 699 }); 700 701 $.post(url("data/name.php?xml=5-2"), {}, function(xml){ 702 $('math', xml).each(function() { 703 equals( $('calculation', this).text(), '5-2', 'Check for XML' ); 704 equals( $('result', this).text(), '3', 'Check for XML' ); 705 }); 706 start(); 707 }); 708 }); 709 710 test("$.ajaxSetup({timeout: Number}) - with global timeout", function() { 711 stop(); 712 713 var passed = 0; 714 715 $.ajaxSetup({timeout: 1000}); 716 717 var pass = function() { 718 passed++; 719 if ( passed == 2 ) { 720 ok( true, 'Check local and global callbacks after timeout' ); 721 $('#main').unbind("ajaxError"); 722 start(); 723 } 724 }; 725 726 var fail = function(a,b,c) { 727 ok( false, 'Check for timeout failed ' + a + ' ' + b ); 728 start(); 729 }; 730 731 $('#main').ajaxError(pass); 732 733 $.ajax({ 734 type: "GET", 735 url: url("data/name.php?wait=5"), 736 error: pass, 737 success: fail 738 }); 739 740 // reset timeout 741 $.ajaxSetup({timeout: 0}); 742 }); 743 744 test("$.ajaxSetup({timeout: Number}) with localtimeout", function() { 745 stop(); 746 $.ajaxSetup({timeout: 50}); 747 748 $.ajax({ 749 type: "GET", 750 timeout: 5000, 751 url: url("data/name.php?wait=1"), 752 error: function() { 753 ok( false, 'Check for local timeout failed' ); 754 start(); 755 }, 756 success: function() { 757 ok( true, 'Check for local timeout' ); 758 start(); 759 } 760 }); 761 762 // reset timeout 763 $.ajaxSetup({timeout: 0}); 764 }); 765 766 test("$.ajax - simple get", function() { 767 expect(1); 768 stop(); 769 $.ajax({ 770 type: "GET", 771 url: url("data/name.php?name=foo"), 772 success: function(msg){ 773 equals( msg, 'bar', 'Check for GET' ); 774 start(); 775 } 776 }); 777 }); 778 779 test("$.ajax - simple post", function() { 780 expect(1); 781 stop(); 782 $.ajax({ 783 type: "POST", 784 url: url("data/name.php"), 785 data: "name=peter", 786 success: function(msg){ 787 equals( msg, 'pan', 'Check for POST' ); 788 start(); 789 } 790 }); 791 }); 792 793 test("ajaxSetup()", function() { 794 expect(1); 795 stop(); 796 $.ajaxSetup({ 797 url: url("data/name.php?name=foo"), 798 success: function(msg){ 799 equals( msg, 'bar', 'Check for GET' ); 800 start(); 801 } 802 }); 803 $.ajax(); 804 }); 805 806 test("custom timeout does not set error message when timeout occurs, see #970", function() { 807 stop(); 808 $.ajax({ 809 url: "data/name.php?wait=10", 810 timeout: 500, 811 error: function(request, status) { 812 ok( status != null, "status shouldn't be null in error handler" ); 813 equals( "timeout", status ); 814 start(); 815 } 816 }); 817 }); 818 819 test("data option: evaluate function values (#2806)", function() { 820 stop(); 821 $.ajax({ 822 url: "data/echoQuery.php", 823 data: { 824 key: function() { 825 return "value"; 826 } 827 }, 828 success: function(result) { 829 equals( result, "key=value" ); 830 start(); 831 } 832 }) 833 }); 834 */ 835 } 836 837 //}