Changeset 238664 in webkit
- Timestamp:
- Nov 29, 2018 2:30:29 AM (5 years ago)
- Location:
- trunk/LayoutTests/imported/w3c
- Files:
-
- 18 added
- 8 deleted
- 4 edited
- 1 copied
- 7 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r238628 r238664 1 2018-11-29 Rob Buis <rbuis@igalia.com> 2 3 Import fetch/api/cors tests 4 https://bugs.webkit.org/show_bug.cgi?id=192092 5 6 Reviewed by Frédéric Wang. 7 8 Import to most recent checkout since some old 9 tests like cors-multiple-origins.js were incorrect. 10 11 * resources/import-expectations.json: 12 * web-platform-tests/fetch/api/cors/cors-expose-star-worker.html: Removed. 13 * web-platform-tests/fetch/api/cors/cors-expose-star.html: Removed. 14 * web-platform-tests/fetch/api/cors/cors-expose-star.sub.any-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-expected.txt. 15 * web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.html: Added. 16 * web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js. 17 (sharedHeaders.string_appeared_here.promise_test): 18 (string_appeared_here.promise_test): 19 * web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker-expected.txt. 20 * web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.worker.html: Added. 21 * web-platform-tests/fetch/api/cors/cors-filtering-worker.html: Removed. 22 * web-platform-tests/fetch/api/cors/cors-filtering.html: Removed. 23 * web-platform-tests/fetch/api/cors/cors-filtering.sub.any-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering-expected.txt. 24 * web-platform-tests/fetch/api/cors/cors-filtering.sub.any.html: Added. 25 * web-platform-tests/fetch/api/cors/cors-filtering.sub.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.js. 26 (corsFilter): 27 (corsExposeFilter): 28 * web-platform-tests/fetch/api/cors/cors-filtering.sub.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt. 29 * web-platform-tests/fetch/api/cors/cors-filtering.sub.any.worker.html: Added. 30 * web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt: Removed. 31 * web-platform-tests/fetch/api/cors/cors-multiple-origins-worker.html: Removed. 32 * web-platform-tests/fetch/api/cors/cors-multiple-origins.html: Removed. 33 * web-platform-tests/fetch/api/cors/cors-multiple-origins.js: Removed. 34 * web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt. 35 * web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any.html: Added. 36 * web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any.js: Added. 37 (corsMultipleOrigins): 38 * web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any.worker-expected.txt: Added. 39 * web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any.worker.html: Added. 40 * web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any-expected.txt: Added. 41 * web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.html: Added. 42 * web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js: Added. 43 (runTests): 44 * web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.worker-expected.txt: Added. 45 * web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.worker.html: Added. 46 * web-platform-tests/fetch/api/cors/cors-preflight.any.js: 47 (headerNames): Deleted. 48 (): Deleted. 49 (corsPreflight): Deleted. 50 * web-platform-tests/fetch/api/cors/resources/corspreflight.js: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any.js. 51 (headerNames): 52 (corsPreflight): 53 * web-platform-tests/fetch/api/cors/resources/not-cors-safelisted.json: Added. 54 * web-platform-tests/fetch/api/cors/resources/w3c-import.log: Added. 55 * web-platform-tests/fetch/api/cors/sandboxed-iframe-expected.txt: Added. 56 * web-platform-tests/fetch/api/cors/sandboxed-iframe.html: Added. 57 * web-platform-tests/fetch/api/cors/w3c-import.log: 58 1 59 2018-11-28 Rob Buis <rbuis@igalia.com> 2 60 -
trunk/LayoutTests/imported/w3c/resources/import-expectations.json
r238592 r238664 150 150 "web-platform-tests/fetch": "import", 151 151 "web-platform-tests/fetch/api": "import", 152 "web-platform-tests/fetch/api/cors": "import", 152 153 "web-platform-tests/fetch/range": "import", 153 154 "web-platform-tests/fullscreen": "skip", -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.js
r238663 r238664 1 if (this.document === undefined) { 2 importScripts("/resources/testharness.js"); 3 importScripts("../resources/utils.js"); 4 } 1 // META: script=../resources/utils.js 5 2 6 3 const url = "http://{{host}}:{{ports[http][1]}}" + dirname(location.pathname) + RESOURCES_DIR + "top.txt", -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.sub.any.js
r238663 r238664 1 if (this.document === undefined) { 2 importScripts("/resources/testharness.js"); 3 importScripts("../resources/utils.js"); 4 } 1 // META: script=../resources/utils.js 5 2 6 3 function corsFilter(corsUrl, headerName, headerValue, isFiltered) { -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any-expected.txt
r238663 r238664 12 12 CONSOLE MESSAGE: Fetch API cannot load http://localhost:8801/fetch/api/resources/preflight.py?origin=%2C%20http%3A%2F%2Fexample.com%2C%20https%3A%2F%2Fexample2.com due to access control checks. 13 13 14 FAIL 3 origins allowed, match the 3rd (http://localhost:8800) promise_test: Unhandled rejection with value: object "TypeError: Access-Control-Allow-Origin cannot contain more than one origin." 15 FAIL 3 origins allowed, match the 3rd ("*") promise_test: Unhandled rejection with value: object "TypeError: Access-Control-Allow-Origin cannot contain more than one origin." 16 FAIL 3 origins allowed, match twice (http://localhost:8800) promise_test: Unhandled rejection with value: object "TypeError: Access-Control-Allow-Origin cannot contain more than one origin." 17 FAIL 3 origins allowed, match twice ("*") promise_test: Unhandled rejection with value: object "TypeError: Access-Control-Allow-Origin cannot contain more than one origin." 18 FAIL 3 origins allowed, match twice ("*" and http://localhost:8800) promise_test: Unhandled rejection with value: object "TypeError: Access-Control-Allow-Origin cannot contain more than one origin." 19 PASS 3 origins allowed, no match14 PASS Listing multiple origins is illegal: "",http://example.com,http://localhost:8800 15 PASS Listing multiple origins is illegal: "",http://example.com,* 16 PASS Listing multiple origins is illegal: "",http://localhost:8800,http://localhost:8800 17 PASS Listing multiple origins is illegal: *,http://example.com,* 18 PASS Listing multiple origins is illegal: *,http://example.com,http://localhost:8800 19 PASS Listing multiple origins is illegal: ,http://example.com,https://example2.com 20 20 -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any.js
r232470 r238664 2 2 // META: script=../resources/utils.js 3 3 // META: script=/common/get-host-info.sub.js 4 5 function headerNames(headers) 6 { 7 let names = []; 8 for (let header of headers) 9 names.push(header[0].toLowerCase()); 10 return names 11 } 12 13 /* 14 Check preflight is done 15 Control if server allows method and headers and check accordingly 16 Check control access headers added by UA (for method and headers) 17 */ 18 function corsPreflight(desc, corsUrl, method, allowed, headers, safeHeaders) { 19 return promise_test(function(test) { 20 var uuid_token = token(); 21 return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(response) { 22 var url = corsUrl + (corsUrl.indexOf("?") === -1 ? "?" : "&"); 23 var urlParameters = "token=" + uuid_token + "&max_age=0"; 24 var requestInit = {"mode": "cors", "method": method}; 25 var requestHeaders = []; 26 if (headers) 27 requestHeaders.push.apply(requestHeaders, headers); 28 if (safeHeaders) 29 requestHeaders.push.apply(requestHeaders, safeHeaders); 30 requestInit["headers"] = requestHeaders; 31 32 if (allowed) { 33 urlParameters += "&allow_methods=" + method + "&control_request_headers"; 34 if (headers) { 35 //Make the server allow the headers 36 urlParameters += "&allow_headers=" + headerNames(headers).join("%20%2C"); 37 } 38 return fetch(url + urlParameters, requestInit).then(function(resp) { 39 assert_equals(resp.status, 200, "Response's status is 200"); 40 assert_equals(resp.headers.get("x-did-preflight"), "1", "Preflight request has been made"); 41 if (headers) { 42 var actualHeaders = resp.headers.get("x-control-request-headers").toLowerCase().split(","); 43 for (var i in actualHeaders) 44 actualHeaders[i] = actualHeaders[i].trim(); 45 for (var header of headers) 46 assert_in_array(header[0].toLowerCase(), actualHeaders, "Preflight asked permission for header: " + header); 47 48 let accessControlAllowHeaders = headerNames(headers).sort().join(","); 49 assert_equals(resp.headers.get("x-control-request-headers"), accessControlAllowHeaders, "Access-Control-Allow-Headers value"); 50 return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token); 51 } else { 52 assert_equals(resp.headers.get("x-control-request-headers"), null, "Access-Control-Request-Headers should be omitted") 53 } 54 }); 55 } else { 56 return promise_rejects(test, new TypeError(), fetch(url + urlParameters, requestInit)).then(function(){ 57 return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token); 58 }); 59 } 60 }); 61 }, desc); 62 } 4 // META: script=resources/corspreflight.js 63 5 64 6 var corsUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "preflight.py"; -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/resources/corspreflight.js
r238663 r238664 1 // META: script=/common/utils.js 2 // META: script=../resources/utils.js 3 // META: script=/common/get-host-info.sub.js 4 5 function headerNames(headers) 6 { 7 let names = []; 8 for (let header of headers) 9 names.push(header[0].toLowerCase()); 10 return names 1 function headerNames(headers) { 2 let names = []; 3 for (let header of headers) { 4 names.push(header[0].toLowerCase()); 5 } 6 return names; 11 7 } 12 8 … … 61 57 }, desc); 62 58 } 63 64 var corsUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "preflight.py";65 66 corsPreflight("CORS [DELETE], server allows", corsUrl, "DELETE", true);67 corsPreflight("CORS [DELETE], server refuses", corsUrl, "DELETE", false);68 corsPreflight("CORS [PUT], server allows", corsUrl, "PUT", true);69 corsPreflight("CORS [PUT], server allows, check preflight has user agent", corsUrl + "?checkUserAgentHeaderInPreflight", "PUT", true);70 corsPreflight("CORS [PUT], server refuses", corsUrl, "PUT", false);71 corsPreflight("CORS [PATCH], server allows", corsUrl, "PATCH", true);72 corsPreflight("CORS [PATCH], server refuses", corsUrl, "PATCH", false);73 corsPreflight("CORS [NEW], server allows", corsUrl, "NEW", true);74 corsPreflight("CORS [NEW], server refuses", corsUrl, "NEW", false);75 76 corsPreflight("CORS [GET] [x-test-header: allowed], server allows", corsUrl, "GET", true, [["x-test-header1", "allowed"]]);77 corsPreflight("CORS [GET] [x-test-header: refused], server refuses", corsUrl, "GET", false, [["x-test-header1", "refused"]]);78 79 var headers = [80 ["x-test-header1", "allowedOrRefused"],81 ["x-test-header2", "allowedOrRefused"],82 ["X-test-header3", "allowedOrRefused"],83 ["x-test-header-b", "allowedOrRefused"],84 ["x-test-header-D", "allowedOrRefused"],85 ["x-test-header-C", "allowedOrRefused"],86 ["x-test-header-a", "allowedOrRefused"],87 ["Content-Type", "allowedOrRefused"],88 ];89 var safeHeaders= [90 ["Accept", "*"],91 ["Accept-Language", "bzh"],92 ["Content-Language", "eu"],93 ];94 95 corsPreflight("CORS [GET] [several headers], server allows", corsUrl, "GET", true, headers, safeHeaders);96 corsPreflight("CORS [GET] [several headers], server refuses", corsUrl, "GET", false, headers, safeHeaders);97 corsPreflight("CORS [PUT] [several headers], server allows", corsUrl, "PUT", true, headers, safeHeaders);98 corsPreflight("CORS [PUT] [several headers], server refuses", corsUrl, "PUT", false, headers, safeHeaders);99 100 corsPreflight("CORS [PUT] [only safe headers], server allows", corsUrl, "PUT", true, null, safeHeaders); -
trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/w3c-import.log
r222307 r238664 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/fetch/api/cors/cors-basic.any.js 18 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js 18 19 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies.any.js 19 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star-worker.html 20 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.html 21 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.js 22 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering-worker.html 23 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.html 24 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.js 25 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-multiple-origins-worker.html 26 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-multiple-origins.html 27 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-multiple-origins.js 20 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-expose-star.sub.any.js 21 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-filtering.sub.any.js 22 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-multiple-origins.sub.any.js 28 23 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight.any.js 29 24 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any.js 30 25 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-cache.any.js 26 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js 31 27 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect.any.js 32 28 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-referrer.any.js … … 37 33 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-preflight.any.js 38 34 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect.any.js 35 /LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/sandboxed-iframe.html
Note: See TracChangeset
for help on using the changeset viewer.