diff options
Diffstat (limited to 'testing/web-platform/tests/xhr/resources/conditional.py')
-rw-r--r-- | testing/web-platform/tests/xhr/resources/conditional.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/testing/web-platform/tests/xhr/resources/conditional.py b/testing/web-platform/tests/xhr/resources/conditional.py new file mode 100644 index 0000000000..2c248305e6 --- /dev/null +++ b/testing/web-platform/tests/xhr/resources/conditional.py @@ -0,0 +1,29 @@ +def main(request, response): + tag = request.GET.first(b"tag", None) + match = request.headers.get(b"If-None-Match", None) + date = request.GET.first(b"date", b"") + modified = request.headers.get(b"If-Modified-Since", None) + cors = request.GET.first(b"cors", None) + + if request.method == u"OPTIONS": + response.headers.set(b"Access-Control-Allow-Origin", b"*") + response.headers.set(b"Access-Control-Allow-Headers", b"IF-NONE-MATCH") + return b"" + + if tag: + response.headers.set(b"ETag", b'"%s"' % tag) + elif date: + response.headers.set(b"Last-Modified", date) + + if cors: + response.headers.set(b"Access-Control-Allow-Origin", b"*") + + if ((match is not None and match == tag) or + (modified is not None and modified == date)): + response.status = (304, b"SUPERCOOL") + return b"" + else: + if not cors: + response.headers.set(b"Access-Control-Allow-Origin", b"*") + response.headers.set(b"Content-Type", b"text/plain") + return b"MAYBE NOT" |