SLING-5345 - StreamRendererServlet return no content-type
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1719924 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java b/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
index b4623bd..48570cc 100644
--- a/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
+++ b/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
@@ -348,9 +348,12 @@
contentType = ct;
}
}
- if (contentType != null) {
- response.setContentType(contentType);
+
+ if (contentType == null) {
+ contentType = defaultContentType;
}
+
+ response.setContentType(contentType);
String encoding = meta.getCharacterEncoding();
if (encoding != null) {
diff --git a/src/test/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServletTest.java b/src/test/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServletTest.java
index d40d22a..b671f8b 100644
--- a/src/test/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServletTest.java
+++ b/src/test/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServletTest.java
@@ -26,8 +26,13 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
-
+import javax.servlet.ServletContext;
+import junitx.util.PrivateAccessor;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceMetadata;
import org.junit.Test;
+import org.mockito.Mockito;
public class StreamRendererServletTest {
@@ -121,4 +126,24 @@
assertEquals(expected[i], actual[i - a]);
}
}
+
+ @Test
+ public void test_setHeaders() throws Throwable {
+
+ final Resource resource = Mockito.mock(Resource.class);
+ final SlingHttpServletResponse response = Mockito.mock(SlingHttpServletResponse .class);
+ final ResourceMetadata meta = Mockito.mock(ResourceMetadata.class);
+ final ServletContext sc = Mockito.mock(ServletContext.class);
+
+ StreamRendererServlet streamRendererServlet = new StreamRendererServlet(true,new String []{"/"}) {
+ @Override
+ public ServletContext getServletContext() {
+ return sc;
+ }
+ };
+
+ Mockito.when(resource.getResourceMetadata()).thenReturn(meta);
+ PrivateAccessor.invoke(streamRendererServlet, "setHeaders", new Class[]{Resource.class, SlingHttpServletResponse.class}, new Object[]{resource, response});
+ Mockito.verify(response,Mockito.times(1)).setContentType("application/octet-stream");
+ }
}