summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorluc <luc@debianluc>2016-02-09 20:46:44 +0100
committerluc <luc@debianluc>2016-02-09 20:46:44 +0100
commit26f1ead57c2b6568e2b0a45f57423ed998074049 (patch)
tree8b8d167f3071759c95ca0b7769fa5714236c5f08 /test
parent07222b3e1a25d0c8b882bbc345d85bd46bb45c84 (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-xtest/ImageViewerPerfTest.java (renamed from test/ViewImagePerfTest.java)61
-rwxr-xr-xtest/ImageViewerTest.java (renamed from test/ViewImageTest.java)67
-rw-r--r--test/java/yacysearchitemTest.java20
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