blob: d3de7699662da75fc37fba31cf994f02a13de191 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Form newline normalization</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
function createForm(testCase, name, value) {
const form = document.createElement("form");
const input = document.createElement("input");
input.type = "hidden";
input.name = name;
input.value = value;
form.appendChild(input);
document.body.appendChild(form);
testCase.add_cleanup(() => {
document.body.removeChild(form);
});
return form;
}
test((testCase) => {
const formData = new FormData(createForm(testCase, "a", "b\nc"));
assert_equals(formData.get("a"), "b\r\nc");
}, document.title + ": \\n in the value becomes \\r\\n");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a", "b\rc"));
assert_equals(formData.get("a"), "b\r\nc");
}, document.title + ": \\r in the value becomes \\r\\n");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a", "b\r\nc"));
assert_equals(formData.get("a"), "b\r\nc");
}, document.title + ": \\r\\n in the value stays unchanged");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a", "b\n\rc"));
assert_equals(formData.get("a"), "b\r\n\r\nc");
}, document.title + ": \\n\\r in the value becomes \\r\\n\\r\\n");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a\nb", "c"));
assert_equals([...formData][0][0], "a\r\nb");
}, document.title + ": \\n in the name becomes \\r\\n");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a\rb", "c"));
assert_equals([...formData][0][0], "a\r\nb");
}, document.title + ": \\r in the name becomes \\r\\n");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a\r\nb", "c"));
assert_equals([...formData][0][0], "a\r\nb");
}, document.title + ": \\r\\n in the name stays unchanged");
test((testCase) => {
const formData = new FormData(createForm(testCase, "a\n\rb", "c"));
assert_equals([...formData][0][0], "a\r\n\r\nb");
}, document.title + ": \\n\\r in the name becomes \\r\\n\\r\\n");
</script>
</body>
</html>