diff options
| author | luc <luc@debianluc> | 2016-02-09 20:46:44 +0100 |
|---|---|---|
| committer | luc <luc@debianluc> | 2016-02-09 20:46:44 +0100 |
| commit | 26f1ead57c2b6568e2b0a45f57423ed998074049 (patch) | |
| tree | 8b8d167f3071759c95ca0b7769fa5714236c5f08 /test | |
| parent | 07222b3e1a25d0c8b882bbc345d85bd46bb45c84 (diff) | |
Created ViewFavicon class specialized in favicon viewing.
Main image processing is now in ImageViewer, used by both ViewImage and
ViewFavicon.
Fixed URIMetadataNode.getFavicon to use non-standard icons with no size
ass fallback.
Diffstat (limited to 'test')
| -rwxr-xr-x | test/ImageViewerPerfTest.java (renamed from test/ViewImagePerfTest.java) | 61 | ||||
| -rwxr-xr-x | test/ImageViewerTest.java (renamed from test/ViewImageTest.java) | 67 | ||||
| -rw-r--r-- | test/java/yacysearchitemTest.java | 20 |
3 files changed, 88 insertions, 60 deletions
diff --git a/test/ViewImagePerfTest.java b/test/ImageViewerPerfTest.java index 5a13e30a3..6f758164c 100755 --- a/test/ViewImagePerfTest.java +++ b/test/ImageViewerPerfTest.java @@ -1,21 +1,4 @@ -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import javax.imageio.ImageIO; -import javax.imageio.stream.ImageInputStream; - -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.peers.graphics.EncodedImage; -import net.yacy.server.serverObjects; - -// ViewImagePerfTest.java +// ImageViewerPerfTest.java // ----------------------- // part of YaCy // (C) by Michael Peter Christen; mc@yacy.net @@ -37,13 +20,33 @@ import net.yacy.server.serverObjects; // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageInputStream; + +import net.yacy.cora.document.id.DigestURL; +import net.yacy.cora.util.ConcurrentLog; +import net.yacy.peers.graphics.EncodedImage; +import net.yacy.server.serverObjects; + + + /** - * Test to measure image render performance by ViewImage + * Test to measure image render performance by * * @author luc * */ -public class ViewImagePerfTest extends ViewImageTest { +public class ImageViewerPerfTest extends ImageViewerTest { /** Default minimum measurement time */ private static final int DEFAULT_MIN_MEASURE_TIME = 10; @@ -56,7 +59,7 @@ public class ViewImagePerfTest extends ViewImageTest { * main parameters : args[7] may contain minimum measurement time * in secondes. Default : 10. */ - public ViewImagePerfTest(String args[]) { + public ImageViewerPerfTest(String args[]) { this.minMeasureTime = getMinMeasurementTime(args); } @@ -87,7 +90,7 @@ public class ViewImagePerfTest extends ViewImageTest { * @param outDir * output directory * @param post - * ViewImage post parameters + * post parameters * @param failures * map failed file urls to eventual exception * @param inFile @@ -100,7 +103,7 @@ public class ViewImagePerfTest extends ViewImageTest { File inFile) throws IOException { /* Delete eventual previous result file */ System.out - .println("Measuring ViewImage render with file : " + inFile.getAbsolutePath() + " encoded To : " + ext); + .println("Measuring render with file : " + inFile.getAbsolutePath() + " encoded To : " + ext); File outFile = new File(outDir, inFile.getName() + "." + ext); if (outFile.exists()) { outFile.delete(); @@ -115,7 +118,7 @@ public class ViewImagePerfTest extends ViewImageTest { beginTime = System.nanoTime(); ImageInputStream inStream = ImageIO.createImageInputStream(inFile); try { - img = ViewImage.parseAndScale(post, true, urlString, ext, inStream); + img = this.VIEWER.parseAndScale(post, true, new DigestURL(urlString), ext, inStream); } catch (Exception e) { error = e; } @@ -131,7 +134,7 @@ public class ViewImagePerfTest extends ViewImageTest { } PrintWriter resultsWriter = new PrintWriter(new FileWriter(new File(outDir, "results_perfs.txt"), true)); try { - writeMessage("Measured ViewImage render with file : " + inFile.getAbsolutePath() + " encoded To : " + ext, + writeMessage("Measured render with file : " + inFile.getAbsolutePath() + " encoded To : " + ext, resultsWriter); if(img == null) { writeMessage("Image could not be rendered! Measurement show time needed to read and parse image data until error detection.", resultsWriter); @@ -176,7 +179,7 @@ public class ViewImagePerfTest extends ViewImageTest { * <li>args[1] : output format name (for example : "jpg") for * rendered image. Defaut : "png".</li> * <li>args[2] : ouput folder URL. Default : - * "[system tmp dir]/ViewImageTest".</li> + * "[system tmp dir]/Test".</li> * <li>args[3] : max width (in pixels) for rendered image. May be * set to zero to specify no max width. Default : no value.</li> * <li>args[4] : max height (in pixels) for rendered image. May @@ -194,7 +197,7 @@ public class ViewImagePerfTest extends ViewImageTest { * when a read/write error occured */ public static void main(String args[]) throws IOException { - ViewImagePerfTest test = new ViewImagePerfTest(args); + ImageViewerPerfTest test = new ImageViewerPerfTest(args); File inFile = test.getInputURL(args); String ext = test.getEncodingExt(args); File outDir = test.getOuputDir(args); @@ -207,10 +210,10 @@ public class ViewImagePerfTest extends ViewImageTest { inFiles = new File[1]; inFiles[0] = inFile; System.out.println( - "Measuring ViewImage render with file : " + inFile.getAbsolutePath() + " encoded To : " + ext); + "Measuring render with file : " + inFile.getAbsolutePath() + " encoded To : " + ext); } else if (inFile.isDirectory()) { inFiles = inFile.listFiles(); - System.out.println("Measuring ViewImage render with files in folder : " + inFile.getAbsolutePath() + System.out.println("Measuring render with files in folder : " + inFile.getAbsolutePath() + " encoded To : " + ext); } else { inFiles = new File[0]; diff --git a/test/ViewImageTest.java b/test/ImageViewerTest.java index a80a7d588..894067f5e 100755 --- a/test/ViewImageTest.java +++ b/test/ImageViewerTest.java @@ -1,23 +1,4 @@ -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; - -import javax.imageio.ImageIO; -import javax.imageio.stream.ImageInputStream; - -import net.yacy.cora.util.ConcurrentLog; -import net.yacy.peers.graphics.EncodedImage; -import net.yacy.server.serverObjects; - -// ViewImageTest.java +// ImageViewerTest.java // ----------------------- // part of YaCy // (C) by Michael Peter Christen; mc@yacy.net @@ -39,19 +20,43 @@ import net.yacy.server.serverObjects; // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageInputStream; + +import net.yacy.cora.document.id.DigestURL; +import net.yacy.cora.util.ConcurrentLog; +import net.yacy.peers.graphics.EncodedImage; +import net.yacy.server.serverObjects; +import net.yacy.visualization.ImageViewer; + /** - * Test rendering of one or more image files by ViewImage + * Test rendering of one or more image files by ImageViewer * * @author luc * */ -public class ViewImageTest { +public class ImageViewerTest { /** Default image */ private static final String DEFAULT_IMG_RESOURCES = "/viewImageTest/test"; /** Default output encoding format */ private static final String DEFAULT_OUT_EXT = "png"; + + /** Viewer instance */ + protected final ImageViewer VIEWER = new ImageViewer(); /** * @param args @@ -65,7 +70,7 @@ public class ViewImageTest { if (args != null && args.length > 0) { fileURL = args[0]; } else { - URL defaultURL = ViewImageTest.class.getResource(DEFAULT_IMG_RESOURCES); + URL defaultURL = ImageViewerTest.class.getResource(DEFAULT_IMG_RESOURCES); if (defaultURL == null) { throw new IllegalArgumentException("File not found : " + DEFAULT_IMG_RESOURCES); } @@ -97,7 +102,7 @@ public class ViewImageTest { } /** - * Build post parameters to use with ViewImage + * Build post parameters to use with ImageViewer * * @param args * main parameters : args[3] and args[4] may respectively contain @@ -238,7 +243,7 @@ public class ViewImageTest { * @param outDir * output directory * @param post - * ViewImage post parameters + * ImageViewer post parameters * @param inFiles * files or directories to process * @param processedFiles @@ -269,7 +274,7 @@ public class ViewImageTest { * parameters must not be null. * @param ext output encoding image format * @param outDir output directory - * @param post ViewImage post parameters + * @param post ImageViewer post parameters * @param failures map failed file urls to eventual exception * @param inFile file image to process * @throws IOException when an read/write error occured @@ -287,7 +292,7 @@ public class ViewImageTest { EncodedImage img = null; Throwable error = null; try { - img = ViewImage.parseAndScale(post, true, urlString, ext, inStream); + img = this.VIEWER.parseAndScale(post, true, new DigestURL(urlString), ext, inStream); } catch (Throwable e) { error = e; } @@ -322,7 +327,7 @@ public class ViewImageTest { * <li>args[1] : output format name (for example : "jpg") for * rendered image. Defaut : "png".</li> * <li>args[2] : ouput folder URL. Default : - * "[system tmp dir]/ViewImageTest".</li> + * "[system tmp dir]/ImageViewerTest".</li> * <li>args[3] : max width (in pixels) for rendered image. May be * set to zero to specify no max width. Default : no value.</li> * <li>args[4] : max height (in pixels) for rendered image. May @@ -338,7 +343,7 @@ public class ViewImageTest { * when a read/write error occured */ public static void main(String args[]) throws IOException { - ViewImageTest test = new ViewImageTest(); + ImageViewerTest test = new ImageViewerTest(); File inFile = test.getInputURL(args); String ext = test.getEncodingExt(args); File outDir = test.getOuputDir(args); @@ -350,11 +355,11 @@ public class ViewImageTest { if (inFile.isFile()) { inFiles = new File[1]; inFiles[0] = inFile; - System.out.println("Testing ViewImage rendering with input file : " + inFile.getAbsolutePath() + System.out.println("Testing ImageViewer rendering with input file : " + inFile.getAbsolutePath() + " encoded To : " + ext); } else if (inFile.isDirectory()) { inFiles = inFile.listFiles(); - System.out.println("Testing ViewImage rendering with input files in folder : " + inFile.getAbsolutePath() + System.out.println("Testing ImageViewer rendering with input files in folder : " + inFile.getAbsolutePath() + " encoded To : " + ext); } else { inFiles = new File[0]; diff --git a/test/java/yacysearchitemTest.java b/test/java/yacysearchitemTest.java index ef28d519e..c79a94030 100644 --- a/test/java/yacysearchitemTest.java +++ b/test/java/yacysearchitemTest.java @@ -155,6 +155,26 @@ public class yacysearchitemTest { Assert.assertNotNull(faviconURL); Assert.assertEquals("http://somehost.org/static/images/favicon.ico", faviconURL.toNormalform(false)); } + + /** + * One non-standard icon with no size + * + * @throws MalformedURLException + */ + @Test + public final void testGetFaviconURLNonStandardNoSize() throws MalformedURLException { + URIMetadataNode metadataNode = new URIMetadataNode(new DigestURL("http://somehost.org")); + metadataNode.setField(CollectionSchema.icons_urlstub_sxt.getSolrFieldName(), + new String[] { "somehost.org/static/images/favicon.png" }); + List<String> protocols = CollectionConfiguration + .protocolList2indexedList(Arrays.asList(new String[] { "http" })); + metadataNode.setField(CollectionSchema.icons_protocol_sxt.getSolrFieldName(), protocols); + metadataNode.setField(CollectionSchema.icons_rel_sxt.getSolrFieldName(), new String[] { "appel-touch-icon" }); + + DigestURL faviconURL = yacysearchitem.getFaviconURL(metadataNode, new Dimension(32, 32)); + Assert.assertNotNull(faviconURL); + Assert.assertEquals("http://somehost.org/static/images/favicon.png", faviconURL.toNormalform(false)); + } /** * No icon in document |
