Log Message
Resync web-platform-tests/mimesniff from upstream https://bugs.webkit.org/show_bug.cgi?id=214317
Reviewed by Alex Christensen. Resync web-platform-tests/mimesniff from upstream b2a666d93581a71e9338b2. * web-platform-tests/mimesniff/mime-types/README.md: * web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt: * web-platform-tests/mimesniff/mime-types/charset-parameter.window.js: (isByteCompatible): * web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt: * web-platform-tests/mimesniff/mime-types/parsing.any.js: (isByteCompatible): (runTests): * web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt: * web-platform-tests/mimesniff/mime-types/resources/mime-charset.py: (main): * web-platform-tests/mimesniff/mime-types/resources/mime-groups.json: Added. * web-platform-tests/mimesniff/mime-types/resources/mime-types.json: * web-platform-tests/mimesniff/mime-types/resources/w3c-import.log:
Modified Paths
- trunk/LayoutTests/imported/w3c/ChangeLog
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/README.md
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window.js
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.js
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-charset.py
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-types.json
- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/w3c-import.log
- trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/overridemimetype-blob-expected.txt
Added Paths
Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2020-07-14 23:01:51 UTC (rev 264380)
@@ -1,5 +1,29 @@
2020-07-14 Chris Dumez <cdu...@apple.com>
+ Resync web-platform-tests/mimesniff from upstream
+ https://bugs.webkit.org/show_bug.cgi?id=214317
+
+ Reviewed by Alex Christensen.
+
+ Resync web-platform-tests/mimesniff from upstream b2a666d93581a71e9338b2.
+
+ * web-platform-tests/mimesniff/mime-types/README.md:
+ * web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt:
+ * web-platform-tests/mimesniff/mime-types/charset-parameter.window.js:
+ (isByteCompatible):
+ * web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt:
+ * web-platform-tests/mimesniff/mime-types/parsing.any.js:
+ (isByteCompatible):
+ (runTests):
+ * web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt:
+ * web-platform-tests/mimesniff/mime-types/resources/mime-charset.py:
+ (main):
+ * web-platform-tests/mimesniff/mime-types/resources/mime-groups.json: Added.
+ * web-platform-tests/mimesniff/mime-types/resources/mime-types.json:
+ * web-platform-tests/mimesniff/mime-types/resources/w3c-import.log:
+
+2020-07-14 Chris Dumez <cdu...@apple.com>
+
Resync web-platform-tests/media-source from upstream
https://bugs.webkit.org/show_bug.cgi?id=214164
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/README.md (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/README.md 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/README.md 2020-07-14 23:01:51 UTC (rev 264380)
@@ -1,4 +1,4 @@
-== MIME types ==
+## MIME types
`resources/mime-types.json` and `resources/generated-mime-types.json` contain MIME type tests. The tests are encoded as a JSON array. String values in the array serve as documentation. All other values are objects with the following fields:
@@ -15,14 +15,11 @@
function isByteCompatible(str) {
for(let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
- // See https://github.com/web-platform-tests/wpt/issues/8372 for 0x0B and 0x0C
- // See https://fetch.spec.whatwg.org/#concept-header-value for the remainder
+ // See https://fetch.spec.whatwg.org/#concept-header-value
if(charCode > 0xFF) {
return "incompatible";
} else if(charCode === 0x00 || charCode === 0x0A || charCode === 0x0D) {
return "header-value-incompatible";
- } else if(charCode === 0x0B || charCode === 0x0C) {
- return "wptserve-incompatible";
}
}
return "compatible";
@@ -32,3 +29,14 @@
`resources/generated-mime-types.json` is generated by running `resources/generated-mime-types.py`. Modify the latter to correct the former.
These tests are used by resources in this directory to test various aspects of MIME types.
+
+## MIME type groups
+
+`resources/mime-groups.json` contains MIME type group-membership tests. The tests are encoded as a JSON array. String values in the array serve as documentation. All other values are objects with the following fields:
+
+* `input`: The MIME type to test.
+* `groups`: An array of zero or more groups to which the MIME type belongs.
+
+In order to pass the tests an implementation must treat each MIME type as belonging to the exact set of groups listed, with no additions or omissions.
+
+Note: As MIME type groups are used only while determining the computed MIME type of a resource and are not exposed in any API, no browser-based test harness is available.
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt 2020-07-14 23:01:51 UTC (rev 264380)
@@ -11,6 +11,10 @@
PASS text/html; charset=gbk
PASS text/html;charset= gbk
FAIL text/html;charset= "gbk" assert_equals: expected "UTF-8" but got "GBK"
+PASS text/html;charset=gbk
+PASS text/html;charset=gbk
+FAIL text/html;charset=gbk assert_equals: expected "UTF-8" but got "GBK"
+FAIL text/html;charset=gbk assert_equals: expected "UTF-8" but got "GBK"
PASS text/html;charset='gbk'
PASS text/html;charset='gbk
PASS text/html;charset=gbk'
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window.js (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window.js 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window.js 2020-07-14 23:01:51 UTC (rev 264380)
@@ -6,14 +6,11 @@
function isByteCompatible(str) {
for(let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
- // See https://github.com/web-platform-tests/wpt/issues/8372 for 0x0B and 0x0C
- // See https://fetch.spec.whatwg.org/#concept-header-value for the remainder
+ // See https://fetch.spec.whatwg.org/#concept-header-value
if(charCode > 0xFF) {
return "incompatible";
} else if(charCode === 0x00 || charCode === 0x0A || charCode === 0x0D) {
return "header-value-incompatible";
- } else if(charCode === 0x0B || charCode === 0x0C) {
- return "wptserve-incompatible";
}
}
return "compatible";
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt 2020-07-14 23:01:51 UTC (rev 264380)
@@ -22,6 +22,14 @@
FAIL text/html;charset= gbk (Request/Response) assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
FAIL text/html;charset= "gbk" (Blob/File) assert_equals: Blob expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html;charset= \"gbk\""
FAIL text/html;charset= "gbk" (Request/Response) assert_equals: expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html"
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
PASS text/html;charset='gbk' (Blob/File)
FAIL text/html;charset='gbk' (Request/Response) assert_equals: expected "text/html;charset='gbk'" but got "text/html"
PASS text/html;charset='gbk (Blob/File)
@@ -84,10 +92,34 @@
PASS x/x;x= (Request/Response)
FAIL x/x;x= (Blob/File) assert_equals: Blob expected "x/x" but got ""
PASS x/x;x= (Request/Response)
+FAIL x/x
+\r ;x=x (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
+PASS x/x
+\r ;x=x (Request/Response)
+FAIL
+\r x/x;x=x
+\r (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
+FAIL
+\r x/x;x=x
+\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+FAIL x/x;
+\r x=x
+\r ;x=y (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
+PASS x/x;
+\r x=x
+\r ;x=y (Request/Response)
FAIL text/html;test=ÿ;charset=gbk (Blob/File) assert_equals: Blob expected "text/html;test=\"ÿ\";charset=gbk" but got ""
FAIL text/html;test=ÿ;charset=gbk (Request/Response) assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got "text/html"
FAIL x/x;test=�;x=x (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
PASS x/x;test=�;x=x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
PASS (Blob/File)
PASS (Request/Response)
PASS (Blob/File)
@@ -114,6 +146,12 @@
FAIL {/} (Request/Response) assert_equals: expected "" but got "{/}"
PASS Ā/Ā (Blob/File)
PASS Ā/Ā (Request/Response)
+FAIL text /html (Blob/File) assert_equals: Blob expected "" but got "text /html"
+FAIL text /html (Request/Response) assert_equals: expected "" but got "text"
+FAIL text/ html (Blob/File) assert_equals: Blob expected "" but got "text/ html"
+FAIL text/ html (Request/Response) assert_equals: expected "" but got "text/"
+FAIL "text/html" (Blob/File) assert_equals: Blob expected "" but got "\"text/html\""
+FAIL "text/html" (Request/Response) assert_equals: expected "" but got "\"text/html\""
PASS \0/x (Blob/File)
PASS \0/x (Request/Response)
PASS x/\0 (Blob/File)
@@ -213,11 +251,11 @@
PASS
/x (Blob/File)
FAIL
-/x (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
PASS x/
(Blob/File)
FAIL x/
- (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+ (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
FAIL x/x;
=x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
PASS x/x;
@@ -251,9 +289,9 @@
FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "x/x"
PASS \r/x (Blob/File)
-FAIL \r/x (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+FAIL \r/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
PASS x/\r (Blob/File)
-FAIL x/\r (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+FAIL x/\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
FAIL x/x;\r=x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
PASS x/x;\r=x;bonus=x (Request/Response)
FAIL x/x;x=\r;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.js (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.js 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.js 2020-07-14 23:01:51 UTC (rev 264380)
@@ -10,14 +10,11 @@
function isByteCompatible(str) {
for(let i = 0; i < str.length; i++) {
const charCode = str.charCodeAt(i);
- // See https://github.com/web-platform-tests/wpt/issues/8372 for 0x0B and 0x0C
- // See https://fetch.spec.whatwg.org/#concept-header-value for the remainder
+ // See https://fetch.spec.whatwg.org/#concept-header-value
if(charCode > 0xFF) {
return "incompatible";
} else if(charCode === 0x00 || charCode === 0x0A || charCode === 0x0D) {
return "header-value-incompatible";
- } else if(charCode === 0x0B || charCode === 0x0C) {
- return "wptserve-incompatible";
}
}
return "compatible";
@@ -37,8 +34,8 @@
promise_test(() => {
const compatibleNess = isByteCompatible(val.input);
if(compatibleNess === "incompatible" || compatibleNess === "header-value-incompatible") {
- assert_throws(new TypeError(), () => new Request("about:blank", { headers: [["Content-Type", val.input]] }));
- assert_throws(new TypeError(), () => new Response(null, { headers: [["Content-Type", val.input]] }));
+ assert_throws_js(TypeError, () => new Request("about:blank", { headers: [["Content-Type", val.input]] }));
+ assert_throws_js(TypeError, () => new Response(null, { headers: [["Content-Type", val.input]] }));
return Promise.resolve();
} else {
return Promise.all([
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt 2020-07-14 23:01:51 UTC (rev 264380)
@@ -22,6 +22,14 @@
FAIL text/html;charset= gbk (Request/Response) assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
FAIL text/html;charset= "gbk" (Blob/File) assert_equals: Blob expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html;charset= \"gbk\""
FAIL text/html;charset= "gbk" (Request/Response) assert_equals: expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html"
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
+FAIL text/html;charset=gbk (Blob/File) assert_equals: Blob expected "text/html" but got ""
+PASS text/html;charset=gbk (Request/Response)
PASS text/html;charset='gbk' (Blob/File)
FAIL text/html;charset='gbk' (Request/Response) assert_equals: expected "text/html;charset='gbk'" but got "text/html"
PASS text/html;charset='gbk (Blob/File)
@@ -84,10 +92,34 @@
PASS x/x;x= (Request/Response)
FAIL x/x;x= (Blob/File) assert_equals: Blob expected "x/x" but got ""
PASS x/x;x= (Request/Response)
+FAIL x/x
+\r ;x=x (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
+PASS x/x
+\r ;x=x (Request/Response)
+FAIL
+\r x/x;x=x
+\r (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
+FAIL
+\r x/x;x=x
+\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+FAIL x/x;
+\r x=x
+\r ;x=y (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
+PASS x/x;
+\r x=x
+\r ;x=y (Request/Response)
FAIL text/html;test=ÿ;charset=gbk (Blob/File) assert_equals: Blob expected "text/html;test=\"ÿ\";charset=gbk" but got ""
FAIL text/html;test=ÿ;charset=gbk (Request/Response) assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got "text/html"
FAIL x/x;test=�;x=x (Blob/File) assert_equals: Blob expected "x/x;x=x" but got ""
PASS x/x;test=�;x=x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
+PASS x/x (Blob/File)
+PASS x/x (Request/Response)
PASS (Blob/File)
PASS (Request/Response)
PASS (Blob/File)
@@ -114,6 +146,12 @@
FAIL {/} (Request/Response) assert_equals: expected "" but got "{/}"
PASS Ā/Ā (Blob/File)
PASS Ā/Ā (Request/Response)
+FAIL text /html (Blob/File) assert_equals: Blob expected "" but got "text /html"
+FAIL text /html (Request/Response) assert_equals: expected "" but got "text"
+FAIL text/ html (Blob/File) assert_equals: Blob expected "" but got "text/ html"
+FAIL text/ html (Request/Response) assert_equals: expected "" but got "text/"
+FAIL "text/html" (Blob/File) assert_equals: Blob expected "" but got "\"text/html\""
+FAIL "text/html" (Request/Response) assert_equals: expected "" but got "\"text/html\""
PASS \0/x (Blob/File)
PASS \0/x (Request/Response)
PASS x/\0 (Blob/File)
@@ -213,11 +251,11 @@
PASS
/x (Blob/File)
FAIL
-/x (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
PASS x/
(Blob/File)
FAIL x/
- (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+ (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
FAIL x/x;
=x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
PASS x/x;
@@ -251,9 +289,9 @@
FAIL x/x;x="";bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
FAIL x/x;x="";bonus=x (Request/Response) assert_equals: expected "x/x;bonus=x" but got "x/x"
PASS \r/x (Blob/File)
-FAIL \r/x (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+FAIL \r/x (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
PASS x/\r (Blob/File)
-FAIL x/\r (Request/Response) assert_throws: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
+FAIL x/\r (Request/Response) assert_throws_js: function "() => new Request("about:blank", { headers: [["Content-Type", val.input]] })" did not throw
FAIL x/x;\r=x;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
PASS x/x;\r=x;bonus=x (Request/Response)
FAIL x/x;x=\r;bonus=x (Blob/File) assert_equals: Blob expected "x/x;bonus=x" but got ""
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-charset.py (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-charset.py 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-charset.py 2020-07-14 23:01:51 UTC (rev 264380)
@@ -1,3 +1,18 @@
+from wptserve.utils import isomorphic_encode
+
def main(request, response):
- response.headers.set("Content-Type", request.GET.first("type"));
- response.content = "<meta charset=utf-8>\n<script>document.write(document.characterSet)</script>"
+ content = b"<meta charset=utf-8>\n<script>document.write(document.characterSet)</script>"
+
+ # This uses the following rather than
+ # response.headers.set("Content-Type", request.GET.first("type"));
+ # response.content = content
+ # to work around https://github.com/web-platform-tests/wpt/issues/8372.
+
+ response.add_required_headers = False
+ output = b"HTTP/1.1 200 OK\r\n"
+ output += b"Content-Length: " + isomorphic_encode(str(len(content))) + b"\r\n"
+ output += b"Content-Type: " + request.GET.first(b"type") + b"\r\n"
+ output += b"\r\n"
+ output += content
+ response.writer.write(output)
+ response.close_connection = True
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-groups.json (0 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-groups.json (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-groups.json 2020-07-14 23:01:51 UTC (rev 264380)
@@ -0,0 +1,159 @@
+[
+ {"input": "x/x", "groups": []},
+ {"input": "image/x", "groups": ["image"]},
+ {"input": "audio/x", "groups": ["audio or video"]},
+ {"input": "video/x", "groups": ["audio or video"]},
+ {"input": "application/ogg", "groups": ["audio or video"]},
+ {"input": "application/ogg;x=x", "groups": ["audio or video"]},
+ {"input": "font/x", "groups": ["font"]},
+ {"input": "application/font-cff", "groups": ["font"]},
+ {"input": "application/font-cff;x=x", "groups": ["font"]},
+ {"input": "application/font-off", "groups": ["font"]},
+ {"input": "application/font-off;x=x", "groups": ["font"]},
+ {"input": "application/font-sfnt", "groups": ["font"]},
+ {"input": "application/font-sfnt;x=x", "groups": ["font"]},
+ {"input": "application/font-ttf", "groups": ["font"]},
+ {"input": "application/font-ttf;x=x", "groups": ["font"]},
+ {"input": "application/font-woff", "groups": ["font"]},
+ {"input": "application/font-woff;x=x", "groups": ["font"]},
+ {"input": "application/vnd.ms-fontobject", "groups": ["font"]},
+ {"input": "application/vnd.ms-fontobject;x=x", "groups": ["font"]},
+ {"input": "application/vnd.ms-opentype", "groups": ["font"]},
+ {"input": "application/vnd.ms-opentype;x=x", "groups": ["font"]},
+ {"input": "x/x+zip", "groups": ["ZIP-based"]},
+ {"input": "x/x+zip;x=x", "groups": ["ZIP-based"]},
+ {"input": "x/+zip", "groups": ["ZIP-based"]},
+ {"input": "x/+zip;x=x", "groups": ["ZIP-based"]},
+ "application/zip also matches the archive group",
+ {"input": "application/zip", "groups": ["ZIP-based", "archive"]},
+ {"input": "application/zip;x=x", "groups": ["ZIP-based", "archive"]},
+ {"input": "application/x-rar-compressed", "groups": ["archive"]},
+ {"input": "application/x-rar-compressed;x=x", "groups": ["archive"]},
+ {"input": "application/x-gzip", "groups": ["archive"]},
+ {"input": "application/x-gzip;x=x", "groups": ["archive"]},
+ "XML is also scriptable",
+ {"input": "x/x+xml", "groups": ["XML", "scriptable"]},
+ {"input": "x/x+xml;x=x", "groups": ["XML", "scriptable"]},
+ {"input": "x/+xml", "groups": ["XML", "scriptable"]},
+ {"input": "x/+xml;x=x", "groups": ["XML", "scriptable"]},
+ {"input": "application/xml", "groups": ["XML", "scriptable"]},
+ {"input": "application/xml;x=x", "groups": ["XML", "scriptable"]},
+ {"input": "text/xml", "groups": ["XML", "scriptable"]},
+ {"input": "text/xml;x=x", "groups": ["XML", "scriptable"]},
+ "HTML is scriptable",
+ {"input": "text/html", "groups": ["HTML", "scriptable"]},
+ {"input": "text/html;x=x", "groups": ["HTML", "scriptable"]},
+ "PDF is scriptable",
+ {"input": "application/pdf", "groups": ["scriptable"]},
+ {"input": "application/pdf;x=x", "groups": ["scriptable"]},
+ {"input": "application/ecmascript", "groups": ["_javascript_"]},
+ {"input": "application/ecmascript;x=x", "groups": ["_javascript_"]},
+ {"input": "application/_javascript_", "groups": ["_javascript_"]},
+ {"input": "application/_javascript_;x=x", "groups": ["_javascript_"]},
+ {"input": "application/x-ecmascript", "groups": ["_javascript_"]},
+ {"input": "application/x-ecmascript;x=x", "groups": ["_javascript_"]},
+ {"input": "application/x-_javascript_", "groups": ["_javascript_"]},
+ {"input": "application/x-_javascript_;x=x", "groups": ["_javascript_"]},
+ {"input": "text/ecmascript", "groups": ["_javascript_"]},
+ {"input": "text/ecmascript;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.0", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.0;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.1", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.1;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.2", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.2;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.3", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.3;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.4", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.4;x=x", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.5", "groups": ["_javascript_"]},
+ {"input": "text/_javascript_1.5;x=x", "groups": ["_javascript_"]},
+ {"input": "text/jscript", "groups": ["_javascript_"]},
+ {"input": "text/jscript;x=x", "groups": ["_javascript_"]},
+ {"input": "text/livescript", "groups": ["_javascript_"]},
+ {"input": "text/livescript;x=x", "groups": ["_javascript_"]},
+ {"input": "text/x-ecmascript", "groups": ["_javascript_"]},
+ {"input": "text/x-ecmascript;x=x", "groups": ["_javascript_"]},
+ {"input": "text/x-_javascript_", "groups": ["_javascript_"]},
+ {"input": "text/x-_javascript_;x=x", "groups": ["_javascript_"]},
+ {"input": "x/x+json", "groups": ["JSON"]},
+ {"input": "x/x+json;x=x", "groups": ["JSON"]},
+ {"input": "x/+json", "groups": ["JSON"]},
+ {"input": "x/+json;x=x", "groups": ["JSON"]},
+ {"input": "application/json", "groups": ["JSON"]},
+ {"input": "application/json;x=x", "groups": ["JSON"]},
+ {"input": "text/json", "groups": ["JSON"]},
+ {"input": "text/json;x=x", "groups": ["JSON"]},
+ {"input": "x/x;type=image", "groups": []},
+ {"input": "x/x;type=audio", "groups": []},
+ {"input": "x/x;type=video", "groups": []},
+ {"input": "x/x;type=font", "groups": []},
+ {"input": "ximage/x", "groups": []},
+ {"input": "xaudio/x", "groups": []},
+ {"input": "xvideo/x", "groups": []},
+ {"input": "xfont/x", "groups": []},
+ {"input": "imagex/x", "groups": []},
+ {"input": "audiox/x", "groups": []},
+ {"input": "videox/x", "groups": []},
+ {"input": "fontx/x", "groups": []},
+ {"input": "x/image", "groups": []},
+ {"input": "x/png", "groups": []},
+ {"input": "x/audio", "groups": []},
+ {"input": "x/video", "groups": []},
+ {"input": "x/ogg", "groups": []},
+ {"input": "x/font", "groups": []},
+ {"input": "x/woff", "groups": []},
+ {"input": "x/font-ttf", "groups": []},
+ {"input": "x/x;x=\"application/font-ttf\"", "groups": []},
+ {"input": "x/zip", "groups": []},
+ {"input": "x/x-gzip", "groups": []},
+ {"input": "x/x-rar-compressed", "groups": []},
+ {"input": "x/x;x=\"application/x-gip\"", "groups": []},
+ {"input": "x+zip/x", "groups": []},
+ {"input": "x/x;x=x+zip", "groups": []},
+ {"input": "x/x;subtype=x+zip", "groups": []},
+ {"input": "x/xml", "groups": []},
+ {"input": "x/x;x=\"application/xml\"", "groups": []},
+ {"input": "x+xml/x", "groups": []},
+ {"input": "x/x;x=x+xml", "groups": []},
+ {"input": "x/x;subtype=x+xml", "groups": []},
+ {"input": "x/pdf", "groups": []},
+ {"input": "x/html", "groups": []},
+ {"input": "x/ecmascript", "groups": []},
+ {"input": "x/_javascript_", "groups": []},
+ {"input": "x/x-ecmascript", "groups": []},
+ {"input": "x/x-_javascript_", "groups": []},
+ {"input": "x/jscript", "groups": []},
+ {"input": "x/livescript", "groups": []},
+ {"input": "x/_javascript_1.0", "groups": []},
+ {"input": "x/_javascript_1.1", "groups": []},
+ {"input": "x/_javascript_1.2", "groups": []},
+ {"input": "x/_javascript_1.3", "groups": []},
+ {"input": "x/_javascript_1.4", "groups": []},
+ {"input": "x/_javascript_1.5", "groups": []},
+ {"input": "x/x;x=\"application/_javascript_\"", "groups": []},
+ {"input": "x/json", "groups": []},
+ {"input": "x/x;x=\"application/json\"", "groups": []},
+ {"input": "x+json/x", "groups": []},
+ {"input": "x/x;x=x+json", "groups": []},
+ {"input": "x/x;subtype=x+json", "groups": []},
+ {"input": "image/png", "groups": ["image"]},
+ {"input": "audio/mp4", "groups": ["audio or video"]},
+ {"input": "video/mpeg", "groups": ["audio or video"]},
+ {"input": "font/woff", "groups": ["font"]},
+ "SVG is both image and XML, thus also scriptable",
+ {"input": "image/svg+xml", "groups": ["image", "XML", "scriptable"]},
+ "Hypothetical SVG font type",
+ {"input": "font/svg+xml", "groups": ["font", "XML", "scriptable"]},
+ "XHTML is not considered HTML",
+ {"input": "application/xhtml+xml", "groups": ["XML", "scriptable"]},
+ "Subtype longer than 255",
+ {"input": "x/01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789+zip",
+ "groups": ["ZIP-based"]},
+ {"input": "x/01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789+xml",
+ "groups": ["XML", "scriptable"]},
+ {"input": "x/01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789+json",
+ "groups": ["JSON"]}
+]
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-types.json (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-types.json 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-types.json 2020-07-14 23:01:51 UTC (rev 264380)
@@ -69,6 +69,31 @@
"navigable": true,
"encoding": null
},
+ "0x0B and 0x0C",
+ {
+ "input": "text/html;charset=\u000Bgbk",
+ "output": "text/html",
+ "navigable": true,
+ "encoding": null
+ },
+ {
+ "input": "text/html;charset=\u000Cgbk",
+ "output": "text/html",
+ "navigable": true,
+ "encoding": null
+ },
+ {
+ "input": "text/html;\u000Bcharset=gbk",
+ "output": "text/html",
+ "navigable": true,
+ "encoding": null
+ },
+ {
+ "input": "text/html;\u000Ccharset=gbk",
+ "output": "text/html",
+ "navigable": true,
+ "encoding": null
+ },
"Single quotes are a token, not a delimiter",
{
"input": "text/html;charset='gbk'",
@@ -250,6 +275,18 @@
"input": "x/x;x=\t",
"output": "x/x"
},
+ {
+ "input": "x/x\n\r\t ;x=x",
+ "output": "x/x;x=x"
+ },
+ {
+ "input": "\n\r\t x/x;x=x\n\r\t ",
+ "output": "x/x;x=x"
+ },
+ {
+ "input": "x/x;\n\r\t x=x\n\r\t ;x=y",
+ "output": "x/x;x=x"
+ },
"Latin1",
{
"input": "text/html;test=\u00FF;charset=gbk",
@@ -264,6 +301,22 @@
},
"Failure",
{
+ "input": "\u000Bx/x",
+ "output": null
+ },
+ {
+ "input": "\u000Cx/x",
+ "output": null
+ },
+ {
+ "input": "x/x\u000B",
+ "output": null
+ },
+ {
+ "input": "x/x\u000C",
+ "output": null
+ },
+ {
"input": "",
"output": null
},
@@ -314,5 +367,17 @@
{
"input": "\u0100/\u0100",
"output": null
+ },
+ {
+ "input": "text /html",
+ "output": null
+ },
+ {
+ "input": "text/ html",
+ "output": null
+ },
+ {
+ "input": "\"text/html\"",
+ "output": null
}
]
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/w3c-import.log (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/w3c-import.log 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/w3c-import.log 2020-07-14 23:01:51 UTC (rev 264380)
@@ -17,4 +17,5 @@
/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/generated-mime-types.json
/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/generated-mime-types.py
/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-charset.py
+/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-groups.json
/LayoutTests/imported/w3c/web-platform-tests/mimesniff/mime-types/resources/mime-types.json
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/overridemimetype-blob-expected.txt (264379 => 264380)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/overridemimetype-blob-expected.txt 2020-07-14 22:51:19 UTC (rev 264379)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/xhr/overridemimetype-blob-expected.txt 2020-07-14 23:01:51 UTC (rev 264380)
@@ -13,50 +13,69 @@
FAIL 9) MIME types need to be parsed and serialized: text/html; charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
FAIL 10) MIME types need to be parsed and serialized: text/html;charset= gbk assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
FAIL 11) MIME types need to be parsed and serialized: text/html;charset= "gbk" assert_equals: expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html"
-FAIL 12) MIME types need to be parsed and serialized: text/html;charset='gbk' assert_equals: expected "text/html;charset='gbk'" but got "text/html"
-FAIL 13) MIME types need to be parsed and serialized: text/html;charset='gbk assert_equals: expected "text/html;charset='gbk" but got "text/html"
-FAIL 14) MIME types need to be parsed and serialized: text/html;charset=gbk' assert_equals: expected "text/html;charset=gbk'" but got "text/html"
-FAIL 15) MIME types need to be parsed and serialized: text/html;charset=';charset=GBK assert_equals: expected "text/html;charset='" but got "text/html"
-FAIL 16) MIME types need to be parsed and serialized: text/html;test;charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 17) MIME types need to be parsed and serialized: text/html;test=;charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 18) MIME types need to be parsed and serialized: text/html;';charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 19) MIME types need to be parsed and serialized: text/html;";charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 20) MIME types need to be parsed and serialized: text/html ; ; charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 21) MIME types need to be parsed and serialized: text/html;;;;charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 22) MIME types need to be parsed and serialized: text/html;charset= ";charset=GBK assert_equals: expected "text/html;charset=GBK" but got "text/html"
-FAIL 23) MIME types need to be parsed and serialized: text/html;charset=";charset=foo";charset=GBK assert_equals: expected "text/html;charset=GBK" but got "text/html"
-FAIL 24) MIME types need to be parsed and serialized: text/html;charset="gbk" assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 25) MIME types need to be parsed and serialized: text/html;charset="gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 26) MIME types need to be parsed and serialized: text/html;charset=gbk" assert_equals: expected "text/html;charset=\"gbk\\\"\"" but got "text/html"
-FAIL 27) MIME types need to be parsed and serialized: text/html;charset=" gbk" assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
-FAIL 28) MIME types need to be parsed and serialized: text/html;charset="gbk " assert_equals: expected "text/html;charset=\"gbk \"" but got "text/html"
-FAIL 29) MIME types need to be parsed and serialized: text/html;charset="\ gbk" assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
-FAIL 30) MIME types need to be parsed and serialized: text/html;charset="\g\b\k" assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 31) MIME types need to be parsed and serialized: text/html;charset="gbk"x assert_equals: expected "text/html;charset=gbk" but got "text/html"
-FAIL 32) MIME types need to be parsed and serialized: text/html;charset="";charset=GBK assert_equals: expected "text/html;charset=\"\"" but got "text/html"
-FAIL 33) MIME types need to be parsed and serialized: text/html;charset=";charset=GBK assert_equals: expected "text/html;charset=\";charset=GBK\"" but got "text/html"
-FAIL 34) MIME types need to be parsed and serialized: text/html;charset={gbk} assert_equals: expected "text/html;charset=\"{gbk}\"" but got "text/html"
-FAIL 35) MIME types need to be parsed and serialized: text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk assert_equals: expected "text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk" but got "text/html"
-PASS 36) MIME types need to be parsed and serialized: 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
-FAIL 37) MIME types need to be parsed and serialized: !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz assert_equals: expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
-FAIL 38) MIME types need to be parsed and serialized: x/x;x=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" assert_equals: expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got "x/x"
-PASS 39) MIME types need to be parsed and serialized: x/x;test
-FAIL 40) MIME types need to be parsed and serialized: x/x;test="\ assert_equals: expected "x/x;test=\"\\\\\"" but got "x/x"
-PASS 41) MIME types need to be parsed and serialized: x/x;x=
-PASS 42) MIME types need to be parsed and serialized: x/x;x=
-FAIL 43) MIME types need to be parsed and serialized: text/html;test=ÿ;charset=gbk assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got "text/html"
-FAIL 44) MIME types need to be parsed and serialized: x/x;test=�;x=x assert_equals: expected "x/x;x=x" but got "x/x"
-PASS 45) MIME types need to be parsed and serialized:
-PASS 46) MIME types need to be parsed and serialized:
-PASS 47) MIME types need to be parsed and serialized: /
-PASS 48) MIME types need to be parsed and serialized: bogus
-PASS 49) MIME types need to be parsed and serialized: bogus/
-PASS 50) MIME types need to be parsed and serialized: bogus/
-PASS 51) MIME types need to be parsed and serialized: bogus/bogus/;
-PASS 52) MIME types need to be parsed and serialized: </>
-PASS 53) MIME types need to be parsed and serialized: (/)
-PASS 54) MIME types need to be parsed and serialized: ÿ/ÿ
-PASS 55) MIME types need to be parsed and serialized: text/html(;doesnot=matter
-PASS 56) MIME types need to be parsed and serialized: {/}
-PASS 57) MIME types need to be parsed and serialized: Ā/Ā
+PASS 12) MIME types need to be parsed and serialized: text/html;charset=gbk
+PASS 13) MIME types need to be parsed and serialized: text/html;charset=gbk
+PASS 14) MIME types need to be parsed and serialized: text/html;charset=gbk
+PASS 15) MIME types need to be parsed and serialized: text/html;charset=gbk
+FAIL 16) MIME types need to be parsed and serialized: text/html;charset='gbk' assert_equals: expected "text/html;charset='gbk'" but got "text/html"
+FAIL 17) MIME types need to be parsed and serialized: text/html;charset='gbk assert_equals: expected "text/html;charset='gbk" but got "text/html"
+FAIL 18) MIME types need to be parsed and serialized: text/html;charset=gbk' assert_equals: expected "text/html;charset=gbk'" but got "text/html"
+FAIL 19) MIME types need to be parsed and serialized: text/html;charset=';charset=GBK assert_equals: expected "text/html;charset='" but got "text/html"
+FAIL 20) MIME types need to be parsed and serialized: text/html;test;charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 21) MIME types need to be parsed and serialized: text/html;test=;charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 22) MIME types need to be parsed and serialized: text/html;';charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 23) MIME types need to be parsed and serialized: text/html;";charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 24) MIME types need to be parsed and serialized: text/html ; ; charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 25) MIME types need to be parsed and serialized: text/html;;;;charset=gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 26) MIME types need to be parsed and serialized: text/html;charset= ";charset=GBK assert_equals: expected "text/html;charset=GBK" but got "text/html"
+FAIL 27) MIME types need to be parsed and serialized: text/html;charset=";charset=foo";charset=GBK assert_equals: expected "text/html;charset=GBK" but got "text/html"
+FAIL 28) MIME types need to be parsed and serialized: text/html;charset="gbk" assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 29) MIME types need to be parsed and serialized: text/html;charset="gbk assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 30) MIME types need to be parsed and serialized: text/html;charset=gbk" assert_equals: expected "text/html;charset=\"gbk\\\"\"" but got "text/html"
+FAIL 31) MIME types need to be parsed and serialized: text/html;charset=" gbk" assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
+FAIL 32) MIME types need to be parsed and serialized: text/html;charset="gbk " assert_equals: expected "text/html;charset=\"gbk \"" but got "text/html"
+FAIL 33) MIME types need to be parsed and serialized: text/html;charset="\ gbk" assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
+FAIL 34) MIME types need to be parsed and serialized: text/html;charset="\g\b\k" assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 35) MIME types need to be parsed and serialized: text/html;charset="gbk"x assert_equals: expected "text/html;charset=gbk" but got "text/html"
+FAIL 36) MIME types need to be parsed and serialized: text/html;charset="";charset=GBK assert_equals: expected "text/html;charset=\"\"" but got "text/html"
+FAIL 37) MIME types need to be parsed and serialized: text/html;charset=";charset=GBK assert_equals: expected "text/html;charset=\";charset=GBK\"" but got "text/html"
+FAIL 38) MIME types need to be parsed and serialized: text/html;charset={gbk} assert_equals: expected "text/html;charset=\"{gbk}\"" but got "text/html"
+FAIL 39) MIME types need to be parsed and serialized: text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk assert_equals: expected "text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk" but got "text/html"
+PASS 40) MIME types need to be parsed and serialized: 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
+FAIL 41) MIME types need to be parsed and serialized: !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz assert_equals: expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
+FAIL 42) MIME types need to be parsed and serialized: x/x;x=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" assert_equals: expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got "x/x"
+PASS 43) MIME types need to be parsed and serialized: x/x;test
+FAIL 44) MIME types need to be parsed and serialized: x/x;test="\ assert_equals: expected "x/x;test=\"\\\\\"" but got "x/x"
+PASS 45) MIME types need to be parsed and serialized: x/x;x=
+PASS 46) MIME types need to be parsed and serialized: x/x;x=
+FAIL 47) MIME types need to be parsed and serialized: x/x
+\r ;x=x assert_equals: expected "x/x;x=x" but got "application/octet-stream"
+FAIL 48) MIME types need to be parsed and serialized:
+\r x/x;x=x
+\r assert_equals: expected "x/x;x=x" but got ""
+FAIL 49) MIME types need to be parsed and serialized: x/x;
+\r x=x
+\r ;x=y assert_equals: expected "x/x;x=x" but got "x/x"
+FAIL 50) MIME types need to be parsed and serialized: text/html;test=ÿ;charset=gbk assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got "text/html"
+FAIL 51) MIME types need to be parsed and serialized: x/x;test=�;x=x assert_equals: expected "x/x;x=x" but got "x/x"
+PASS 52) MIME types need to be parsed and serialized: x/x
+PASS 53) MIME types need to be parsed and serialized: x/x
+PASS 54) MIME types need to be parsed and serialized: x/x
+PASS 55) MIME types need to be parsed and serialized: x/x
+PASS 56) MIME types need to be parsed and serialized:
+PASS 57) MIME types need to be parsed and serialized:
+PASS 58) MIME types need to be parsed and serialized: /
+PASS 59) MIME types need to be parsed and serialized: bogus
+PASS 60) MIME types need to be parsed and serialized: bogus/
+PASS 61) MIME types need to be parsed and serialized: bogus/
+PASS 62) MIME types need to be parsed and serialized: bogus/bogus/;
+PASS 63) MIME types need to be parsed and serialized: </>
+PASS 64) MIME types need to be parsed and serialized: (/)
+PASS 65) MIME types need to be parsed and serialized: ÿ/ÿ
+PASS 66) MIME types need to be parsed and serialized: text/html(;doesnot=matter
+PASS 67) MIME types need to be parsed and serialized: {/}
+PASS 68) MIME types need to be parsed and serialized: Ā/Ā
+PASS 69) MIME types need to be parsed and serialized: text /html
+PASS 70) MIME types need to be parsed and serialized: text/ html
+PASS 71) MIME types need to be parsed and serialized: "text/html"
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes