summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/redirect_with_query_args.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/redirect_with_query_args.sjs')
-rw-r--r--dom/workers/test/redirect_with_query_args.sjs22
1 files changed, 22 insertions, 0 deletions
diff --git a/dom/workers/test/redirect_with_query_args.sjs b/dom/workers/test/redirect_with_query_args.sjs
new file mode 100644
index 0000000000..3359367ee0
--- /dev/null
+++ b/dom/workers/test/redirect_with_query_args.sjs
@@ -0,0 +1,22 @@
+/**
+ * This file expects a query string that's the upper-cased version of a file to
+ * be redirected to in the same directory. The redirect will also include
+ * added "secret data" as a query string.
+ *
+ * So if the request is `/path/redirect_with_query_args.sjs?FOO.JS` the redirect
+ * will be to `/path/foo.js?SECRET_DATA`.
+ **/
+
+function handleRequest(request, response) {
+ // The secret data to include in the redirect to make the redirect URL
+ // easily detectable.
+ const secretData = "SECRET_DATA";
+
+ let pathBase = request.path.split("/").slice(0, -1).join("/");
+ let targetFile = request.queryString.toLowerCase();
+ let newUrl = `${pathBase}/${targetFile}?${secretData}`;
+
+ response.setStatusLine(request.httpVersion, 302, "Found");
+ response.setHeader("Cache-Control", "no-cache");
+ response.setHeader("Location", newUrl, false);
+}