aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.3/packages/api-utils/tests/test-xhr.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/addon-sdk-1.3/packages/api-utils/tests/test-xhr.js')
-rw-r--r--tools/addon-sdk-1.3/packages/api-utils/tests/test-xhr.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.3/packages/api-utils/tests/test-xhr.js b/tools/addon-sdk-1.3/packages/api-utils/tests/test-xhr.js
new file mode 100644
index 0000000..1b2a706
--- /dev/null
+++ b/tools/addon-sdk-1.3/packages/api-utils/tests/test-xhr.js
@@ -0,0 +1,67 @@
+var xhr = require("xhr");
+var timer = require("timer");
+
+exports.testAbortedXhr = function(test) {
+ var req = new xhr.XMLHttpRequest();
+ test.assertEqual(xhr.getRequestCount(), 1);
+ req.abort();
+ test.assertEqual(xhr.getRequestCount(), 0);
+};
+
+exports.testLocalXhr = function(test) {
+ var req = new xhr.XMLHttpRequest();
+ req.overrideMimeType("text/plain");
+ req.open("GET", __url__);
+ req.onreadystatechange = function() {
+ if (req.readyState == 4 && req.status == 0) {
+ test.assertMatches(req.responseText,
+ /onreadystatechange/,
+ "XMLHttpRequest should get local files");
+ timer.setTimeout(
+ function() { test.assertEqual(xhr.getRequestCount(), 0);
+ test.done(); },
+ 0
+ );
+ }
+ };
+ req.send(null);
+ test.assertEqual(xhr.getRequestCount(), 1);
+ test.waitUntilDone(4000);
+};
+
+exports.testUnload = function(test) {
+ var loader = test.makeSandboxedLoader();
+ var sbxhr = loader.require("xhr");
+ var req = new sbxhr.XMLHttpRequest();
+ req.overrideMimeType("text/plain");
+ req.open("GET", __url__);
+ req.send(null);
+ test.assertEqual(sbxhr.getRequestCount(), 1);
+ loader.unload();
+ test.assertEqual(sbxhr.getRequestCount(), 0);
+};
+
+exports.testDelegatedReturns = function(test) {
+ var req = new xhr.XMLHttpRequest();
+ req.overrideMimeType("text/plain");
+ req.open("GET", __url__);
+ req.onreadystatechange = function() {
+ if (req.readyState == 4 && req.status == 0) {
+ // This response isn't going to have any headers, so the return value
+ // should be null. Previously it wasn't returning anything, and thus was
+ // undefined.
+
+ // Depending on whether Bug 608939 has been applied
+ // to the platform, getAllResponseHeaders() may return
+ // null or the empty string; accept either.
+ var headers = req.getAllResponseHeaders();
+ test.assert(headers === null || headers === "",
+ "XHR's delegated methods should return");
+ test.done();
+ }
+ };
+ req.send(null);
+ test.assertEqual(xhr.getRequestCount(), 1);
+ test.waitUntilDone(4000);
+}
+