You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by cm...@apache.org on 2012/07/03 14:22:29 UTC

[28/28] git commit: WICKET-4617 fix test for jenkins

WICKET-4617 fix test for jenkins


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/df71f000
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/df71f000
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/df71f000

Branch: refs/heads/sandbox/resourcefinder
Commit: df71f0007882f1a5d77135492a03f30cf30c5d62
Parents: ec7a022
Author: Carl-Eric Menzel <cm...@wicketbuch.de>
Authored: Thu Jun 28 10:13:03 2012 +0200
Committer: Carl-Eric Menzel <cm...@wicketbuch.de>
Committed: Thu Jun 28 10:19:51 2012 +0200

----------------------------------------------------------------------
 .../org/apache/wicket/util/resource/PathTest.java  |   89 ++++++++++++---
 1 files changed, 72 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/df71f000/wicket-core/src/test/java/org/apache/wicket/util/resource/PathTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/resource/PathTest.java b/wicket-core/src/test/java/org/apache/wicket/util/resource/PathTest.java
index e3ba41e..9025853 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/resource/PathTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/resource/PathTest.java
@@ -16,40 +16,95 @@
  */
 package org.apache.wicket.util.resource;
 
-import static org.apache.wicket.util.resource.ResourceStreamLocatorTest.*;
-
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.util.Arrays;
 
 import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.util.file.Folder;
 import org.apache.wicket.util.file.Path;
 import org.junit.Test;
 
 public class PathTest extends WicketTestCase
 {
-	private static final String PACKAGE_PATH = PathTest.class.getPackage()
-		.getName()
-		.replace('.', File.separatorChar);
-	private static final String CLASSPATH_ROOT = PathTest.class.getResource("/").getFile();
-
-	private static final String FILENAME = ResourceStreamLocatorTest.class.getSimpleName() + ".txt";
-
 	@Test
 	public void loadFromRootUsingSubpathInFilename() throws Exception
 	{
-		Path path = new Path();
-		path.add(CLASSPATH_ROOT);
-		IResourceStream rs = path.find(PathTest.class, PACKAGE_PATH + File.separatorChar + FILENAME);
+		final String contents = PathTest.class.getName() + ": loaded from root";
+		final File file = createTempFile(contents);
+		final File root = findRoot(file);
+		final Path path = new Path(new Folder(root.getCanonicalPath()));
+		IResourceStream rs = path.find(PathTest.class, file.getCanonicalPath());
 		assertNotNull(rs);
-		assertEquals(FILENAME, getFilename(rs));
+		assertContents(contents, rs);
+	}
+
+	public static void assertContents(String expectedContents, IResourceStream rs)
+		throws ResourceStreamNotFoundException, IOException
+	{
+		InputStream in = rs.getInputStream();
+		try
+		{
+			final byte[] expectedBytes = expectedContents.getBytes(Charset.defaultCharset());
+			final int expectedLength = expectedBytes.length;
+			byte[] buf = new byte[expectedLength * 2];
+			int read = in.read(buf, 0, buf.length);
+			assertEquals("contents do not match", expectedLength, read);
+			byte[] buf2 = new byte[expectedLength];
+			System.arraycopy(buf, 0, buf2, 0, expectedLength);
+			assertTrue("contents do not match", Arrays.equals(expectedBytes, buf2));
+		}
+		finally
+		{
+			in.close();
+		}
 	}
 
 	@Test
 	public void loadFilenameFromPath() throws Exception
 	{
-		Path path = new Path();
-		path.add(CLASSPATH_ROOT + File.separatorChar + PACKAGE_PATH);
-		IResourceStream rs = path.find(PathTest.class, FILENAME);
+		final String contents = PathTest.class.getName() + ": loaded from prefix";
+		final File file = createTempFile(contents);
+		final File parent = file.getParentFile();
+		final Path path = new Path(new Folder(parent.getCanonicalPath()));
+		IResourceStream rs = path.find(PathTest.class, file.getName());
 		assertNotNull(rs);
-		assertEquals(FILENAME, getFilename(rs));
+		assertContents(contents, rs);
+	}
+
+	public static File createTempFile(String contents) throws IOException
+	{
+		FileOutputStream out = null;
+		try
+		{
+			File tmp = File.createTempFile("temp", "temp");
+			tmp.deleteOnExit();
+			out = new FileOutputStream(tmp);
+			out.write(contents.getBytes(Charset.defaultCharset()));
+			return tmp;
+		}
+		finally
+		{
+			if (out != null)
+			{
+				out.close();
+			}
+		}
+	}
+
+	public static File findRoot(File file)
+	{
+		final File parent = file.getParentFile();
+		if (parent == null)
+		{
+			return file;
+		}
+		else
+		{
+			return findRoot(parent);
+		}
 	}
 }