summaryrefslogtreecommitdiffstats
path: root/devtools/shared/network-observer/test/browser/sjs_network-auth-listener-test-server.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/network-observer/test/browser/sjs_network-auth-listener-test-server.sjs')
-rw-r--r--devtools/shared/network-observer/test/browser/sjs_network-auth-listener-test-server.sjs31
1 files changed, 31 insertions, 0 deletions
diff --git a/devtools/shared/network-observer/test/browser/sjs_network-auth-listener-test-server.sjs b/devtools/shared/network-observer/test/browser/sjs_network-auth-listener-test-server.sjs
new file mode 100644
index 0000000000..028a26ebfe
--- /dev/null
+++ b/devtools/shared/network-observer/test/browser/sjs_network-auth-listener-test-server.sjs
@@ -0,0 +1,31 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+function handleRequest(request, response) {
+ let body;
+
+ // Expect guest/guest as correct credentials, but `btoa` is unavailable in sjs
+ // "Z3Vlc3Q6Z3Vlc3Q=" == btoa("guest:guest")
+ const expectedHeader = "Basic Z3Vlc3Q6Z3Vlc3Q=";
+
+ // correct login credentials provided
+ if (
+ request.hasHeader("Authorization") &&
+ request.getHeader("Authorization") == expectedHeader
+ ) {
+ response.setStatusLine(request.httpVersion, 200, "OK, authorized");
+ response.setHeader("Content-Type", "text", false);
+
+ body = "success";
+ } else {
+ // incorrect credentials
+ response.setStatusLine(request.httpVersion, 401, "Unauthorized");
+ response.setHeader("WWW-Authenticate", 'Basic realm="secret"', false);
+ response.setHeader("Content-Type", "text", false);
+
+ body = "failed";
+ }
+ response.bodyOutputStream.write(body, body.length);
+}