• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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