1<!DOCTYPE html> 2<meta charset="utf-8" /> 3<title>FormData: Upload files named using punctuation (tentative)</title> 4<!-- 5 NOTE: This test is tentative because encoding for filename 6 punctuation characters is not yet standardized. 7 --> 8<link 9 rel="help" 10 href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data" 11/> 12<link 13 rel="help" 14 href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist" 15/> 16<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" /> 17<link 18 rel="author" 19 title="Benjamin C. Wiley Sittler" 20 href="mailto:bsittler@chromium.org" 21/> 22<script src="/resources/testharness.js"></script> 23<script src="/resources/testharnessreport.js"></script> 24<script src="../support/send-file-formdata-helper.js"></script> 25<script> 26 "use strict"; 27 28 // These have characters that undergo processing in name=, 29 // filename=, and/or value; formDataPostFileUploadTest postprocesses 30 // expectedEncodedBaseName for these internally. 31 32 formDataPostFileUploadTest({ 33 fileNameSource: "ASCII", 34 fileBaseName: "file-for-upload-in-form-QUOTATION-MARK-[\x22].txt", 35 }); 36 37 formDataPostFileUploadTest({ 38 fileNameSource: "ASCII", 39 fileBaseName: '"file-for-upload-in-form-double-quoted.txt"', 40 }); 41 42 formDataPostFileUploadTest({ 43 fileNameSource: "ASCII", 44 fileBaseName: "file-for-upload-in-form-REVERSE-SOLIDUS-[\\].txt", 45 }); 46 47 // The rest should be passed through unmodified: 48 49 formDataPostFileUploadTest({ 50 fileNameSource: "ASCII", 51 fileBaseName: "file-for-upload-in-form-EXCLAMATION-MARK-[!].txt", 52 }); 53 54 formDataPostFileUploadTest({ 55 fileNameSource: "ASCII", 56 fileBaseName: "file-for-upload-in-form-DOLLAR-SIGN-[$].txt", 57 }); 58 59 formDataPostFileUploadTest({ 60 fileNameSource: "ASCII", 61 fileBaseName: "file-for-upload-in-form-PERCENT-SIGN-[%].txt", 62 }); 63 64 formDataPostFileUploadTest({ 65 fileNameSource: "ASCII", 66 fileBaseName: "file-for-upload-in-form-AMPERSAND-[&].txt", 67 }); 68 69 formDataPostFileUploadTest({ 70 fileNameSource: "ASCII", 71 fileBaseName: "file-for-upload-in-form-APOSTROPHE-['].txt", 72 }); 73 74 formDataPostFileUploadTest({ 75 fileNameSource: "ASCII", 76 fileBaseName: "file-for-upload-in-form-LEFT-PARENTHESIS-[(].txt", 77 }); 78 79 formDataPostFileUploadTest({ 80 fileNameSource: "ASCII", 81 fileBaseName: "file-for-upload-in-form-RIGHT-PARENTHESIS-[)].txt", 82 }); 83 84 formDataPostFileUploadTest({ 85 fileNameSource: "ASCII", 86 fileBaseName: "file-for-upload-in-form-ASTERISK-[*].txt", 87 }); 88 89 formDataPostFileUploadTest({ 90 fileNameSource: "ASCII", 91 fileBaseName: "file-for-upload-in-form-PLUS-SIGN-[+].txt", 92 }); 93 94 formDataPostFileUploadTest({ 95 fileNameSource: "ASCII", 96 fileBaseName: "file-for-upload-in-form-COMMA-[,].txt", 97 }); 98 99 formDataPostFileUploadTest({ 100 fileNameSource: "ASCII", 101 fileBaseName: "file-for-upload-in-form-FULL-STOP-[.].txt", 102 }); 103 104 formDataPostFileUploadTest({ 105 fileNameSource: "ASCII", 106 fileBaseName: "file-for-upload-in-form-SOLIDUS-[/].txt", 107 }); 108 109 formDataPostFileUploadTest({ 110 fileNameSource: "ASCII", 111 fileBaseName: "file-for-upload-in-form-COLON-[:].txt", 112 }); 113 114 formDataPostFileUploadTest({ 115 fileNameSource: "ASCII", 116 fileBaseName: "file-for-upload-in-form-SEMICOLON-[;].txt", 117 }); 118 119 formDataPostFileUploadTest({ 120 fileNameSource: "ASCII", 121 fileBaseName: "file-for-upload-in-form-EQUALS-SIGN-[=].txt", 122 }); 123 124 formDataPostFileUploadTest({ 125 fileNameSource: "ASCII", 126 fileBaseName: "file-for-upload-in-form-QUESTION-MARK-[?].txt", 127 }); 128 129 formDataPostFileUploadTest({ 130 fileNameSource: "ASCII", 131 fileBaseName: "file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^].txt", 132 }); 133 134 formDataPostFileUploadTest({ 135 fileNameSource: "ASCII", 136 fileBaseName: "file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[].txt", 137 }); 138 139 formDataPostFileUploadTest({ 140 fileNameSource: "ASCII", 141 fileBaseName: "file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[]].txt", 142 }); 143 144 formDataPostFileUploadTest({ 145 fileNameSource: "ASCII", 146 fileBaseName: "file-for-upload-in-form-LEFT-CURLY-BRACKET-[{].txt", 147 }); 148 149 formDataPostFileUploadTest({ 150 fileNameSource: "ASCII", 151 fileBaseName: "file-for-upload-in-form-VERTICAL-LINE-[|].txt", 152 }); 153 154 formDataPostFileUploadTest({ 155 fileNameSource: "ASCII", 156 fileBaseName: "file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}].txt", 157 }); 158 159 formDataPostFileUploadTest({ 160 fileNameSource: "ASCII", 161 fileBaseName: "file-for-upload-in-form-TILDE-[~].txt", 162 }); 163 164 formDataPostFileUploadTest({ 165 fileNameSource: "ASCII", 166 fileBaseName: "'file-for-upload-in-form-single-quoted.txt'", 167 }); 168</script> 169