/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wms.map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import org.junit.Before; import org.junit.Test; public class JpegOrPngChooserTest { private BufferedImage indexed; private BufferedImage gray; private BufferedImage rgb; private BufferedImage rgba; private BufferedImage rgba_opaque; private BufferedImage rgba_partial; @Before public void prepareImages() { // paletted image indexed = new BufferedImage(10, 10, BufferedImage.TYPE_BYTE_INDEXED); // gray one, no transparency gray = new BufferedImage(10, 10, BufferedImage.TYPE_BYTE_GRAY); // opaque rgb rgb = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR); // transparent rgba rgba = new BufferedImage(10, 10, BufferedImage.TYPE_4BYTE_ABGR); // fully opaque rgba rgba_opaque = new BufferedImage(10, 10, BufferedImage.TYPE_4BYTE_ABGR); Graphics2D graphics = rgba_opaque.createGraphics(); graphics.setColor(Color.BLACK); graphics.fillRect(0, 0, 10, 10); graphics.dispose(); // partially transparent rgba rgba_partial = new BufferedImage(10, 10, BufferedImage.TYPE_4BYTE_ABGR); graphics = rgba_partial.createGraphics(); graphics.setColor(Color.BLACK); graphics.fillRect(0, 0, 10, 5); graphics.dispose(); } @Test public void testJpegPngImageWriter() { assertPng(indexed); assertJpeg(gray); assertJpeg(rgb); assertPng(rgba); assertJpeg(rgba_opaque); assertPng(rgba_partial); } private void assertPng(RenderedImage image) { JpegOrPngChooser chooser = new JpegOrPngChooser(image); assertFalse(chooser.isJpegPreferred()); assertEquals("image/png", chooser.getMime()); assertEquals("png", chooser.getExtension()); } private void assertJpeg(RenderedImage image) { JpegOrPngChooser chooser = new JpegOrPngChooser(image); assertTrue(chooser.isJpegPreferred()); assertEquals("image/jpeg", chooser.getMime()); assertEquals("jpeg", chooser.getExtension()); } }