blob: 9e93279d6ba15f196bbd4d864aebdce55a0a7f62 [file] [log] [blame]
<!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>