| <!doctype html> |
| <html> |
| <head> |
| <title>XMLHttpRequest: send() - charset parameter of Content-Type</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[4]/p/code[contains(text(),'Content-Type')]/.. following::ol[1]/li[4]/p/code[contains(text(),'Content-Type')]/../following-sibling::p" /> |
| <link rel="help" href="https://xhr.spec.whatwg.org/#dom-XMLHttpRequest-send-a-string" data-tested-assertations="following::p[2]" /> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script> |
| function request(input, output, title) { |
| title = title || document.title + ' - ' + input; |
| test(function() { |
| var client = new XMLHttpRequest() |
| client.open("POST", "resources/content.py", false) |
| if(input) |
| client.setRequestHeader("Content-Type", input) |
| client.send("TEST") |
| assert_equals(client.responseText, "TEST") |
| assert_equals(client.getResponseHeader("x-request-content-type"), output) |
| }, title) |
| } |
| |
| request( |
| "text; charset=ascii", |
| "text; charset=ascii", |
| "header with invalid MIME type is not changed" |
| ) |
| request( |
| "charset=ascii", |
| "charset=ascii", |
| "known charset but bogus header - missing MIME type" |
| ) |
| request( |
| "charset=bogus", |
| "charset=bogus", |
| "bogus charset and bogus header - missing MIME type" |
| ) |
| request( |
| "text/plain;charset=utf-8", |
| "text/plain;charset=utf-8", |
| "Correct text/plain MIME with charset" |
| ) |
| request( |
| "text/x-pink-unicorn", |
| "text/x-pink-unicorn", |
| "If no charset= param is given, implementation should not add one - unknown MIME" |
| ) |
| request( |
| "text/plain", |
| "text/plain", |
| "If no charset= param is given, implementation should not add one - known MIME" |
| ) |
| request( |
| "text/x-thepiano;charset= waddup", |
| "text/x-thepiano;charset=UTF-8", |
| "charset given but wrong, fix it (unknown MIME, bogus charset)" |
| ) |
| request( |
| "text/plain;charset=utf-8;charset=waddup", |
| "text/plain;charset=utf-8;charset=UTF-8", |
| "charset given but wrong, fix it (known MIME, bogus charset)" |
| ) |
| request( |
| "text/plain;charset=shift-jis", |
| "text/plain;charset=UTF-8", |
| "charset given but wrong, fix it (known MIME, actual charset)" |
| ) |
| request( |
| "text/x-pink-unicorn; charset=windows-1252; charset=bogus; notrelated; charset=ascii", |
| "text/x-pink-unicorn; charset=UTF-8; charset=UTF-8; notrelated; charset=UTF-8", |
| "If multiple charset parameters are given, all should be rewritten" |
| ) |
| request( |
| null, |
| "text/plain;charset=UTF-8", |
| "No content type set, give MIME and charset" |
| ) |
| </script> |
| </body> |
| </html> |