提交 c269d27b 编写于 作者: R Rossen Stoyanchev

Improve no content handling in MockHttpServletRequest

Issue: SPR-11764
上级 9706e5cc
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -104,6 +104,9 @@ public class MockHttpServletRequest implements HttpServletRequest {
private static final String CHARSET_PREFIX = "charset=";
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
new DelegatingServletInputStream(new ByteArrayInputStream(new byte[0]));
private boolean active = true;
......@@ -375,7 +378,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
return new DelegatingServletInputStream(new ByteArrayInputStream(this.content));
}
else {
return null;
return EMPTY_SERVLET_INPUT_STREAM;
}
}
......
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -16,6 +16,8 @@
package org.springframework.mock.web;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
......@@ -26,6 +28,7 @@ import java.util.Locale;
import java.util.Map;
import org.junit.Test;
import org.springframework.util.StreamUtils;
import static org.junit.Assert.*;
......@@ -42,6 +45,22 @@ public class MockHttpServletRequestTests {
private MockHttpServletRequest request = new MockHttpServletRequest();
@Test
public void content() throws IOException {
byte[] bytes = "body".getBytes(Charset.defaultCharset());
request.setContent(bytes);
assertEquals(bytes.length, request.getContentLength());
assertNotNull(request.getInputStream());
assertEquals("body", StreamUtils.copyToString(request.getInputStream(), Charset.defaultCharset()));
}
@Test
public void noContent() throws IOException {
assertEquals(-1, request.getContentLength());
assertNotNull(request.getInputStream());
assertEquals(-1, request.getInputStream().read());
}
@Test
public void setContentType() {
String contentType = "test/plain";
......
......@@ -107,6 +107,9 @@ public class MockHttpServletRequest implements HttpServletRequest {
private static final String CHARSET_PREFIX = "charset=";
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
new DelegatingServletInputStream(new ByteArrayInputStream(new byte[0]));
private boolean active = true;
......@@ -378,7 +381,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
return new DelegatingServletInputStream(new ByteArrayInputStream(this.content));
}
else {
return null;
return EMPTY_SERVLET_INPUT_STREAM;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册