mirror of
https://github.com/servo/servo.git
synced 2025-08-23 06:15:35 +01:00
Update web-platform-tests to revision 5934bd3aca20a07917ad46fe7cebe10c68d5e497
This commit is contained in:
parent
e41f1662dc
commit
64b58d76c6
67 changed files with 656 additions and 278 deletions
|
@ -1,24 +1,26 @@
|
|||
from wptserve.utils import isomorphic_decode
|
||||
|
||||
def main(request, response):
|
||||
token = request.GET.first("token", None)
|
||||
if "querystate" in request.GET:
|
||||
token = request.GET.first(b"token", None)
|
||||
if b"querystate" in request.GET:
|
||||
from json import JSONEncoder
|
||||
response.headers.set("Content-Type", "text/plain")
|
||||
response.headers.set(b"Content-Type", b"text/plain")
|
||||
return JSONEncoder().encode(request.server.stash.take(token))
|
||||
content = request.GET.first("content", None)
|
||||
tag = request.GET.first("tag", None)
|
||||
date = request.GET.first("date", None)
|
||||
expires = request.GET.first("expires", None)
|
||||
vary = request.GET.first("vary", None)
|
||||
cc = request.GET.first("cache_control", None)
|
||||
redirect = request.GET.first("redirect", None)
|
||||
inm = request.headers.get("If-None-Match", None)
|
||||
ims = request.headers.get("If-Modified-Since", None)
|
||||
pragma = request.headers.get("Pragma", None)
|
||||
cache_control = request.headers.get("Cache-Control", None)
|
||||
ignore = "ignore" in request.GET
|
||||
content = request.GET.first(b"content", None)
|
||||
tag = request.GET.first(b"tag", None)
|
||||
date = request.GET.first(b"date", None)
|
||||
expires = request.GET.first(b"expires", None)
|
||||
vary = request.GET.first(b"vary", None)
|
||||
cc = request.GET.first(b"cache_control", None)
|
||||
redirect = request.GET.first(b"redirect", None)
|
||||
inm = request.headers.get(b"If-None-Match", None)
|
||||
ims = request.headers.get(b"If-Modified-Since", None)
|
||||
pragma = request.headers.get(b"Pragma", None)
|
||||
cache_control = request.headers.get(b"Cache-Control", None)
|
||||
ignore = b"ignore" in request.GET
|
||||
|
||||
if tag:
|
||||
tag = '"%s"' % tag
|
||||
tag = b'"%s"' % tag
|
||||
|
||||
server_state = request.server.stash.take(token)
|
||||
if not server_state:
|
||||
|
@ -26,40 +28,40 @@ def main(request, response):
|
|||
state = dict()
|
||||
if not ignore:
|
||||
if inm:
|
||||
state["If-None-Match"] = inm
|
||||
state[u"If-None-Match"] = isomorphic_decode(inm)
|
||||
if ims:
|
||||
state["If-Modified-Since"] = ims
|
||||
state[u"If-Modified-Since"] = isomorphic_decode(ims)
|
||||
if pragma:
|
||||
state["Pragma"] = pragma
|
||||
state[u"Pragma"] = isomorphic_decode(pragma)
|
||||
if cache_control:
|
||||
state["Cache-Control"] = cache_control
|
||||
state[u"Cache-Control"] = isomorphic_decode(cache_control)
|
||||
server_state.append(state)
|
||||
request.server.stash.put(token, server_state)
|
||||
|
||||
if tag:
|
||||
response.headers.set("ETag", '%s' % tag)
|
||||
response.headers.set(b"ETag", b'%s' % tag)
|
||||
elif date:
|
||||
response.headers.set("Last-Modified", date)
|
||||
response.headers.set(b"Last-Modified", date)
|
||||
if expires:
|
||||
response.headers.set("Expires", expires)
|
||||
response.headers.set(b"Expires", expires)
|
||||
if vary:
|
||||
response.headers.set("Vary", vary)
|
||||
response.headers.set(b"Vary", vary)
|
||||
if cc:
|
||||
response.headers.set("Cache-Control", cc)
|
||||
response.headers.set(b"Cache-Control", cc)
|
||||
|
||||
# The only-if-cached redirect tests wants CORS to be okay, the other tests
|
||||
# are all same-origin anyways and don't care.
|
||||
response.headers.set("Access-Control-Allow-Origin", "*")
|
||||
response.headers.set(b"Access-Control-Allow-Origin", b"*")
|
||||
|
||||
if redirect:
|
||||
response.headers.set("Location", redirect)
|
||||
response.status = (302, "Redirect")
|
||||
return ""
|
||||
response.headers.set(b"Location", redirect)
|
||||
response.status = (302, b"Redirect")
|
||||
return b""
|
||||
elif ((inm is not None and inm == tag) or
|
||||
(ims is not None and ims == date)):
|
||||
response.status = (304, "Not Modified")
|
||||
return ""
|
||||
response.status = (304, b"Not Modified")
|
||||
return b""
|
||||
else:
|
||||
response.status = (200, "OK")
|
||||
response.headers.set("Content-Type", "text/plain")
|
||||
response.status = (200, b"OK")
|
||||
response.headers.set(b"Content-Type", b"text/plain")
|
||||
return content
|
||||
|
|
|
@ -2,13 +2,13 @@ def main(request, response):
|
|||
user = request.auth.username
|
||||
password = request.auth.password
|
||||
|
||||
if user == "user" and password == "password":
|
||||
return "Authentication done"
|
||||
if user == b"user" and password == b"password":
|
||||
return b"Authentication done"
|
||||
|
||||
realm = "test"
|
||||
if "realm" in request.GET:
|
||||
realm = request.GET.first("realm")
|
||||
realm = b"test"
|
||||
if b"realm" in request.GET:
|
||||
realm = request.GET.first(b"realm")
|
||||
|
||||
return ((401, "Unauthorized"),
|
||||
[("WWW-Authenticate", 'Basic realm="' + realm + '"')],
|
||||
"Please login with credentials 'user' and 'password'")
|
||||
return ((401, b"Unauthorized"),
|
||||
[(b"WWW-Authenticate", b'Basic realm="' + realm + b'"')],
|
||||
b"Please login with credentials 'user' and 'password'")
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
ETAG = '"123abc"'
|
||||
CONTENT_TYPE = "text/plain"
|
||||
CONTENT = "lorem ipsum dolor sit amet"
|
||||
ETAG = b'"123abc"'
|
||||
CONTENT_TYPE = b"text/plain"
|
||||
CONTENT = b"lorem ipsum dolor sit amet"
|
||||
|
||||
|
||||
def main(request, response):
|
||||
# let caching kick in if possible (conditional GET)
|
||||
etag = request.headers.get("If-None-Match", None)
|
||||
etag = request.headers.get(b"If-None-Match", None)
|
||||
if etag == ETAG:
|
||||
response.headers.set("X-HTTP-STATUS", 304)
|
||||
response.status = (304, "Not Modified")
|
||||
return ""
|
||||
response.headers.set(b"X-HTTP-STATUS", 304)
|
||||
response.status = (304, b"Not Modified")
|
||||
return b""
|
||||
|
||||
# cache miss, so respond with the actual content
|
||||
response.status = (200, "OK")
|
||||
response.headers.set("ETag", ETAG)
|
||||
response.headers.set("Content-Type", CONTENT_TYPE)
|
||||
response.status = (200, b"OK")
|
||||
response.headers.set(b"ETag", ETAG)
|
||||
response.headers.set(b"Content-Type", CONTENT_TYPE)
|
||||
return CONTENT
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
def main(request, response):
|
||||
token = request.GET.first("token")
|
||||
token = request.GET.first(b"token")
|
||||
if request.server.stash.take(token) is not None:
|
||||
return "1"
|
||||
return b"1"
|
||||
else:
|
||||
return "0"
|
||||
return b"0"
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
def main(request, response):
|
||||
headers = []
|
||||
if "headers" in request.GET:
|
||||
checked_headers = request.GET.first("headers").split("|")
|
||||
if b"headers" in request.GET:
|
||||
checked_headers = request.GET.first(b"headers").split(b"|")
|
||||
for header in checked_headers:
|
||||
if header in request.headers:
|
||||
headers.append(("x-request-" + header, request.headers.get(header, "")))
|
||||
headers.append((b"x-request-" + header, request.headers.get(header, b"")))
|
||||
|
||||
if "cors" in request.GET:
|
||||
if "Origin" in request.headers:
|
||||
headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", "")))
|
||||
if b"cors" in request.GET:
|
||||
if b"Origin" in request.headers:
|
||||
headers.append((b"Access-Control-Allow-Origin", request.headers.get(b"Origin", b"")))
|
||||
else:
|
||||
headers.append(("Access-Control-Allow-Origin", "*"))
|
||||
headers.append(("Access-Control-Allow-Credentials", "true"))
|
||||
headers.append(("Access-Control-Allow-Methods", "GET, POST, HEAD"))
|
||||
exposed_headers = ["x-request-" + header for header in checked_headers]
|
||||
headers.append(("Access-Control-Expose-Headers", ", ".join(exposed_headers)))
|
||||
if "allow_headers" in request.GET:
|
||||
headers.append(("Access-Control-Allow-Headers", request.GET['allow_headers']))
|
||||
headers.append((b"Access-Control-Allow-Origin", b"*"))
|
||||
headers.append((b"Access-Control-Allow-Credentials", b"true"))
|
||||
headers.append((b"Access-Control-Allow-Methods", b"GET, POST, HEAD"))
|
||||
exposed_headers = [b"x-request-" + header for header in checked_headers]
|
||||
headers.append((b"Access-Control-Expose-Headers", b", ".join(exposed_headers)))
|
||||
if b"allow_headers" in request.GET:
|
||||
headers.append((b"Access-Control-Allow-Headers", request.GET[b'allow_headers']))
|
||||
else:
|
||||
headers.append(("Access-Control-Allow-Headers", ", ".join(request.headers)))
|
||||
headers.append((b"Access-Control-Allow-Headers", b", ".join(request.headers)))
|
||||
|
||||
headers.append(("content-type", "text/plain"))
|
||||
return headers, ""
|
||||
headers.append((b"content-type", b"text/plain"))
|
||||
return headers, b""
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
from wptserve.utils import isomorphic_encode
|
||||
|
||||
def main(request, response):
|
||||
headers = []
|
||||
if "cors" in request.GET:
|
||||
headers.append(("Access-Control-Allow-Origin", "*"))
|
||||
headers.append(("Access-Control-Allow-Credentials", "true"))
|
||||
headers.append(("Access-Control-Allow-Methods", "GET, POST, PUT, FOO"))
|
||||
headers.append(("Access-Control-Allow-Headers", "x-test, x-foo"))
|
||||
headers.append(("Access-Control-Expose-Headers", "x-request-method"))
|
||||
if b"cors" in request.GET:
|
||||
headers.append((b"Access-Control-Allow-Origin", b"*"))
|
||||
headers.append((b"Access-Control-Allow-Credentials", b"true"))
|
||||
headers.append((b"Access-Control-Allow-Methods", b"GET, POST, PUT, FOO"))
|
||||
headers.append((b"Access-Control-Allow-Headers", b"x-test, x-foo"))
|
||||
headers.append((b"Access-Control-Expose-Headers", b"x-request-method"))
|
||||
|
||||
headers.append(("x-request-method", request.method))
|
||||
headers.append(("x-request-content-type", request.headers.get("Content-Type", "NO")))
|
||||
headers.append(("x-request-content-length", request.headers.get("Content-Length", "NO")))
|
||||
headers.append(("x-request-content-encoding", request.headers.get("Content-Encoding", "NO")))
|
||||
headers.append(("x-request-content-language", request.headers.get("Content-Language", "NO")))
|
||||
headers.append(("x-request-content-location", request.headers.get("Content-Location", "NO")))
|
||||
headers.append((b"x-request-method", isomorphic_encode(request.method)))
|
||||
headers.append((b"x-request-content-type", request.headers.get(b"Content-Type", b"NO")))
|
||||
headers.append((b"x-request-content-length", request.headers.get(b"Content-Length", b"NO")))
|
||||
headers.append((b"x-request-content-encoding", request.headers.get(b"Content-Encoding", b"NO")))
|
||||
headers.append((b"x-request-content-language", request.headers.get(b"Content-Language", b"NO")))
|
||||
headers.append((b"x-request-content-location", request.headers.get(b"Content-Location", b"NO")))
|
||||
return headers, request.body
|
||||
|
|
|
@ -1,58 +1,58 @@
|
|||
def main(request, response):
|
||||
headers = [("Content-Type", "text/plain")]
|
||||
stashed_data = {'control_request_headers': "", 'preflight': "0", 'preflight_referrer': ""}
|
||||
headers = [(b"Content-Type", b"text/plain")]
|
||||
stashed_data = {b'control_request_headers': b"", b'preflight': b"0", b'preflight_referrer': b""}
|
||||
|
||||
token = None
|
||||
if "token" in request.GET:
|
||||
token = request.GET.first("token")
|
||||
if b"token" in request.GET:
|
||||
token = request.GET.first(b"token")
|
||||
|
||||
if "origin" in request.GET:
|
||||
for origin in request.GET['origin'].split(", "):
|
||||
headers.append(("Access-Control-Allow-Origin", origin))
|
||||
if b"origin" in request.GET:
|
||||
for origin in request.GET[b'origin'].split(b", "):
|
||||
headers.append((b"Access-Control-Allow-Origin", origin))
|
||||
else:
|
||||
headers.append(("Access-Control-Allow-Origin", "*"))
|
||||
headers.append((b"Access-Control-Allow-Origin", b"*"))
|
||||
|
||||
if "clear-stash" in request.GET:
|
||||
if b"clear-stash" in request.GET:
|
||||
if request.server.stash.take(token) is not None:
|
||||
return headers, "1"
|
||||
return headers, b"1"
|
||||
else:
|
||||
return headers, "0"
|
||||
return headers, b"0"
|
||||
|
||||
if "credentials" in request.GET:
|
||||
headers.append(("Access-Control-Allow-Credentials", "true"))
|
||||
if b"credentials" in request.GET:
|
||||
headers.append((b"Access-Control-Allow-Credentials", b"true"))
|
||||
|
||||
if request.method == "OPTIONS":
|
||||
if not "Access-Control-Request-Method" in request.headers:
|
||||
response.set_error(400, "No Access-Control-Request-Method header")
|
||||
return "ERROR: No access-control-request-method in preflight!"
|
||||
if request.method == u"OPTIONS":
|
||||
if not b"Access-Control-Request-Method" in request.headers:
|
||||
response.set_error(400, u"No Access-Control-Request-Method header")
|
||||
return b"ERROR: No access-control-request-method in preflight!"
|
||||
|
||||
if request.headers.get("Accept", "") != "*/*":
|
||||
response.set_error(400, "Request does not have 'Accept: */*' header")
|
||||
return "ERROR: Invalid access in preflight!"
|
||||
if request.headers.get(b"Accept", b"") != b"*/*":
|
||||
response.set_error(400, u"Request does not have 'Accept: */*' header")
|
||||
return b"ERROR: Invalid access in preflight!"
|
||||
|
||||
if "control_request_headers" in request.GET:
|
||||
stashed_data['control_request_headers'] = request.headers.get("Access-Control-Request-Headers", None)
|
||||
if b"control_request_headers" in request.GET:
|
||||
stashed_data[b'control_request_headers'] = request.headers.get(b"Access-Control-Request-Headers", None)
|
||||
|
||||
if "max_age" in request.GET:
|
||||
headers.append(("Access-Control-Max-Age", request.GET['max_age']))
|
||||
if b"max_age" in request.GET:
|
||||
headers.append((b"Access-Control-Max-Age", request.GET[b'max_age']))
|
||||
|
||||
if "allow_headers" in request.GET:
|
||||
headers.append(("Access-Control-Allow-Headers", request.GET['allow_headers']))
|
||||
if b"allow_headers" in request.GET:
|
||||
headers.append((b"Access-Control-Allow-Headers", request.GET[b'allow_headers']))
|
||||
|
||||
if "allow_methods" in request.GET:
|
||||
headers.append(("Access-Control-Allow-Methods", request.GET['allow_methods']))
|
||||
if b"allow_methods" in request.GET:
|
||||
headers.append((b"Access-Control-Allow-Methods", request.GET[b'allow_methods']))
|
||||
|
||||
preflight_status = 200
|
||||
if "preflight_status" in request.GET:
|
||||
preflight_status = int(request.GET.first("preflight_status"))
|
||||
if b"preflight_status" in request.GET:
|
||||
preflight_status = int(request.GET.first(b"preflight_status"))
|
||||
|
||||
stashed_data['preflight'] = "1"
|
||||
stashed_data['preflight_referrer'] = request.headers.get("Referer", "")
|
||||
stashed_data['preflight_user_agent'] = request.headers.get("User-Agent", "")
|
||||
stashed_data[b'preflight'] = b"1"
|
||||
stashed_data[b'preflight_referrer'] = request.headers.get(b"Referer", b"")
|
||||
stashed_data[b'preflight_user_agent'] = request.headers.get(b"User-Agent", b"")
|
||||
if token:
|
||||
request.server.stash.put(token, stashed_data)
|
||||
|
||||
return preflight_status, headers, ""
|
||||
return preflight_status, headers, b""
|
||||
|
||||
|
||||
if token:
|
||||
|
@ -60,19 +60,19 @@ def main(request, response):
|
|||
if data:
|
||||
stashed_data = data
|
||||
|
||||
if "checkUserAgentHeaderInPreflight" in request.GET and request.headers.get("User-Agent") != stashed_data['preflight_user_agent']:
|
||||
return 400, headers, "ERROR: No user-agent header in preflight"
|
||||
if b"checkUserAgentHeaderInPreflight" in request.GET and request.headers.get(b"User-Agent") != stashed_data[b'preflight_user_agent']:
|
||||
return 400, headers, b"ERROR: No user-agent header in preflight"
|
||||
|
||||
#use x-* headers for returning value to bodyless responses
|
||||
headers.append(("Access-Control-Expose-Headers", "x-did-preflight, x-control-request-headers, x-referrer, x-preflight-referrer, x-origin"))
|
||||
headers.append(("x-did-preflight", stashed_data['preflight']))
|
||||
if stashed_data['control_request_headers'] != None:
|
||||
headers.append(("x-control-request-headers", stashed_data['control_request_headers']))
|
||||
headers.append(("x-preflight-referrer", stashed_data['preflight_referrer']))
|
||||
headers.append(("x-referrer", request.headers.get("Referer", "")))
|
||||
headers.append(("x-origin", request.headers.get("Origin", "")))
|
||||
headers.append((b"Access-Control-Expose-Headers", b"x-did-preflight, x-control-request-headers, x-referrer, x-preflight-referrer, x-origin"))
|
||||
headers.append((b"x-did-preflight", stashed_data[b'preflight']))
|
||||
if stashed_data[b'control_request_headers'] != None:
|
||||
headers.append((b"x-control-request-headers", stashed_data[b'control_request_headers']))
|
||||
headers.append((b"x-preflight-referrer", stashed_data[b'preflight_referrer']))
|
||||
headers.append((b"x-referrer", request.headers.get(b"Referer", b"")))
|
||||
headers.append((b"x-origin", request.headers.get(b"Origin", b"")))
|
||||
|
||||
if token:
|
||||
request.server.stash.put(token, stashed_data)
|
||||
|
||||
return headers, ""
|
||||
return headers, b""
|
||||
|
|
|
@ -12,5 +12,5 @@ def main(request, response):
|
|||
response.write_status_headers()
|
||||
time.sleep(delay)
|
||||
for i in xrange(count):
|
||||
response.writer.write_content(u"TEST_TRICKLE\n")
|
||||
response.writer.write_content(b"TEST_TRICKLE\n")
|
||||
time.sleep(delay)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue