Skip to content
Permalink
Browse files
FILEUPLOAD-321 - Use charset constant int the test V2
  • Loading branch information
arturobernalg committed Apr 26, 2021
1 parent a27bfc5 commit 1b10014dddf12527f8dbad24169e4f6a9434e8c5
Showing 6 changed files with 32 additions and 26 deletions.
@@ -23,6 +23,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

import org.apache.commons.fileupload2.servlet.ServletFileUpload;
import org.junit.jupiter.api.Test;
@@ -77,13 +78,13 @@ public void testProgressListener() throws Exception {
final String header = "-----1234\r\n"
+ "Content-Disposition: form-data; name=\"field" + (i+1) + "\"\r\n"
+ "\r\n";
baos.write(header.getBytes("US-ASCII"));
baos.write(header.getBytes(StandardCharsets.US_ASCII));
for (int j = 0; j < 16384+i; j++) {
baos.write((byte) j);
}
baos.write("\r\n".getBytes("US-ASCII"));
baos.write("\r\n".getBytes(StandardCharsets.US_ASCII));
}
baos.write("-----1234--\r\n".getBytes("US-ASCII"));
baos.write("-----1234--\r\n".getBytes(StandardCharsets.US_ASCII));
final byte[] contents = baos.toByteArray();

MockHttpServletRequest request = new MockHttpServletRequest(contents, Constants.CONTENT_TYPE);
@@ -24,6 +24,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.List;

@@ -58,13 +59,13 @@ public void testFileUpload()
final String header = "-----1234\r\n"
+ "Content-Disposition: form-data; name=\"field" + (num++) + "\"\r\n"
+ "\r\n";
baos.write(header.getBytes("US-ASCII"));
baos.write(header.getBytes(StandardCharsets.US_ASCII));
for (int j = 0; j < i; j++) {
baos.write((byte) j);
}
baos.write("\r\n".getBytes("US-ASCII"));
baos.write("\r\n".getBytes(StandardCharsets.US_ASCII));
}
baos.write("-----1234--\r\n".getBytes("US-ASCII"));
baos.write("-----1234--\r\n".getBytes(StandardCharsets.US_ASCII));

final List<FileItem> fileItems =
Util.parseUpload(new ServletFileUpload(new DiskFileItemFactory()), baos.toByteArray());
@@ -103,23 +104,23 @@ public void testFileSizeLimit()
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(-1);
HttpServletRequest req = new MockHttpServletRequest(
request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
List<FileItem> fileItems = upload.parseRequest(req);
assertEquals(1, fileItems.size());
FileItem item = fileItems.get(0);
assertEquals("This is the content of the file\n", new String(item.get()));

upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(40);
req = new MockHttpServletRequest(request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
req = new MockHttpServletRequest(request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
fileItems = upload.parseRequest(req);
assertEquals(1, fileItems.size());
item = fileItems.get(0);
assertEquals("This is the content of the file\n", new String(item.get()));

upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(30);
req = new MockHttpServletRequest(request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
req = new MockHttpServletRequest(request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
try {
upload.parseRequest(req);
fail("Expected exception.");
@@ -146,15 +147,15 @@ public void testFileSizeLimitWithFakedContentLength()
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(-1);
HttpServletRequest req = new MockHttpServletRequest(
request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
List<FileItem> fileItems = upload.parseRequest(req);
assertEquals(1, fileItems.size());
FileItem item = fileItems.get(0);
assertEquals("This is the content of the file\n", new String(item.get()));

upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(40);
req = new MockHttpServletRequest(request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
req = new MockHttpServletRequest(request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
fileItems = upload.parseRequest(req);
assertEquals(1, fileItems.size());
item = fileItems.get(0);
@@ -163,7 +164,7 @@ public void testFileSizeLimitWithFakedContentLength()
// provided Content-Length is larger than the FileSizeMax -> handled by ctor
upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(5);
req = new MockHttpServletRequest(request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
req = new MockHttpServletRequest(request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
try {
upload.parseRequest(req);
fail("Expected exception.");
@@ -174,7 +175,7 @@ public void testFileSizeLimitWithFakedContentLength()
// provided Content-Length is wrong, actual content is larger -> handled by LimitedInputStream
upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setFileSizeMax(15);
req = new MockHttpServletRequest(request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
req = new MockHttpServletRequest(request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
try {
upload.parseRequest(req);
fail("Expected exception.");
@@ -209,7 +210,7 @@ public void testMaxSizeLimit()
upload.setSizeMax(200);

final MockHttpServletRequest req = new MockHttpServletRequest(
request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
try {
upload.parseRequest(req);
fail("Expected exception.");
@@ -246,7 +247,7 @@ public void testMaxSizeLimitUnknownContentLength()
// otherwise the buffer would be immediately filled

final MockHttpServletRequest req = new MockHttpServletRequest(
request.getBytes("US-ASCII"), Constants.CONTENT_TYPE);
request.getBytes(StandardCharsets.US_ASCII), Constants.CONTENT_TYPE);
req.setContentLength(-1);
req.setReadLimit(10);

@@ -26,6 +26,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -198,7 +199,7 @@ private String getFooter() {

private byte[] newShortRequest() throws IOException {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final OutputStreamWriter osw = new OutputStreamWriter(baos, "US-ASCII");
final OutputStreamWriter osw = new OutputStreamWriter(baos, StandardCharsets.US_ASCII);
osw.write(getHeader("field"));
osw.write("123");
osw.write("\r\n");
@@ -209,7 +210,7 @@ private byte[] newShortRequest() throws IOException {

private byte[] newRequest() throws IOException {
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final OutputStreamWriter osw = new OutputStreamWriter(baos, "US-ASCII");
final OutputStreamWriter osw = new OutputStreamWriter(baos, StandardCharsets.US_ASCII);
int add = 16;
int num = 0;
for (int i = 0; i < 16384; i += add) {
@@ -254,7 +255,7 @@ public void testInvalidFileNameException() throws Exception {
"\r\n" +
"value2\r\n" +
"-----1234--\r\n";
final byte[] reqBytes = request.getBytes("US-ASCII");
final byte[] reqBytes = request.getBytes(StandardCharsets.US_ASCII);

final FileItemIterator fileItemIter = parseUpload(reqBytes.length, new ByteArrayInputStream(reqBytes));
final FileItemStream fileItemStream = fileItemIter.next();
@@ -17,6 +17,7 @@
package org.apache.commons.fileupload2;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;

@@ -45,7 +46,7 @@ public static List<FileItem> parseUpload(final FileUpload upload, final byte[] b

public static List<FileItem> parseUpload(final FileUpload upload, final String content)
throws UnsupportedEncodingException, FileUploadException {
final byte[] bytes = content.getBytes("US-ASCII");
final byte[] bytes = content.getBytes(StandardCharsets.US_ASCII);
return parseUpload(upload, bytes, Constants.CONTENT_TYPE);
}

@@ -19,6 +19,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;

@@ -64,7 +65,7 @@ public void parseParameterMap()
"\r\n" +
"value2\r\n" +
"-----1234--\r\n";
final byte[] bytes = text.getBytes("US-ASCII");
final byte[] bytes = text.getBytes(StandardCharsets.US_ASCII);
final HttpServletRequest request = new MockHttpServletRequest(bytes, Constants.CONTENT_TYPE);

final ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
@@ -87,18 +88,18 @@ public void parseImpliedUtf8()
final String text = "-----1234\r\n" +
"Content-Disposition: form-data; name=\"utf8Html\"\r\n" +
"\r\n" +
"Thís ís the coñteñt of the fíle\n" +
"Thís ís the coñteñt of the fíle\n" +
"\r\n" +
"-----1234--\r\n";

final byte[] bytes = text.getBytes("UTF-8");
final byte[] bytes = text.getBytes(StandardCharsets.UTF_8);
final HttpServletRequest request = new MockHttpServletRequest(bytes, Constants.CONTENT_TYPE);

final DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
fileItemFactory.setDefaultCharset("UTF-8");
final ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
final List<FileItem> fileItems = upload.parseRequest(request);
final FileItem fileItem = fileItems.get(0);
assertTrue(fileItem.getString().contains("coñteñt"), fileItem.getString());
assertTrue(fileItem.getString().contains("coñteñt"), fileItem.getString());
}
}
@@ -24,6 +24,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;

import org.junit.jupiter.api.Test;

@@ -99,10 +100,10 @@ public void truncatedEscape() throws Exception {
}

private static void assertEncoded(final String clearText, final String encoded) throws Exception {
final byte[] expected = clearText.getBytes(US_ASCII_CHARSET);
final byte[] expected = clearText.getBytes(StandardCharsets.US_ASCII);

final ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
final byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
final byte[] encodedData = encoded.getBytes(StandardCharsets.US_ASCII);
QuotedPrintableDecoder.decode(encodedData, out);
final byte[] actual = out.toByteArray();

@@ -111,7 +112,7 @@ private static void assertEncoded(final String clearText, final String encoded)

private static void assertIOException(final String messageText, final String encoded) throws UnsupportedEncodingException {
final ByteArrayOutputStream out = new ByteArrayOutputStream(encoded.length());
final byte[] encodedData = encoded.getBytes(US_ASCII_CHARSET);
final byte[] encodedData = encoded.getBytes(StandardCharsets.US_ASCII);
try {
QuotedPrintableDecoder.decode(encodedData, out);
fail("Expected IOException");

0 comments on commit 1b10014

Please sign in to comment.