Update web-platform-tests to revision 5934bd3aca20a07917ad46fe7cebe10c68d5e497

This commit is contained in:
WPT Sync Bot 2020-07-18 08:22:00 +00:00
parent e41f1662dc
commit 64b58d76c6
67 changed files with 656 additions and 278 deletions

View file

@ -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

View file

@ -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'")

View file

@ -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

View file

@ -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"

View file

@ -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""

View file

@ -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

View file

@ -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""

View file

@ -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)