blob: 25b6c1490240d9f9330cfe25add6dc671ea4de44 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="/js-test-resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script src="../local/formdata/resources/send-form-data-common.js"></script>
<script>
description("Test escaping of filename passed to FormData.append().");
function runTest()
{
debug("Sending FormData containing blob with plain filename and MIME type:");
response = testSendingFormData([{
'type': 'blob',
'name': 'file',
'value': new Blob(['1234567890'], {type: "text/plain"}),
'filename': 'no-tricks.txt'
}]);
shouldBe("window.response", "'file=no-tricks.txt:text/plain:1234567890'");
debug("Sending FormData containing Blob with quote in filename:");
response = testSendingFormData([{
'type': 'blob',
'name': 'file',
'value': new Blob(['1234567890'], {type: "text/plain"}),
'filename': 'has"quote.txt'
}]);
shouldBe("response", "'file=has%22quote.txt:text/plain:1234567890'");
debug("Sending FormData containing Blob with LF in filename:");
response = testSendingFormData([{
'type': 'blob',
'name': 'file',
'value': new Blob(['1234567890'], {type: "text/plain"}),
'filename': 'has\nlf.txt'
}]);
shouldBe("response", "'file=has%0Alf.txt:text/plain:1234567890'");
debug("Sending FormData containing Blob with CR in filename:");
response = testSendingFormData([{
'type': 'blob',
'name': 'file',
'value': new Blob(['1234567890'], {type: "text/plain"}),
'filename': 'has\rcr.txt'
}]);
shouldBe("response", "'file=has%0Dcr.txt:text/plain:1234567890'");
debug("Sending FormData containing Blob with CR LF and \" in filename:");
response = testSendingFormData([{
'type': 'blob',
'name': 'file',
'value': new Blob(['1234567890'], {type: "text/plain"}),
'filename': 'has\r\ncrlf"andquote.txt'
}]);
shouldBe("response", "'file=has%0D%0Acrlf%22andquote.txt:text/plain:1234567890'");
}
runTest();
formDataTestingCleanup();
var successfullyParsed = true;
</script>
<script src="/js-test-resources/js-test-post.js"></script>
</body>
</html>