From: <bo...@us...> - 2010-05-17 15:26:13
|
Revision: 387 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=387&view=rev Author: bodewig Date: 2010-05-17 15:26:06 +0000 (Mon, 17 May 2010) Log Message: ----------- system ID stuff Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/builder/InputTest.java Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2010-05-17 13:38:46 UTC (rev 386) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/builder/Input.java 2010-05-17 15:26:06 UTC (rev 387) @@ -21,6 +21,7 @@ import java.io.Reader; import java.io.StringReader; import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.HashMap; import java.util.Map; @@ -73,6 +74,11 @@ private StreamBuilder(Reader r) { source = new StreamSource(r); } + void setSystemId(String id) { + if (id != null) { + source.setSystemId(id); + } + } public Source build() { assert source != null; return source; @@ -116,7 +122,16 @@ baos.write(buf, 0, read); } } - return fromMemory(baos.toByteArray()); + StreamBuilder b = + (StreamBuilder) fromMemory(baos.toByteArray()); + try { + b.setSystemId(url.toURI().toString()); + } catch (URISyntaxException use) { + // impossible - shouldn't have been an URL in the + // first place + b.setSystemId(url.toString()); + } + return b; } finally { if (in != null) { in.close(); Modified: trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/builder/InputTest.java =================================================================== --- trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/builder/InputTest.java 2010-05-17 13:38:46 UTC (rev 386) +++ trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/builder/InputTest.java 2010-05-17 15:26:06 UTC (rev 387) @@ -47,11 +47,15 @@ } @Test public void shouldParseAnExistingFileByName() throws Exception { - allIsWellFor(Input.fromFile(TestResources.ANIMAL_FILE).build()); + Source s = Input.fromFile(TestResources.ANIMAL_FILE).build(); + allIsWellFor(s); + assertEquals(toFileUri(TestResources.ANIMAL_FILE), s.getSystemId()); } @Test public void shouldParseAnExistingFileByFile() throws Exception { - allIsWellFor(Input.fromFile(new File(TestResources.ANIMAL_FILE)).build()); + Source s = Input.fromFile(new File(TestResources.ANIMAL_FILE)).build(); + allIsWellFor(s); + assertEquals(toFileUri(TestResources.ANIMAL_FILE), s.getSystemId()); } @Test public void shouldParseAnExistingFileFromStream() throws Exception { @@ -92,11 +96,13 @@ } @Test public void shouldParseFileFromURI() throws Exception { - allIsWellFor(Input.fromURI(new URI("file:" + TestResources.ANIMAL_FILE)).build()); + allIsWellFor(Input.fromURI(new URI("file:" + TestResources.ANIMAL_FILE)) + .build()); } @Test public void shouldParseFileFromURL() throws Exception { - allIsWellFor(Input.fromURL(new URL("file:" + TestResources.ANIMAL_FILE)).build()); + allIsWellFor(Input.fromURL(new URL("file:" + TestResources.ANIMAL_FILE)) + .build()); } @Test public void shouldParseATransformationFromSource() throws Exception { @@ -141,4 +147,8 @@ is.close(); return bos.toByteArray(); } + + private static String toFileUri(String fileName) { + return new File(fileName).toURI().toString(); + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |