Index: third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/fetch-access-control.py |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/fetch-access-control.py b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/fetch-access-control.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..862718ad03f7601209a2bb45259202485a58010c |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/fetch-access-control.py |
@@ -0,0 +1,69 @@ |
+import base64 |
+import json |
+ |
+def main(request, response): |
+ headers = [] |
+ headers.append(('X-ServiceWorker-ServerHeader', 'SetInTheServer')) |
+ |
+ if "ACAOrigin" in request.GET: |
+ for item in request.GET["ACAOrigin"].split(","): |
+ headers.append(("Access-Control-Allow-Origin", item)) |
+ |
+ for suffix in ["Headers", "Methods", "Credentials"]: |
+ query = "ACA%s" % suffix |
+ header = "Access-Control-Allow-%s" % suffix |
+ if query in request.GET: |
+ headers.append((header, request.GET[query])) |
+ |
+ if "ACEHeaders" in request.GET: |
+ headers.append(("Access-Control-Expose-Headers", request.GET[query])) |
+ |
+ if ("Auth" in request.GET and not request.auth.username) or "AuthFail" in request.GET: |
+ status = 401 |
+ headers.append(('WWW-Authenticate', 'Basic realm="Restricted"')) |
+ body = 'Authentication canceled' |
+ return status, headers, body |
+ |
+ if "PNGIMAGE" in request.GET: |
+ headers.append(("Content-Type", "image/png")) |
+ body = base64.decodestring("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1B" |
+ "AACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAhSURBVDhPY3wro/KfgQLABKXJBqMG" |
+ "jBoAAqMGDLwBDAwAEsoCTFWunmQAAAAASUVORK5CYII=") |
+ return headers, body |
+ |
+ |
+ username = request.auth.username if request.auth.username else "undefined" |
+ password = request.auth.password if request.auth.username else "undefined" |
+ cookie = request.cookies['cookie'].value if 'cookie' in request.cookies else "undefined" |
+ |
+ files = [] |
+ for key, values in request.POST.iteritems(): |
+ assert len(values) == 1 |
+ value = values[0] |
+ if not hasattr(value, "file"): |
+ continue |
+ data = value.file.read() |
+ files.append({"key": key, |
+ "name": value.file.name, |
+ "type": value.type, |
+ "error": 0, #TODO, |
+ "size": len(data), |
+ "content": data}) |
+ |
+ get_data = {key:request.GET[key] for key,value in request.GET.iteritems()} |
+ post_data = {key:request.POST[key] for key,value in request.POST.iteritems() |
+ if not hasattr(request.POST[key], "file")} |
+ headers_data = {key:request.headers[key] for key,value in request.headers.iteritems()} |
+ |
+ data = {"jsonpResult": "success", |
+ "method": request.method, |
+ "headers": headers_data, |
+ "body": request.body, |
+ "files": files, |
+ "GET": get_data, |
+ "POST": post_data, |
+ "username": username, |
+ "password": password, |
+ "cookie": cookie} |
+ |
+ return headers, "report( %s )" % json.dumps(data) |