content/base/test/file_XHRSendData.sjs

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/content/base/test/file_XHRSendData.sjs	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,30 @@
     1.4 +const CC = Components.Constructor;
     1.5 +const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
     1.6 +                             "nsIBinaryInputStream",
     1.7 +                             "setInputStream");
     1.8 +
     1.9 +function handleRequest(request, response)
    1.10 +{
    1.11 +  if (request.hasHeader("Content-Type"))
    1.12 +    response.setHeader("Result-Content-Type",
    1.13 +                       request.getHeader("Content-Type"));
    1.14 +
    1.15 +  response.setHeader("Content-Type", "text/plain; charset=ISO-8859-1");
    1.16 +
    1.17 +  var body = new BinaryInputStream(request.bodyInputStream);
    1.18 +  var avail;
    1.19 +  var bytes = [];
    1.20 +  while ((avail = body.available()) > 0)
    1.21 +    Array.prototype.push.apply(bytes, body.readByteArray(avail));
    1.22 +
    1.23 +  var data = String.fromCharCode.apply(null, bytes);
    1.24 +  response.setHeader("Result-Content-Length", "" + data.length);
    1.25 +  if (data.indexOf("TEST_REDIRECT_STR") >= 0) {
    1.26 +    var newURL = "http://" + data.split("&url=")[1];
    1.27 +    response.setStatusLine(null, 307, "redirect");
    1.28 +    response.setHeader("Location", newURL, false);
    1.29 +  }
    1.30 +  else {
    1.31 +    response.write(data);
    1.32 +  }
    1.33 +}

mercurial