/** * {@inheritDoc} */ @Override public String getMimeType(final String file) { return serverConfig.getMimeTypeMapping(). getMimeTypeByExtension(FileUtilities.getExtension(file)); }
@Test public void shouldNormalizeLetterCase() throws IOException { String input = "image/jpeg jPEG jPG jPE"; InputStream stream = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8)); MimeTypeMapping mimeTypeMapping = MimeTypeMappingImpl.createFromStream(stream); assertThat(mimeTypeMapping.getMimeTypeByExtension("Jpg"), is("image/jpeg")); assertThat(mimeTypeMapping.getMimeTypeByExtension("Jpeg"), is("image/jpeg")); assertThat(mimeTypeMapping.getMimeTypeByExtension("Jpe"), is("image/jpeg")); stream.close(); }
@Test public void shouldSuportMultivaluedLine() throws IOException { String input = "image/jpeg jpeg jpg jpe"; InputStream stream = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8)); MimeTypeMapping mimeTypeMapping = MimeTypeMappingImpl.createFromStream(stream); assertThat(mimeTypeMapping.getMimeTypeByExtension("jpg"), is("image/jpeg")); assertThat(mimeTypeMapping.getMimeTypeByExtension("jpeg"), is("image/jpeg")); assertThat(mimeTypeMapping.getMimeTypeByExtension("jpe"), is("image/jpeg")); stream.close(); }
@Test public void shouldReturnDefaultMimeType() throws IOException { String input = "image/jpeg jPEG jPG jPE"; InputStream stream = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8)); MimeTypeMapping mimeTypeMapping = MimeTypeMappingImpl.createFromStream(stream, "default/default"); assertThat(mimeTypeMapping.getMimeTypeByExtension("any"), is("default/default")); assertThat(mimeTypeMapping.getMimeTypeByExtension(null), is("default/default")); stream.close(); } }
private void loadCompleteContent(final HttpServletRequestImpl request, final HttpServletResponseImpl response, final File file) throws IOException { response.setContentType(mimeTypeMapping.getMimeTypeByExtension(FileUtilities.getExtension(file.getName()))); response.setStatus(HttpServletResponse.STATUS_OK); response.setContentLength(file.length()); response.getHeaders().setHeader(Headers.HEADER_ACCEPT_RANGES, "bytes"); response.flushHeaders(); if (!request.getMethod().equals(HttpServletRequest.METHOD_HEAD)) { InputStream fileInputStream = new FileInputStream(file); try { response.serveStream(fileInputStream); } finally { IOUtilities.closeSilently(fileInputStream); } } response.flush(); }
@Test public void shouldCreateFromPath() throws IOException { writeFiles(DEFAULT_CONFIG_DATA + "DefaultMimeType mime/text\n"); ServerConfig serverConfig = ServerConfigImpl.createFromPath(workingDirectory, tempDirectory); assertThat(serverConfig.getTempPath(), is(tempDirectory)); assertThat(serverConfig.getBasePath(), is(workingDirectory)); assertThat(serverConfig.getDocumentRootPath(), is(workingDirectory + "wwwx")); assertThat(serverConfig.getDirectoryIndex(), hasItem("index.php")); assertThat(serverConfig.getDirectoryIndex(), hasItem("index.html")); assertThat(serverConfig.getDirectoryIndex().size(), is(2)); assertThat(serverConfig.getErrorDocument403Path(), is(workingDirectory + "error403.html")); assertThat(serverConfig.getErrorDocument404Path(), is(workingDirectory + "error404.html")); assertThat(serverConfig.getListenPort(), is(8090)); assertThat(serverConfig.getMaxServerThreads(), is(3)); assertThat(serverConfig.isKeepAlive(), is(true)); assertThat(serverConfig.getMimeTypeMapping().getMimeTypeByExtension("ANY"), is("mime/text")); assertThat(serverConfig.getAttribute(ADDITIONAL_ATTRIBUTE_NAME), is(ORIGINAL_VALUE)); }
@Test public void shouldSetDefaultMimeType() throws IOException { writeFiles(DEFAULT_CONFIG_DATA); ServerConfig serverConfig = ServerConfigImpl.createFromPath(workingDirectory, tempDirectory); assertThat(serverConfig.getMimeTypeMapping().getMimeTypeByExtension("ANY"), is("mime/text")); }
response.getHeaders().setHeader(Headers.HEADER_CONTENT_RANGE, "bytes " + getRanges(ranges) + "/" + file.length()); String contentType = mimeTypeMapping.getMimeTypeByExtension(FileUtilities.getExtension(file.getName()));