diff options
Diffstat (limited to 'dom/base/test/bug475156.sjs')
-rw-r--r-- | dom/base/test/bug475156.sjs | 27 |
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 0000000000..e648636160 --- /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"); + } +} |