11cb0ef41Sopenharmony_ci<!DOCTYPE html>
21cb0ef41Sopenharmony_ci<meta charset="utf-8" />
31cb0ef41Sopenharmony_ci<title>Upload files named using punctuation (tentative)</title>
41cb0ef41Sopenharmony_ci<!--
51cb0ef41Sopenharmony_ci    NOTE: This test is tentative because encoding for filename
61cb0ef41Sopenharmony_ci    punctuation characters is not yet standardized.
71cb0ef41Sopenharmony_ci  -->
81cb0ef41Sopenharmony_ci<link
91cb0ef41Sopenharmony_ci  rel="help"
101cb0ef41Sopenharmony_ci  href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#multipart-form-data"
111cb0ef41Sopenharmony_ci/>
121cb0ef41Sopenharmony_ci<link
131cb0ef41Sopenharmony_ci  rel="help"
141cb0ef41Sopenharmony_ci  href="https://html.spec.whatwg.org/multipage/dnd.html#datatransferitemlist"
151cb0ef41Sopenharmony_ci/>
161cb0ef41Sopenharmony_ci<link rel="help" href="https://w3c.github.io/FileAPI/#file-constructor" />
171cb0ef41Sopenharmony_ci<link
181cb0ef41Sopenharmony_ci  rel="author"
191cb0ef41Sopenharmony_ci  title="Benjamin C. Wiley Sittler"
201cb0ef41Sopenharmony_ci  href="mailto:bsittler@chromium.org"
211cb0ef41Sopenharmony_ci/>
221cb0ef41Sopenharmony_ci<script src="/resources/testharness.js"></script>
231cb0ef41Sopenharmony_ci<script src="/resources/testharnessreport.js"></script>
241cb0ef41Sopenharmony_ci<script src="../support/send-file-form-helper.js"></script>
251cb0ef41Sopenharmony_ci<script>
261cb0ef41Sopenharmony_ci  "use strict";
271cb0ef41Sopenharmony_ci
281cb0ef41Sopenharmony_ci  // These have characters that undergo processing in name=,
291cb0ef41Sopenharmony_ci  // filename=, and/or value; formPostFileUploadTest postprocesses
301cb0ef41Sopenharmony_ci  // expectedEncodedBaseName for these internally.
311cb0ef41Sopenharmony_ci
321cb0ef41Sopenharmony_ci  formPostFileUploadTest({
331cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
341cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-QUOTATION-MARK-[\x22].txt",
351cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
361cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
371cb0ef41Sopenharmony_ci      "file-for-upload-in-form-QUOTATION-MARK-[\x22].txt",
381cb0ef41Sopenharmony_ci  });
391cb0ef41Sopenharmony_ci
401cb0ef41Sopenharmony_ci  formPostFileUploadTest({
411cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
421cb0ef41Sopenharmony_ci    fileBaseName: '"file-for-upload-in-form-double-quoted.txt"',
431cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
441cb0ef41Sopenharmony_ci    expectedEncodedBaseName: '"file-for-upload-in-form-double-quoted.txt"',
451cb0ef41Sopenharmony_ci  });
461cb0ef41Sopenharmony_ci
471cb0ef41Sopenharmony_ci  formPostFileUploadTest({
481cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
491cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-REVERSE-SOLIDUS-[\\].txt",
501cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
511cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
521cb0ef41Sopenharmony_ci      "file-for-upload-in-form-REVERSE-SOLIDUS-[\\].txt",
531cb0ef41Sopenharmony_ci  });
541cb0ef41Sopenharmony_ci
551cb0ef41Sopenharmony_ci  // The rest should be passed through unmodified:
561cb0ef41Sopenharmony_ci
571cb0ef41Sopenharmony_ci  formPostFileUploadTest({
581cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
591cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-EXCLAMATION-MARK-[!].txt",
601cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
611cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-EXCLAMATION-MARK-[!].txt",
621cb0ef41Sopenharmony_ci  });
631cb0ef41Sopenharmony_ci
641cb0ef41Sopenharmony_ci  formPostFileUploadTest({
651cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
661cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-DOLLAR-SIGN-[$].txt",
671cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
681cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-DOLLAR-SIGN-[$].txt",
691cb0ef41Sopenharmony_ci  });
701cb0ef41Sopenharmony_ci
711cb0ef41Sopenharmony_ci  formPostFileUploadTest({
721cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
731cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-PERCENT-SIGN-[%].txt",
741cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
751cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-PERCENT-SIGN-[%].txt",
761cb0ef41Sopenharmony_ci  });
771cb0ef41Sopenharmony_ci
781cb0ef41Sopenharmony_ci  formPostFileUploadTest({
791cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
801cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-AMPERSAND-[&].txt",
811cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
821cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-AMPERSAND-[&].txt",
831cb0ef41Sopenharmony_ci  });
841cb0ef41Sopenharmony_ci
851cb0ef41Sopenharmony_ci  formPostFileUploadTest({
861cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
871cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-APOSTROPHE-['].txt",
881cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
891cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-APOSTROPHE-['].txt",
901cb0ef41Sopenharmony_ci  });
911cb0ef41Sopenharmony_ci
921cb0ef41Sopenharmony_ci  formPostFileUploadTest({
931cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
941cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-LEFT-PARENTHESIS-[(].txt",
951cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
961cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-LEFT-PARENTHESIS-[(].txt",
971cb0ef41Sopenharmony_ci  });
981cb0ef41Sopenharmony_ci
991cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1001cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1011cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-RIGHT-PARENTHESIS-[)].txt",
1021cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1031cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
1041cb0ef41Sopenharmony_ci      "file-for-upload-in-form-RIGHT-PARENTHESIS-[)].txt",
1051cb0ef41Sopenharmony_ci  });
1061cb0ef41Sopenharmony_ci
1071cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1081cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1091cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-ASTERISK-[*].txt",
1101cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1111cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-ASTERISK-[*].txt",
1121cb0ef41Sopenharmony_ci  });
1131cb0ef41Sopenharmony_ci
1141cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1151cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1161cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-PLUS-SIGN-[+].txt",
1171cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1181cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-PLUS-SIGN-[+].txt",
1191cb0ef41Sopenharmony_ci  });
1201cb0ef41Sopenharmony_ci
1211cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1221cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1231cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-COMMA-[,].txt",
1241cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1251cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-COMMA-[,].txt",
1261cb0ef41Sopenharmony_ci  });
1271cb0ef41Sopenharmony_ci
1281cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1291cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1301cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-FULL-STOP-[.].txt",
1311cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1321cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-FULL-STOP-[.].txt",
1331cb0ef41Sopenharmony_ci  });
1341cb0ef41Sopenharmony_ci
1351cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1361cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1371cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-SOLIDUS-[/].txt",
1381cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1391cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-SOLIDUS-[/].txt",
1401cb0ef41Sopenharmony_ci  });
1411cb0ef41Sopenharmony_ci
1421cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1431cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1441cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-COLON-[:].txt",
1451cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1461cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-COLON-[:].txt",
1471cb0ef41Sopenharmony_ci  });
1481cb0ef41Sopenharmony_ci
1491cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1501cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1511cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-SEMICOLON-[;].txt",
1521cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1531cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-SEMICOLON-[;].txt",
1541cb0ef41Sopenharmony_ci  });
1551cb0ef41Sopenharmony_ci
1561cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1571cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1581cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-EQUALS-SIGN-[=].txt",
1591cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1601cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-EQUALS-SIGN-[=].txt",
1611cb0ef41Sopenharmony_ci  });
1621cb0ef41Sopenharmony_ci
1631cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1641cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1651cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-QUESTION-MARK-[?].txt",
1661cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1671cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-QUESTION-MARK-[?].txt",
1681cb0ef41Sopenharmony_ci  });
1691cb0ef41Sopenharmony_ci
1701cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1711cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1721cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^].txt",
1731cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1741cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
1751cb0ef41Sopenharmony_ci      "file-for-upload-in-form-CIRCUMFLEX-ACCENT-[^].txt",
1761cb0ef41Sopenharmony_ci  });
1771cb0ef41Sopenharmony_ci
1781cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1791cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1801cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[].txt",
1811cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1821cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
1831cb0ef41Sopenharmony_ci      "file-for-upload-in-form-LEFT-SQUARE-BRACKET-[[].txt",
1841cb0ef41Sopenharmony_ci  });
1851cb0ef41Sopenharmony_ci
1861cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1871cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1881cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[]].txt",
1891cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1901cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
1911cb0ef41Sopenharmony_ci      "file-for-upload-in-form-RIGHT-SQUARE-BRACKET-[]].txt",
1921cb0ef41Sopenharmony_ci  });
1931cb0ef41Sopenharmony_ci
1941cb0ef41Sopenharmony_ci  formPostFileUploadTest({
1951cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
1961cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-LEFT-CURLY-BRACKET-[{].txt",
1971cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
1981cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
1991cb0ef41Sopenharmony_ci      "file-for-upload-in-form-LEFT-CURLY-BRACKET-[{].txt",
2001cb0ef41Sopenharmony_ci  });
2011cb0ef41Sopenharmony_ci
2021cb0ef41Sopenharmony_ci  formPostFileUploadTest({
2031cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
2041cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-VERTICAL-LINE-[|].txt",
2051cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
2061cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-VERTICAL-LINE-[|].txt",
2071cb0ef41Sopenharmony_ci  });
2081cb0ef41Sopenharmony_ci
2091cb0ef41Sopenharmony_ci  formPostFileUploadTest({
2101cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
2111cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}].txt",
2121cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
2131cb0ef41Sopenharmony_ci    expectedEncodedBaseName:
2141cb0ef41Sopenharmony_ci      "file-for-upload-in-form-RIGHT-CURLY-BRACKET-[}].txt",
2151cb0ef41Sopenharmony_ci  });
2161cb0ef41Sopenharmony_ci
2171cb0ef41Sopenharmony_ci  formPostFileUploadTest({
2181cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
2191cb0ef41Sopenharmony_ci    fileBaseName: "file-for-upload-in-form-TILDE-[~].txt",
2201cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
2211cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "file-for-upload-in-form-TILDE-[~].txt",
2221cb0ef41Sopenharmony_ci  });
2231cb0ef41Sopenharmony_ci
2241cb0ef41Sopenharmony_ci  formPostFileUploadTest({
2251cb0ef41Sopenharmony_ci    fileNameSource: "ASCII",
2261cb0ef41Sopenharmony_ci    fileBaseName: "'file-for-upload-in-form-single-quoted.txt'",
2271cb0ef41Sopenharmony_ci    formEncoding: "UTF-8",
2281cb0ef41Sopenharmony_ci    expectedEncodedBaseName: "'file-for-upload-in-form-single-quoted.txt'",
2291cb0ef41Sopenharmony_ci  });
2301cb0ef41Sopenharmony_ci</script>
231