Changeset 263626 in webkit
- Timestamp:
- Jun 27, 2020 10:36:43 AM (4 years ago)
- Location:
- trunk/LayoutTests
- Files:
-
- 4 added
- 1 deleted
- 28 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r263615 r263626 1 2020-06-27 Chris Dumez <cdumez@apple.com> 2 3 Update web-platform-tests/cors from upstream 4 https://bugs.webkit.org/show_bug.cgi?id=213668 5 6 Reviewed by Sam Weinig. 7 8 Update web-platform-tests/cors from upstream b076c305a256e7. 9 10 * tests-options.json: 11 1 12 2020-06-26 Diego Pino Garcia <dpino@igalia.com> 2 13 -
trunk/LayoutTests/imported/w3c/ChangeLog
r263624 r263626 1 2020-06-27 Chris Dumez <cdumez@apple.com> 2 3 Update web-platform-tests/cors from upstream 4 https://bugs.webkit.org/show_bug.cgi?id=213668 5 6 Reviewed by Sam Weinig. 7 8 Update web-platform-tests/cors from upstream b076c305a256e7. 9 10 * web-platform-tests/cors/*: Updated. 11 1 12 2020-06-27 Rob Buis <rbuis@igalia.com> 2 13 -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/304.htm
r213914 r263626 2 2 <meta charset=utf-8> 3 3 <title>CORS - 304 Responses</title> 4 <meta name="timeout" content="long"> 4 5 <meta name=author title="Mark Nottingham" href="mailto:mnot@mnot.net"> 5 6 -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/client-hint-request-headers-expected.txt
r253331 r263626 2 2 3 3 4 FAIL Client hint headers are simple headers A network error occurred.5 4 PASS Unspecified request headers are disallowed 6 5 PASS Unextractable device-memory client hint header is disallowed -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/client-hint-request-headers.htm
r232903 r263626 1 1 <!DOCTYPE html> 2 2 <meta charset=utf-8> 3 <title>CORS - client hint request headers - Access-Control-Allow-Headers</title>3 <title>CORS and Client Hints</title> 4 4 5 5 <script src=/resources/testharness.js></script> … … 13 13 test(function() { 14 14 var client = new XMLHttpRequest() 15 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print,', false)16 client.setRequestHeader('x-print', 'unicorn')17 client.setRequestHeader('content-type', 'text/plain')18 client.setRequestHeader('accept', 'test')19 client.setRequestHeader('accept-language', 'nn')20 client.setRequestHeader('content-language', 'nn')21 client.setRequestHeader('save-data', 'on')22 client.setRequestHeader('device-memory', '1.0')23 client.setRequestHeader('dpr', '2.0')24 client.setRequestHeader('width', '35')25 client.setRequestHeader('viewport-width', '42')26 client.send(null)27 28 const res = JSON.parse(client.response)29 assert_equals(res['x-print'], 'unicorn')30 assert_equals(res['content-type'], 'text/plain')31 assert_equals(res['accept'], 'test')32 assert_equals(res['accept-language'], 'nn')33 assert_equals(res['content-language'], 'nn')34 assert_equals(res['save-data'], 'on')35 assert_equals(res['device-memory'], '1.0')36 assert_equals(res['dpr'], '2.0')37 assert_equals(res['width'], '35')38 assert_equals(res['viewport-width'], '42')39 }, 'Client hint headers are simple headers')40 41 test(function() {42 var client = new XMLHttpRequest()43 15 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) 44 16 client.setRequestHeader('x-print', 'unicorn') 45 17 client.setRequestHeader('y-print', 'unicorn') 46 assert_throws ("NetworkError", function() { client.send(null) })18 assert_throws_dom("NetworkError", function() { client.send(null) }) 47 19 }, 'Unspecified request headers are disallowed') 48 20 … … 51 23 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) 52 24 client.setRequestHeader('device-memory', '') 53 assert_throws ("NetworkError", function() { client.send(null) })25 assert_throws_dom("NetworkError", function() { client.send(null) }) 54 26 }, 'Unextractable device-memory client hint header is disallowed') 55 27 … … 58 30 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) 59 31 client.setRequestHeader('dpr', '') 60 assert_throws ("NetworkError", function() { client.send(null) })32 assert_throws_dom("NetworkError", function() { client.send(null) }) 61 33 }, 'Unextractable DPR client hint header is disallowed') 62 34 … … 65 37 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) 66 38 client.setRequestHeader('width', '') 67 assert_throws ("NetworkError", function() { client.send(null) })39 assert_throws_dom("NetworkError", function() { client.send(null) }) 68 40 }, 'Unextractable width client hint header is disallowed') 69 41 … … 72 44 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=x-print', false) 73 45 client.setRequestHeader('viewport-width', '') 74 assert_throws ("NetworkError", function() { client.send(null) })46 assert_throws_dom("NetworkError", function() { client.send(null) }) 75 47 }, 'Unextractable viewport-width client hint header is disallowed') 76 48 -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/cors-safelisted-request-header.any.js
r251490 r263626 12 12 request = () => fetch(url, { method: "POST", headers, body: "data" }); 13 13 if (expectPreflight) { 14 await promise_rejects (t, TypeError(), request());14 await promise_rejects_js(t, TypeError, request()); 15 15 } else { 16 16 const response = await request(); -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/credentials-flag-expected.txt
r251775 r263626 9 9 PASS Access-Control-Allow-Credentials: True should be disallowed (async) 10 10 PASS Access-Control-Allow-Credentials: "true" should be disallowed (async) 11 PASS Access-Control-Allow-Credentials: 'true' should be disallowed (async) 11 12 PASS Access-Control-Allow-Credentials: false should be disallowed (async) 12 13 PASS Access-Control-Allow-Credentials: 1 should be disallowed (async) 13 14 PASS Access-Control-Allow-Credentials: 0 should be disallowed (async) 15 PASS Access-Control-Allow-Credentials: ,true should be disallowed (async) 16 PASS Access-Control-Allow-Credentials: true, should be disallowed (async) 17 FAIL Access-Control-Allow-Credentials: true%0B should be disallowed (async) assert_unreached: onload Reached unreachable code 18 FAIL Access-Control-Allow-Credentials: true%0C should be disallowed (async) assert_unreached: onload Reached unreachable code 14 19 -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/credentials-flag.htm
r213914 r263626 123 123 test_response_header('True') 124 124 test_response_header('"true"') 125 test_response_header("'true'"); 125 126 test_response_header('false') 126 127 test_response_header('1') 127 128 test_response_header('0') 129 test_response_header(',true'); 130 test_response_header('true,'); 131 test_response_header('true%0B'); 132 test_response_header('true%0C'); 128 133 129 134 </script> -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/origin-expected.txt
r253331 r263626 31 31 PASS Disallow origin: - 32 32 PASS Disallow origin: ** 33 PASS Disallow origin: ,* 34 PASS Disallow origin: *, 33 35 PASS Disallow origin: \0* 36 FAIL Disallow origin: 37 * assert_throws_dom: send function "function () { client.send() }" did not throw 38 FAIL Disallow origin: 39 * assert_throws_dom: send function "function () { client.send() }" did not throw 34 40 PASS Disallow origin: *\0 41 FAIL Disallow origin: * 42 assert_throws_dom: send function "function () { client.send() }" did not throw 43 FAIL Disallow origin: * 44 assert_throws_dom: send function "function () { client.send() }" did not throw 35 45 PASS Disallow origin: '*' 36 46 PASS Disallow origin: "*" … … 53 63 PASS Disallow origin: .localhost:8800 54 64 PASS Disallow origin: *.localhost:8800 55 FAIL Disallow origin: http://localhost:8800 assert_throws : send function "function () { client.send() }" did not throw65 FAIL Disallow origin: http://localhost:8800 assert_throws_dom: send function "function () { client.send() }" did not throw 56 66 PASS Disallow origin: http://.localhost:8800 57 67 PASS Disallow origin: http://*.localhost:8800 -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/origin.htm
r215164 r263626 2 2 <meta charset=utf-8> 3 3 <title>Access-Control-Allow-Origin handling</title> 4 <meta name="timeout" content="long"> 4 5 <link rel=help href=https://fetch.spec.whatwg.org/> 5 6 <meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> … … 48 49 + encodeURIComponent(origin), 49 50 false) 50 assert_throws ("NetworkError", function() { client.send() }, 'send')51 assert_throws_dom("NetworkError", function() { client.send() }, 'send') 51 52 }, 'Disallow origin: ' + origin.replace(/\0/g, "\\0")); 52 53 } … … 72 73 shouldFail("-") 73 74 shouldFail("**") 75 shouldFail(",*"); 76 shouldFail("*,"); 74 77 shouldFail("\0*") 78 shouldFail("\u000B*"); 79 shouldFail("\u000C*"); 75 80 shouldFail("*\0") 81 shouldFail("*\u000B"); 82 shouldFail("*\u000C"); 76 83 shouldFail("'*'") 77 84 shouldFail('"*"') … … 106 113 + '&origin2=' + encodeURIComponent(origin2), 107 114 false) 108 assert_throws ("NetworkError", function() { client.send() }, 'send')115 assert_throws_dom("NetworkError", function() { client.send() }, 'send') 109 116 }, 'Disallow multiple headers (' + origin + ', ' + origin2 + ')'); 110 117 } -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/preflight-cache-expected.txt
r251490 r263626 4 4 PASS Test preflight 5 5 PASS preflight for x-print should be cached 6 PASS age = blank, should be cached 6 7 PASS age = 0, should not be cached 7 8 FAIL age = -1, should not be cached assert_equals: did preflight expected "1" but got "0" -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/preflight-cache.htm
r213914 r263626 2 2 <meta charset=utf-8> 3 3 <title>CORS - preflight cache</title> 4 <meta name="timeout" content="long"> 4 5 <meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> 5 6 … … 64 65 var client = new XMLHttpRequest() 65 66 67 var id = did_preflight(true, client, {extra:'max_age='}) 68 did_preflight(false, client, {extra:'max_age=', token: id}) 69 }, 70 'age = blank, should be cached') 71 72 test(function() { 73 var time = new Date().getTime() 74 var client = new XMLHttpRequest() 75 66 76 var id = did_preflight(true, client, {extra:'max_age=0'}) 67 77 did_preflight(true, client, {extra:'max_age=0', token: id}) … … 79 89 80 90 (function() { 81 var test = async_test("preflight first request, second from cache, wait, third should preflight again" , { timeout: 6000 }),91 var test = async_test("preflight first request, second from cache, wait, third should preflight again"), 82 92 time = new Date().getTime(), 83 93 dothing = function (url, msg, set_request, func) { -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/request-headers.htm
r215164 r263626 49 49 client.setRequestHeader('x-print', 'unicorn') 50 50 client.setRequestHeader('y-print', 'unicorn') 51 assert_throws ("NetworkError", function() { client.send(null) })51 assert_throws_dom("NetworkError", function() { client.send(null) }) 52 52 }, 'Unspecified request headers are disallowed') 53 53 … … 66 66 test(function() { 67 67 var client = new XMLHttpRequest() 68 assert_throws ('INVALID_STATE_ERR', function() { client.setRequestHeader('x-print', 'unicorn') })68 assert_throws_dom('INVALID_STATE_ERR', function() { client.setRequestHeader('x-print', 'unicorn') }) 69 69 }, 70 70 'INVALID_STATE_ERR on setRequestHeader before open()') … … 74 74 client.open('GET', CROSSDOMAIN + 'resources/cors-makeheader.py?headers=,y-lol,x-PriNT,%20,,,Y-PRINT', false) 75 75 client.send() 76 assert_throws ('INVALID_STATE_ERR', function() { client.setRequestHeader('x-print', 'unicorn') })76 assert_throws_dom('INVALID_STATE_ERR', function() { client.setRequestHeader('x-print', 'unicorn') }) 77 77 }, 78 78 'INVALID_STATE_ERR on setRequestHeader after send()') -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/304.py
r213914 r263626 2 2 3 3 # A header used to correlate requests and responses 4 state_header = "content-language"4 state_header = b"content-language" 5 5 6 6 # Static ETag to use (and expect) 7 etag = "abcdef"7 etag = b"abcdef" 8 8 9 9 def error(msg): 10 return (299, "Client Error"), [11 ( 'content-type','text/plain'),12 ( 'access-control-allow-origin',"*"),13 ( 'access-control-expose-headers', state_header),14 ( 'cache-control','no-store')10 return (299, u"Client Error"), [ 11 (b'content-type', b'text/plain'), 12 (b'access-control-allow-origin', b"*"), 13 (b'access-control-expose-headers', state_header), 14 (b'cache-control', b'no-store') 15 15 ], msg 16 16 … … 18 18 headers = [] 19 19 20 inm = request.headers.get( 'if-none-match', None)20 inm = request.headers.get(b'if-none-match', None) 21 21 raw_req_num = request.headers.get(state_header, None) 22 22 if raw_req_num == None: 23 return error( "no req_num header in request")23 return error(u"no req_num header in request") 24 24 else: 25 25 req_num = int(raw_req_num) 26 26 if req_num > 8: 27 return error( "req_num %s out of range" % req_num)27 return error(u"req_num %s out of range" % req_num) 28 28 29 headers.append(( "Access-Control-Expose-Headers", state_header))29 headers.append((b"Access-Control-Expose-Headers", state_header)) 30 30 headers.append((state_header, req_num)) 31 headers.append(( "A", req_num))32 headers.append(( "B", req_num))31 headers.append((b"A", req_num)) 32 headers.append((b"B", req_num)) 33 33 34 34 if req_num % 2: # odd requests are the first in a test pair 35 35 if inm: 36 36 # what are you doing here? This should be a fresh request. 37 return error( "If-None-Match on first request")37 return error(u"If-None-Match on first request") 38 38 else: 39 status = 200, "OK"40 headers.append(( "Access-Control-Allow-Origin","*"))41 headers.append(( "Content-Type","text/plain"))42 headers.append(( "Cache-Control","private, max-age=3, must-revalidate"))43 headers.append(( "ETag", etag))44 return status, headers, "Success"39 status = 200, u"OK" 40 headers.append((b"Access-Control-Allow-Origin", b"*")) 41 headers.append((b"Content-Type", b"text/plain")) 42 headers.append((b"Cache-Control", b"private, max-age=3, must-revalidate")) 43 headers.append((b"ETag", etag)) 44 return status, headers, u"Success" 45 45 else: # even requests are the second in a pair, and should have a good INM. 46 46 if inm != etag: 47 47 # Bad browser. 48 48 if inm == None: 49 return error( "If-None-Match missing")49 return error(u"If-None-Match missing") 50 50 else: 51 return error( "If-None-Match '%s' mismatches")51 return error(u"If-None-Match '%s' mismatches") 52 52 else: 53 53 if req_num == 2: 54 54 pass # basic, vanilla check 55 55 elif req_num == 4: 56 headers.append(( "Access-Control-Expose-Headers","a, b"))56 headers.append((b"Access-Control-Expose-Headers", b"a, b")) 57 57 elif req_num == 6: 58 headers.append(( "Access-Control-Expose-Headers","a"))58 headers.append((b"Access-Control-Expose-Headers", b"a")) 59 59 elif req_num == 8: 60 headers.append(( "Access-Control-Allow-Origin","other.origin.example:80"))61 status = 304, "Not Modified"62 return status, headers, ""60 headers.append((b"Access-Control-Allow-Origin", b"other.origin.example:80")) 61 status = 304, u"Not Modified" 62 return status, headers, u"" -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/cache-304.py
r233172 r263626 1 1 def main(request, response): 2 match = request.headers.get( "If-None-Match", None)3 if match is not None and match == "mybestscript-v1":4 response.status = (304, "YEP")5 return ""6 response.headers.set( "Access-Control-Allow-Origin","*")7 response.headers.set( "Cache-Control","must-revalidate")8 response.headers.set( "ETag","mybestscript-v1")9 response.headers.set( "Content-Type","text/javascript")10 return "function hep() { }"2 match = request.headers.get(b"If-None-Match", None) 3 if match is not None and match == b"mybestscript-v1": 4 response.status = (304, u"YEP") 5 return u"" 6 response.headers.set(b"Access-Control-Allow-Origin", b"*") 7 response.headers.set(b"Cache-Control", b"must-revalidate") 8 response.headers.set(b"ETag", b"mybestscript-v1") 9 response.headers.set(b"Content-Type", b"text/javascript") 10 return u"function hep() { }" -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/checkandremove.py
r213914 r263626 1 1 def main(request, response): 2 token = request.GET.first( "token")2 token = request.GET.first(b"token") 3 3 if request.server.stash.remove(token) is not None: 4 return "1"4 return u"1" 5 5 else: 6 return "0"6 return u"0" -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/cors-cookie.py
r232903 r263626 1 1 2 2 def main(request, response): 3 origin = request.GET.first( "origin", request.headers["origin"])4 credentials = request.GET.first( "credentials","true")3 origin = request.GET.first(b"origin", request.headers[b"origin"]) 4 credentials = request.GET.first(b"credentials", b"true") 5 5 6 headers = [( "Content-Type","text/plain")]7 if origin != 'none':8 headers.append(( "Access-Control-Allow-Origin", origin))9 if credentials != 'none':10 headers.append(( "Access-Control-Allow-Credentials", credentials))6 headers = [(b"Content-Type", b"text/plain")] 7 if origin != b'none': 8 headers.append((b"Access-Control-Allow-Origin", origin)) 9 if credentials != b'none': 10 headers.append((b"Access-Control-Allow-Credentials", credentials)) 11 11 12 ident = request.GET.first( 'ident','test')12 ident = request.GET.first(b'ident', b'test') 13 13 14 14 if ident in request.cookies: … … 16 16 response.delete_cookie(ident) 17 17 else: 18 response.set_cookie(ident, "COOKIE")19 body = "NO_COOKIE"18 response.set_cookie(ident, b"COOKIE") 19 body = u"NO_COOKIE" 20 20 21 21 return headers, body -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/cors-makeheader.py
r213914 r263626 1 1 import json 2 2 3 from wptserve.utils import isomorphic_decode 4 3 5 def main(request, response): 4 origin = request.GET.first( "origin", request.headers.get('origin'))6 origin = request.GET.first(b"origin", request.headers.get(b'origin')) 5 7 6 if "check" in request.GET:7 token = request.GET.first( "token")8 if b"check" in request.GET: 9 token = request.GET.first(b"token") 8 10 value = request.server.stash.take(token) 9 11 if value is not None: 10 if request.GET.first( "check", None) =="keep":12 if request.GET.first(b"check", None) == b"keep": 11 13 request.server.stash.put(token, value) 12 body = "1"14 body = u"1" 13 15 else: 14 body = "0"15 return [( "Content-Type","text/plain")], body16 body = u"0" 17 return [(b"Content-Type", b"text/plain")], body 16 18 17 19 18 if origin != 'none':19 response.headers.set( "Access-Control-Allow-Origin", origin)20 if 'origin2' in request.GET:21 response.headers.append( "Access-Control-Allow-Origin", request.GET.first('origin2'))20 if origin != b'none': 21 response.headers.set(b"Access-Control-Allow-Origin", origin) 22 if b'origin2' in request.GET: 23 response.headers.append(b"Access-Control-Allow-Origin", request.GET.first(b'origin2')) 22 24 23 25 #Preflight 24 if 'headers' in request.GET:25 response.headers.set( "Access-Control-Allow-Headers", request.GET.first('headers'))26 if 'credentials' in request.GET:27 response.headers.set( "Access-Control-Allow-Credentials", request.GET.first('credentials'))28 if 'methods' in request.GET:29 response.headers.set( "Access-Control-Allow-Methods", request.GET.first('methods'))26 if b'headers' in request.GET: 27 response.headers.set(b"Access-Control-Allow-Headers", request.GET.first(b'headers')) 28 if b'credentials' in request.GET: 29 response.headers.set(b"Access-Control-Allow-Credentials", request.GET.first(b'credentials')) 30 if b'methods' in request.GET: 31 response.headers.set(b"Access-Control-Allow-Methods", request.GET.first(b'methods')) 30 32 31 code_raw = request.GET.first( 'code', None)33 code_raw = request.GET.first(b'code', None) 32 34 if code_raw: 33 35 code = int(code_raw) 34 36 else: 35 37 code = None 36 if request.method == 'OPTIONS':38 if request.method == u'OPTIONS': 37 39 #Override the response code if we're in a preflight and it's asked 38 if 'preflight' in request.GET:39 code = int(request.GET.first( 'preflight'))40 if b'preflight' in request.GET: 41 code = int(request.GET.first(b'preflight')) 40 42 41 43 #Log that the preflight actually happened if we have an ident 42 if 'token' in request.GET:43 request.server.stash.put(request.GET[ 'token'], True)44 if b'token' in request.GET: 45 request.server.stash.put(request.GET[b'token'], True) 44 46 45 if 'location' in request.GET:47 if b'location' in request.GET: 46 48 if code is None: 47 49 code = 302 48 50 49 51 if code >= 300 and code < 400: 50 response.headers.set( "Location", request.GET.first('location'))52 response.headers.set(b"Location", request.GET.first(b'location')) 51 53 52 54 headers = {} 53 for name, values in request.headers.ite ritems():55 for name, values in request.headers.items(): 54 56 if len(values) == 1: 55 headers[ name] = values[0]57 headers[isomorphic_decode(name)] = isomorphic_decode(values[0]) 56 58 else: 57 59 #I have no idea, really 58 60 headers[name] = values 59 61 60 headers[ 'get_value'] = request.GET.first('get_value', '')62 headers[u'get_value'] = isomorphic_decode(request.GET.first(b'get_value', b'')) 61 63 62 64 body = json.dumps(headers) 63 65 64 66 if code: 65 return (code, "StatusText"), [], body67 return (code, u"StatusText"), [], body 66 68 else: 67 69 return body -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/expose-headers.py
r249946 r263626 1 1 def main(request, response): 2 2 response.add_required_headers = False 3 output = "HTTP/1.1 221 ALL YOUR BASE BELONG TO H1\r\n"4 output += "Access-Control-Allow-Origin: *\r\n"5 output += "BB-8: hey\r\n"6 output += "Content-Language: mkay\r\n"7 output += request.GET.first( "expose") +"\r\n"8 output += "\r\n"3 output = b"HTTP/1.1 221 ALL YOUR BASE BELONG TO H1\r\n" 4 output += b"Access-Control-Allow-Origin: *\r\n" 5 output += b"BB-8: hey\r\n" 6 output += b"Content-Language: mkay\r\n" 7 output += request.GET.first(b"expose") + b"\r\n" 8 output += b"\r\n" 9 9 response.writer.write(output) 10 10 response.close_connection = True -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/preflight.py
r213914 r263626 1 1 def main(request, response): 2 headers = [( "Content-Type","text/plain")]2 headers = [(b"Content-Type", b"text/plain")] 3 3 4 if "check" in request.GET:5 token = request.GET.first( "token")4 if b"check" in request.GET: 5 token = request.GET.first(b"token") 6 6 value = request.server.stash.take(token) 7 7 if value == None: 8 body = "0"8 body = u"0" 9 9 else: 10 if request.GET.first( "check", None) =="keep":10 if request.GET.first(b"check", None) == b"keep": 11 11 request.server.stash.put(token, value) 12 body = "1"12 body = u"1" 13 13 14 14 return headers, body 15 15 16 if request.method == "OPTIONS":17 if not "Access-Control-Request-Method" in request.headers:18 response.set_error(400, "No Access-Control-Request-Method header")19 return "ERROR: No access-control-request-method in preflight!"16 if request.method == u"OPTIONS": 17 if not b"Access-Control-Request-Method" in request.headers: 18 response.set_error(400, u"No Access-Control-Request-Method header") 19 return u"ERROR: No access-control-request-method in preflight!" 20 20 21 headers.append(( "Access-Control-Allow-Methods",22 request.headers[ 'Access-Control-Request-Method']))21 headers.append((b"Access-Control-Allow-Methods", 22 request.headers[b'Access-Control-Request-Method'])) 23 23 24 if "max_age" in request.GET:25 headers.append(( "Access-Control-Max-Age", request.GET['max_age']))24 if b"max_age" in request.GET: 25 headers.append((b"Access-Control-Max-Age", request.GET[b'max_age'])) 26 26 27 if "token" in request.GET:28 request.server.stash.put(request.GET.first( "token"), 1)27 if b"token" in request.GET: 28 request.server.stash.put(request.GET.first(b"token"), 1) 29 29 30 headers.append(( "Access-Control-Allow-Origin","*"))31 headers.append(( "Access-Control-Allow-Headers","x-print"))30 headers.append((b"Access-Control-Allow-Origin", b"*")) 31 headers.append((b"Access-Control-Allow-Headers", b"x-print")) 32 32 33 body = request.headers.get( "x-print","NO")33 body = request.headers.get(b"x-print", b"NO") 34 34 35 35 return headers, body -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/status.py
r232903 r263626 1 from wptserve.utils import isomorphic_encode 2 1 3 def main(request, response): 2 response.headers.set( "Access-Control-Allow-Origin", request.headers.get("origin"))3 response.headers.set( "Access-Control-Expose-Headers","X-Request-Method")4 response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"origin")) 5 response.headers.set(b"Access-Control-Expose-Headers", b"X-Request-Method") 4 6 5 if request.method == 'OPTIONS':6 response.headers.set( "Access-Control-Allow-Methods","GET, CHICKEN, HEAD, POST, PUT")7 if request.method == u'OPTIONS': 8 response.headers.set(b"Access-Control-Allow-Methods", b"GET, CHICKEN, HEAD, POST, PUT") 7 9 8 if 'headers' in request.GET:9 response.headers.set( "Access-Control-Allow-Headers", request.GET.first('headers'))10 if b'headers' in request.GET: 11 response.headers.set(b"Access-Control-Allow-Headers", request.GET.first(b'headers')) 10 12 11 response.headers.set( "X-Request-Method", request.method)13 response.headers.set(b"X-Request-Method", isomorphic_encode(request.method)) 12 14 13 response.headers.set( "X-A-C-Request-Method", request.headers.get("Access-Control-Request-Method",""))15 response.headers.set(b"X-A-C-Request-Method", request.headers.get(b"Access-Control-Request-Method", b"")) 14 16 15 17 16 18 #This should reasonably work for most response codes. 17 19 try: 18 code = int(request.GET.first( "code", 200))20 code = int(request.GET.first(b"code", 200)) 19 21 except ValueError: 20 22 code = 200 21 23 22 text = request.GET.first( "text","OMG")24 text = request.GET.first(b"text", b"OMG") 23 25 24 if request.method == "OPTIONS" and"preflight" in request.GET:26 if request.method == u"OPTIONS" and b"preflight" in request.GET: 25 27 try: 26 code = int(request.GET.first( 'preflight'))28 code = int(request.GET.first(b'preflight')) 27 29 except KeyError: 28 30 pass … … 30 32 status = code, text 31 33 32 if "type" in request.GET:33 response.headers.set( "Content-Type", request.GET.first('type'))34 if b"type" in request.GET: 35 response.headers.set(b"Content-Type", request.GET.first(b'type')) 34 36 35 body = request.GET.first( 'content',"")37 body = request.GET.first(b'content', b"") 36 38 37 39 return status, [], body -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/resources/w3c-import.log
r232903 r263626 2 2 Do NOT modify these tests directly in WebKit. 3 3 Instead, create a pull request on the WPT github: 4 https://github.com/w 3c/web-platform-tests4 https://github.com/web-platform-tests/wpt 5 5 6 6 Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport … … 16 16 List of files: 17 17 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/304.py 18 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/access-control-expose-headers -parsing-2.asis19 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/ access-control-expose-headers-parsing.asis18 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/access-control-expose-headers.json 19 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/cache-304.py 20 20 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/checkandremove.py 21 21 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/cors-cookie.py 22 22 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/cors-headers.asis 23 23 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/cors-makeheader.py 24 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/expose-headers.py 24 25 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/image-tainting-checker.sub.html 25 26 /LayoutTests/imported/w3c/web-platform-tests/cors/resources/preflight.py -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/simple-requests-ch.tentative.htm
r263625 r263626 47 47 } 48 48 49 check_simple_headers({'Accept': 'test'})50 check_simple_headers({'accept-language': 'test'})51 check_simple_headers({'CONTENT-language': 'test'})52 53 check_simple_headers({'Content-Type': 'application/x-www-form-urlencoded'})54 check_simple_headers({'content-type': 'multipart/form-data'})55 check_simple_headers({'content-type': 'text/plain'})56 57 check_simple_headers({58 'accept': 'test',59 'accept-language': 'test',60 'content-language': 'test',61 'content-type': 'text/plain; parameter=whatever'62 })63 64 49 check_simple_headers({ 65 50 'save-data': 'on', … … 70 55 }) 71 56 72 check_simple('Get', {'content-type': 'text/plain; parameter=extra_bonus'})73 check_simple('post', {'content-type': 'text/plain'})74 75 /* Extra async test */76 77 var simple_async = async_test("Check simple headers (async)")78 simple_async.step(function (){79 var time = new Date().getTime(),80 client = new XMLHttpRequest()81 var uuid_token = token();82 client.open('POST', CROSSDOMAIN + 'resources/preflight.py?token='83 + uuid_token, true)84 85 client.setRequestHeader('Accept', 'jewelry')86 client.setRequestHeader('accept-language', 'nn_NO,nn,en')87 client.setRequestHeader('content-type', 'text/plain; parameter=extra')88 client.setRequestHeader('content-Language', 'nn_NO')89 90 client.onload = simple_async.step_func(function() {91 assert_equals(client.getResponseHeader('content-type'), "text/plain", 'content-type response header')92 assert_equals(client.response, 'NO', 'response')93 simple_async.done()94 })95 client.onerror = simple_async.step_func(function () { assert_unreached('onerror') })96 client.send()97 })98 57 </script> -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/simple-requests-expected.txt
r253331 r263626 25 25 PASS No preflight HEAD and {"accept":"test","accept-language":"test","content-language":"test","content-type":"text/plain; parameter=whatever"} 26 26 PASS No preflight POST and {"accept":"test","accept-language":"test","content-language":"test","content-type":"text/plain; parameter=whatever"} 27 FAIL No preflight GET and {"save-data":"on","device-memory":"2.0","dpr":"3.0","width":"1200","viewport-width":"1300"} A network error occurred.28 FAIL No preflight HEAD and {"save-data":"on","device-memory":"2.0","dpr":"3.0","width":"1200","viewport-width":"1300"} A network error occurred.29 FAIL No preflight POST and {"save-data":"on","device-memory":"2.0","dpr":"3.0","width":"1200","viewport-width":"1300"} A network error occurred.30 27 PASS No preflight Get and {"content-type":"text/plain; parameter=extra_bonus"} 31 28 PASS No preflight post and {"content-type":"text/plain"} 32 FAIL Check simple headers (async) assert_unreached: onerror Reached unreachable code 29 PASS Check simple headers (async) 33 30 -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/simple-requests.htm
r232903 r263626 62 62 }) 63 63 64 check_simple_headers({65 'save-data': 'on',66 'device-memory': '2.0',67 'dpr': '3.0',68 'width': '1200',69 'viewport-width': '1300'70 })71 72 64 check_simple('Get', {'content-type': 'text/plain; parameter=extra_bonus'}) 73 65 check_simple('post', {'content-type': 'text/plain'}) … … 84 76 85 77 client.setRequestHeader('Accept', 'jewelry') 86 client.setRequestHeader('accept-language', 'nn _NO,nn,en')78 client.setRequestHeader('accept-language', 'nn-NO,nn,en') 87 79 client.setRequestHeader('content-type', 'text/plain; parameter=extra') 88 client.setRequestHeader('content-Language', 'nn _NO')80 client.setRequestHeader('content-Language', 'nn-NO') 89 81 90 82 client.onload = simple_async.step_func(function() { -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/status-async.htm
r213914 r263626 15 15 16 16 function statusRequest(method, code, text, content, type) { 17 async_test("Status on " + method + " " + code , { timeout: 15000 })17 async_test("Status on " + method + " " + code) 18 18 .step(function() { 19 19 var client = new XMLHttpRequest() … … 61 61 expect_code = code 62 62 63 async_test("Status on " + method + " " + code + (nonsimple?' (nonsimple)':'') , { timeout: 15000 })63 async_test("Status on " + method + " " + code + (nonsimple?' (nonsimple)':'')) 64 64 .step(function() { 65 65 var client = new XMLHttpRequest() -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/support.js
r251490 r263626 1 // For ignoring exception names (just for testing)2 /*3 _real_assert_throws = assert_throws;4 function assert_throws(d, func, desc) {5 try {6 func();7 } catch(e) {8 return true;9 }10 assert_unreached("Didn't throw!");11 }12 */13 14 1 function dirname(path) { 15 2 return path.replace(/\/[^\/]*$/, '/') -
trunk/LayoutTests/imported/w3c/web-platform-tests/cors/w3c-import.log
r232903 r263626 2 2 Do NOT modify these tests directly in WebKit. 3 3 Instead, create a pull request on the WPT github: 4 https://github.com/w 3c/web-platform-tests4 https://github.com/web-platform-tests/wpt 5 5 6 6 Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport … … 16 16 List of files: 17 17 /LayoutTests/imported/w3c/web-platform-tests/cors/304.htm 18 /LayoutTests/imported/w3c/web-platform-tests/cors/ OWNERS18 /LayoutTests/imported/w3c/web-platform-tests/cors/META.yml 19 19 /LayoutTests/imported/w3c/web-platform-tests/cors/README.md 20 20 /LayoutTests/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window.js 21 /LayoutTests/imported/w3c/web-platform-tests/cors/allow-headers.htm22 21 /LayoutTests/imported/w3c/web-platform-tests/cors/basic.htm 22 /LayoutTests/imported/w3c/web-platform-tests/cors/client-hint-request-headers-2.tentative.htm 23 23 /LayoutTests/imported/w3c/web-platform-tests/cors/client-hint-request-headers.htm 24 /LayoutTests/imported/w3c/web-platform-tests/cors/cors-safelisted-request-header.any.js 24 25 /LayoutTests/imported/w3c/web-platform-tests/cors/credentials-flag.htm 25 26 /LayoutTests/imported/w3c/web-platform-tests/cors/image-tainting-in-cross-origin-iframe.sub.html … … 35 36 /LayoutTests/imported/w3c/web-platform-tests/cors/request-headers.htm 36 37 /LayoutTests/imported/w3c/web-platform-tests/cors/response-headers.htm 38 /LayoutTests/imported/w3c/web-platform-tests/cors/script-304.html 39 /LayoutTests/imported/w3c/web-platform-tests/cors/simple-requests-ch.tentative.htm 37 40 /LayoutTests/imported/w3c/web-platform-tests/cors/simple-requests.htm 38 41 /LayoutTests/imported/w3c/web-platform-tests/cors/status-async.htm -
trunk/LayoutTests/tests-options.json
r263605 r263626 609 609 "slow" 610 610 ], 611 "imported/w3c/web-platform-tests/cors/304.htm": [ 612 "slow" 613 ], 614 "imported/w3c/web-platform-tests/cors/origin.htm": [ 615 "slow" 616 ], 617 "imported/w3c/web-platform-tests/cors/preflight-cache.htm": [ 618 "slow" 619 ], 611 620 "imported/w3c/web-platform-tests/cors/status-async.htm": [ 612 621 "slow"
Note: See TracChangeset
for help on using the changeset viewer.