summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/sjs_timings-test-server.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/test/sjs_timings-test-server.sjs')
-rw-r--r--devtools/client/netmonitor/test/sjs_timings-test-server.sjs45
1 files changed, 45 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/sjs_timings-test-server.sjs b/devtools/client/netmonitor/test/sjs_timings-test-server.sjs
new file mode 100644
index 0000000000..6446461039
--- /dev/null
+++ b/devtools/client/netmonitor/test/sjs_timings-test-server.sjs
@@ -0,0 +1,45 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+const trailerServerTiming = [
+ { metric: "metric3", duration: "99789.11", description: "time3" },
+ { metric: "metric4", duration: "1112.13", description: "time4" },
+];
+
+const responseServerTiming = [
+ { metric: "metric1", duration: "123.4", description: "time1" },
+ { metric: "metric2", duration: "0", description: "time2" },
+];
+
+function handleRequest(request, response) {
+ const body = "c\r\ndata reached\r\n3\r\nhej\r\n0\r\n";
+
+ response.seizePower();
+ response.write("HTTP/1.1 200 OK\r\n");
+ response.write("Content-Type: text/plain\r\n");
+ response.write(createServerTimingHeader(responseServerTiming));
+ response.write("Transfer-Encoding: chunked\r\n");
+ response.write("\r\n");
+ response.write(body);
+ response.write(createServerTimingHeader(trailerServerTiming));
+ response.write("\r\n");
+ response.finish();
+}
+
+function createServerTimingHeader(headerData) {
+ let header = "";
+ for (let i = 0; i < headerData.length; i++) {
+ header +=
+ "Server-Timing: " +
+ headerData[i].metric +
+ ";" +
+ "dur=" +
+ headerData[i].duration +
+ ";" +
+ "desc=" +
+ headerData[i].description +
+ "\r\n";
+ }
+ return header;
+}