| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- var assert = require("assert")
- , spawn = require('child_process').spawn
- , XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
- , serverProcess;
-
- // Running a sync XHR and a webserver within the same process will cause a deadlock
- serverProcess = spawn(process.argv[0], [__dirname + "/server.js"], { stdio: 'inherit' });
-
- setTimeout(function () {
- try {
- runTest()
- } catch (e) {
- throw e
- } finally {
- serverProcess.kill('SIGINT');
- }
- }, 100);
-
- function runTest() {
- var xhr = new XMLHttpRequest();
- var isSync = false;
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4) {
- assert.equal(xhr.responseText, "Hello world!");
- assert.equal(xhr.getResponseHeader('content-type'), 'text/plain')
- isSync = true;
- }
- }
-
- xhr.open("GET", "http://localhost:8888/text", false);
- xhr.send();
-
- assert(isSync, "XMLHttpRequest was not synchronous");
-
- xhr = new XMLHttpRequest();
- isSync = false;
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4) {
- assert.equal(xhr.response.toString(), 'Hello world!');
- assert.equal(xhr.getResponseHeader('content-type'), 'application/octet-stream')
- isSync = true;
- }
- }
-
- xhr.open("GET", "http://localhost:8888/binary", false);
- xhr.send();
-
- assert(isSync, "XMLHttpRequest was not synchronous");
-
- console.log("done");
- }
|