1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/test/referer.sjs Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,45 @@ 1.4 +function parseQuery(request, key) { 1.5 + var params = request.queryString.split('&'); 1.6 + for (var j = 0; j < params.length; ++j) { 1.7 + var p = params[j]; 1.8 + if (p == key) 1.9 + return true; 1.10 + if (p.indexOf(key + "=") == 0) 1.11 + return p.substring(key.length + 1); 1.12 + if (p.indexOf("=") < 0 && key == "") 1.13 + return p; 1.14 + } 1.15 + return false; 1.16 +} 1.17 + 1.18 +function handleRequest(request, response) 1.19 +{ 1.20 + var referer = request.hasHeader("Referer") ? request.getHeader("Referer") 1.21 + : undefined; 1.22 + if (referer == "http://mochi.test:8888/tests/content/media/test/test_referer.html") { 1.23 + var name = parseQuery(request, "name"); 1.24 + var type = parseQuery(request, "type"); 1.25 + var file = Components.classes["@mozilla.org/file/directory_service;1"]. 1.26 + getService(Components.interfaces.nsIProperties). 1.27 + get("CurWorkD", Components.interfaces.nsILocalFile); 1.28 + var fis = Components.classes['@mozilla.org/network/file-input-stream;1']. 1.29 + createInstance(Components.interfaces.nsIFileInputStream); 1.30 + var bis = Components.classes["@mozilla.org/binaryinputstream;1"]. 1.31 + createInstance(Components.interfaces.nsIBinaryInputStream); 1.32 + var paths = "tests/content/media/test/" + name; 1.33 + var split = paths.split("/"); 1.34 + for(var i = 0; i < split.length; ++i) { 1.35 + file.append(split[i]); 1.36 + } 1.37 + fis.init(file, -1, -1, false); 1.38 + bis.setInputStream(fis); 1.39 + var bytes = bis.readBytes(bis.available()); 1.40 + response.setHeader("Content-Length", ""+bytes.length, false); 1.41 + response.setHeader("Content-Type", type, false); 1.42 + response.write(bytes, bytes.length); 1.43 + bis.close(); 1.44 + } 1.45 + else { 1.46 + response.setStatusLine(request.httpVersion, 404, "Not found"); 1.47 + } 1.48 +}