summaryrefslogtreecommitdiffstats
path: root/dom/base/test/bug475156.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/bug475156.sjs')
-rw-r--r--dom/base/test/bug475156.sjs27
1 files changed, 27 insertions, 0 deletions
diff --git a/dom/base/test/bug475156.sjs b/dom/base/test/bug475156.sjs
new file mode 100644
index 000000000..e64863616
--- /dev/null
+++ b/dom/base/test/bug475156.sjs
@@ -0,0 +1,27 @@
+function handleRequest(request, response)
+{
+ if (request.queryString == "")
+ {
+ var etag = request.hasHeader("If-Match") ? request.getHeader("If-Match") : null;
+ if (!etag || etag == getState("etag"))
+ {
+ response.setStatusLine(request.httpVersion, 200, "Ok");
+ response.setHeader("Content-Type", "text/html");
+ response.setHeader("ETag", getState("etag"));
+ response.setHeader("Cache-control", "max-age=36000");
+ response.write(getState("etag"));
+ }
+ else if (etag)
+ {
+ response.setStatusLine(request.httpVersion, 412, "Precondition Failed");
+ }
+ }
+ else
+ {
+ var etag = request.queryString.match(/^etag=(.*)$/);
+ if (etag)
+ setState("etag", etag[1]);
+
+ response.setStatusLine(request.httpVersion, 204, "No content");
+ }
+}