diff options
Diffstat (limited to 'dom/media/test/redirect.sjs')
-rw-r--r-- | dom/media/test/redirect.sjs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/dom/media/test/redirect.sjs b/dom/media/test/redirect.sjs new file mode 100644 index 0000000000..6873fd52f3 --- /dev/null +++ b/dom/media/test/redirect.sjs @@ -0,0 +1,35 @@ +function parseQuery(request, key) { + var params = request.queryString.split("&"); + for (var j = 0; j < params.length; ++j) { + var p = params[j]; + if (p == key) { + return true; + } + if (p.indexOf(key + "=") == 0) { + return p.substring(key.length + 1); + } + if (!p.includes("=") && key == "") { + return p; + } + } + return false; +} + +// Return file content for the first request with a given key. +// All subsequent requests return a redirect to a different-origin resource. +function handleRequest(request, response) { + var domain = parseQuery(request, "domain"); + var file = parseQuery(request, "file"); + var allowed = parseQuery(request, "allowed"); + + response.setStatusLine(request.httpVersion, 303, "See Other"); + response.setHeader( + "Location", + "http://" + + domain + + "/tests/dom/media/test/" + + (allowed ? "allowed.sjs?" : "") + + file + ); + response.setHeader("Content-Type", "text/html"); +} |