From: Jörn Zaefferer <joern.zaefferer@gmail.com>
Date: Thu, 21 Dec 2006 15:23:59 +0000 (+0000)
Subject: A few corrections to the testsuite to imrove the failure testing
X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;h=98b1b580c7298c1ced00f9ec4d65452b4d559da7;p=jquery.git

A few corrections to the testsuite to imrove the failure testing
---

diff --git a/build/test/data/testrunner.js b/build/test/data/testrunner.js
index 86a16d5..6da41c3 100644
--- a/build/test/data/testrunner.js
+++ b/build/test/data/testrunner.js
@@ -33,12 +33,13 @@ function process() {
 	}
 }
 
-function stop() {
+function stop(allowFailure) {
 	_config.blocking = true;
-	_config.timeout = setTimeout(function() {
+	var handler = allowFailure ? start : function() {
 		ok( false, "Test timed out" );
 		start();
-	}, _config.asyncTimeout * 1000);
+	};
+	_config.timeout = setTimeout(handler, _config.asyncTimeout * 1000);
 }
 function start() {
 	if(_config.timeout)
diff --git a/src/ajax/ajax.js b/src/ajax/ajax.js
index dd3bf18..485bf1b 100644
--- a/src/ajax/ajax.js
+++ b/src/ajax/ajax.js
@@ -647,6 +647,8 @@ jQuery.extend({
 						// Fire the global callback
 						if( s.global )
 							jQuery.event.trigger( "ajaxSuccess", [xml, s] );
+					} else {
+						jQuery.handleError(s, xml, status);
 					}
 				} catch(e) {
 					status = "error";
@@ -714,18 +716,24 @@ jQuery.extend({
 
 	// Determines if an XMLHttpRequest was successful or not
 	httpSuccess: function(r) {
-		return !r.status && location.protocol == "file:" ||
-			( r.status >= 200 && r.status < 300 ) || r.status == 304 ||
-			jQuery.browser.safari && r.status == undefined;
+		try {
+			return !r.status && location.protocol == "file:" ||
+				( r.status >= 200 && r.status < 300 ) || r.status == 304 ||
+				jQuery.browser.safari && r.status == undefined;
+		} catch(e){}
+		return false;
 	},
 
 	// Determines if an XMLHttpRequest returns NotModified
 	httpNotModified: function(xml, url) {
-		var xmlRes = xml.getResponseHeader("Last-Modified");
+		try {
+			var xmlRes = xml.getResponseHeader("Last-Modified");
 
-		// Firefox always returns 200. check Last-Modified date
-		return xml.status == 304 || xmlRes == jQuery.lastModified[url] ||
-			jQuery.browser.safari && xml.status == undefined;
+			// Firefox always returns 200. check Last-Modified date
+			return xml.status == 304 || xmlRes == jQuery.lastModified[url] ||
+				jQuery.browser.safari && xml.status == undefined;
+		} catch(e){}
+		return false;
 	},
 
 	/* Get the data out of an XMLHttpRequest.
diff --git a/src/ajax/ajaxTest.js b/src/ajax/ajaxTest.js
index ad85e05..1cd072f 100644
--- a/src/ajax/ajaxTest.js
+++ b/src/ajax/ajaxTest.js
@@ -24,7 +24,7 @@ test("param", function() {
 
 test("pass-through request object", function() {
 	expect(7);
-	stop();
+	stop(true);
 	var count = 0;
 	var success = function() {
 		if(count++ == 6)
@@ -60,7 +60,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");
 });
 
@@ -170,7 +170,7 @@ test("$.getScript(String, Function) - with callback", function() {
 
 test("$.getScript(String, Function) - no callback", function() {
 	expect(1);
-	stop();
+	stop(true);
 	$.getScript("data/test.js");
 });
 
@@ -319,15 +319,15 @@ test("$.ajax - xml: non-namespace elements inside namespaced elements", function
 test("$.ajax - beforeSend", function() {
 	expect(1);
 	stop();
-	var customHeader = "value";
+	var check = false;
 	$.ajax({
 		url: "data/name.php", 
 		data: {'req': true},
 		beforeSend: function(xml) {
-			xml.setRequestHeader('X-Custom-Header', customHeader);
+			check = true
 		},
 		success: function(data) {
-			ok( data == customHeader, "check return value, should be the custom header sent" );
+			ok( check, "check beforeSend was executed" );
 			start();
 		}
 	});