Change MediaTypeFactory to return Optional
This commit changes the `MediaTypeFactory` to return `Optional<MediaType>` (instead of a plain `MediaType`) for the `getMediaType` methods. Issue: SPR-14908
This commit is contained in:
@@ -18,7 +18,9 @@ package org.springframework.http;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @author Arjen Poutsma
|
||||
@@ -27,9 +29,17 @@ public class MediaTypeFactoryTests {
|
||||
|
||||
@Test
|
||||
public void getMediaType() {
|
||||
assertEquals(MediaType.APPLICATION_XML, MediaTypeFactory.getMediaType("file.xml"));
|
||||
assertEquals(MediaType.parseMediaType("application/javascript"), MediaTypeFactory.getMediaType("file.js"));
|
||||
assertEquals(MediaType.parseMediaType("text/css"), MediaTypeFactory.getMediaType("file.css"));
|
||||
assertEquals(MediaType.APPLICATION_XML, MediaTypeFactory.getMediaType("file.xml").get());
|
||||
assertEquals(MediaType.parseMediaType("application/javascript"), MediaTypeFactory.getMediaType("file.js").get());
|
||||
assertEquals(MediaType.parseMediaType("text/css"), MediaTypeFactory.getMediaType("file.css").get());
|
||||
assertFalse(MediaTypeFactory.getMediaType("file.foobar").isPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nullParameter() {
|
||||
assertFalse(MediaTypeFactory.getMediaType((String) null).isPresent());
|
||||
assertFalse(MediaTypeFactory.getMediaType((Resource) null).isPresent());
|
||||
assertTrue(MediaTypeFactory.getMediaTypes(null).isEmpty());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -262,14 +262,12 @@ public class MockServletContext implements ServletContext {
|
||||
@Override
|
||||
public String getMimeType(String filePath) {
|
||||
String extension = StringUtils.getFilenameExtension(filePath);
|
||||
MediaType result;
|
||||
if (this.mimeTypes.containsKey(extension)) {
|
||||
result = this.mimeTypes.get(extension);
|
||||
return this.mimeTypes.get(extension).toString();
|
||||
}
|
||||
else {
|
||||
result = MediaTypeFactory.getMediaType(filePath);
|
||||
return MediaTypeFactory.getMediaType(filePath).orElse(MediaType.APPLICATION_OCTET_STREAM).toString();
|
||||
}
|
||||
return result != null ? result.toString() : null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user