Added test for #970
[jquery.git] / src / ajax / ajaxTest.js
index 8d32716..851be51 100644 (file)
@@ -1,10 +1,12 @@
 module("ajax");
 
+if ( location.protocol != "file:" ) {
+
 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' );
+       ok( data == 'action=Test&text2=Test&radio1=on&radio2=on&check=on&=on&hidden=&foo%5Bbar%5D=&name=name&=foobar&select1=&select2=3&select3=1', 'Check form serialization as query string' );
 });
 
 test("param", function() {
@@ -16,10 +18,10 @@ test("param", function() {
        ok( $.param(params) == "someName=1&someName=2&someName=3&regularThing=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" );
+       ok( $.param(params) == "foo%5B%5D=baz&foo%5B%5D=42&foo%5B%5D=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" );
+       ok( $.param(params) == "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bquux%5D=All%20your%20base%20are%20belong%20to%20us", "even more arrays" );
 });
 
 test("pass-through request object", function() {
@@ -68,21 +70,32 @@ test("load(String, Object, Function) - inject without callback", function() {
 test("load(String, Object, Function) - check scripts", function() {
        expect(7);
        stop();
-       testFoo = undefined;
-       foobar = null;
+       window.testFoo = undefined;
+       window.foobar = null;
        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');
          ok( $('#ap').html() == 'bar', 'Check if script evaluation has modified DOM');
          start();
        };
        $('#first').load(url('data/test.php'), function() {
          ok( $('#first').html().match(/^html text/), 'Check content after loading html' );
+         ok( $('#foo').html() == 'foo', 'Check if script evaluation has modified DOM');
          ok( testFoo == "foo", 'Check if script was evaluated after load' );
          setTimeout(verifyEvaluation, 600);
        });
 });
 
+test("load(String, Object, Function) - check file with only a script tag", function() {
+       expect(3);
+       stop();
+       testFoo = undefined;
+       $('#first').load(url('data/test2.php'), function() {
+         ok( $('#foo').html() == 'foo', 'Check if script evaluation has modified DOM');
+         ok( testFoo == "foo", 'Check if script was evaluated after load' );
+         start();
+       });
+});
+
 test("test global handlers - success", function() {
        expect(8);
        stop();
@@ -351,3 +364,32 @@ test("ajaxSetup()", function() {
        });
        $.ajax();
 });
+
+test("evalScripts() with no script elements", function() {
+    expect(2);
+
+    var data = "this is just some bogus text";
+    $('#foo').html(data);
+    ok ( true, 'before evalScripts()');
+    try {
+        $('#foo').evalScripts();
+    } catch(e) {
+        ok (false, 'exception evaluating scripts: ' + e.message);
+    }
+    ok ( true, 'after evalScripts()');
+});
+
+test("custom timeout does not set error message when timeout occurs, see #970", function() {
+       stop();
+       $.ajax({
+               url: "data/name.php?wait=10",
+               timeout: 500,
+               error: function(request, status) {
+                       ok( status != null, "status shouldn't be null in error handler" );
+                       equals( "timeout", status );
+                       start();
+               }
+       });
+});
+
+}