Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,9 @@ public boolean isVector() {
protected boolean isBinary() {
return BINARY_FORMATS.contains(this.getMimeType());
}

@Override
public boolean isInlinePreferred() {
return getMimeType().contains("json");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,13 @@ public RenderedImage preprocess(RenderedImage canvas) {
public static final ImageMime png_24 =
new ImageMime("image/png; mode=24bit", "png_24", "png", "image/png;%20mode=24bit", true, true, true);

public static final ImageMime dds = new ImageMime("image/dds", "dds", "dds", "image/dds", false, false, false);
public static final ImageMime dds = new ImageMime("image/dds", "dds", "dds", "image/dds", false, false, false) {

@Override
public boolean isInlinePreferred() {
return false;
}
};

public static final ImageMime jpegPng =
new JpegPngMime("image/vnd.jpeg-png", "jpeg-png", "jpeg-png", "image/vnd.jpeg-png", jpeg, png);
Expand Down
11 changes: 11 additions & 0 deletions geowebcache/core/src/main/java/org/geowebcache/mime/MimeType.java
Original file line number Diff line number Diff line change
Expand Up @@ -196,4 +196,15 @@ public boolean isCompatible(String otherMimeType) {
public String toString() {
return mimeType;
}

/**
* Returns true if the format is preferred for inline display in a browser. By default, it will return true if the
* mime type starts with "text/*" or "image/*".
*
* @return
*/
public boolean isInlinePreferred() {
String mime = getMimeType();
return mime.startsWith("text/") || mime.startsWith("image/");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,9 @@ protected static XMLMime checkForExtension(String fileExtension) throws MimeExce

return null;
}

@Override
public boolean isInlinePreferred() {
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ public void testMimeType() throws MimeException {
result = MimeType.createFromExtension(mimeType.getFileExtension());
// Ensure it is the same instance
assertEquals(mimeType, result);
// check inline or not
assertEquals(result.getMimeType().contains("json"), result.isInlinePreferred());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import java.awt.Color;
import java.awt.Graphics2D;
Expand Down Expand Up @@ -129,4 +130,17 @@ public void test4BitPNG() throws IOException, URISyntaxException {
writer.getClass().getName(),
ImageMime.NATIVE_PNG_WRITER_CLASS_NAME);
}

@Test
public void testInline() throws Exception {
// actual images
assertTrue(ImageMime.jpeg.isInlinePreferred());
assertTrue(ImageMime.png.isInlinePreferred());
assertTrue(ImageMime.png24.isInlinePreferred());
assertTrue(ImageMime.png8.isInlinePreferred());
assertTrue(ImageMime.jpegPng.isInlinePreferred());
assertTrue(ImageMime.gif.isInlinePreferred());
// this is a binary dump
assertFalse(ImageMime.dds.isInlinePreferred());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import org.junit.Test;
Expand Down Expand Up @@ -135,4 +136,13 @@ public void testUnknownExtension() throws MimeException {
public void testUnknownFormat() throws MimeException {
MimeType.createFromFormat("xxx/xxx");
}

@Test
public void testIsInlinePreferred() {
assertTrue(XMLMime.ogcxml.isInlinePreferred());
assertTrue(XMLMime.kml.isInlinePreferred());
assertTrue(XMLMime.kmz.isInlinePreferred());
assertTrue(XMLMime.gml.isInlinePreferred());
assertTrue(XMLMime.gml3.isInlinePreferred());
}
}