kevinross 2003/07/10 07:43:52
Modified: java/tests/src/org/apache/xindice/integration/client XmlDbClient.java java/tests/src/org/apache/xindice/integration/client/basic CollectionTest.java DocumentTest.java java/src/org/apache/xindice/client/xmldb XindiceCollection.java Log: PR: 21462 Patch Submitted by: Kevin O'Neill ([EMAIL PROTECTED]) Reviewed by: Kevin Ross Unit tests updated and run. If a collection is requested and it's name ends with a / then the collection name returned from getName is "". This patch strips the / from the end of the name when the collection object is created. There is also an additional test for this condition and a getContentAsSAX test I used to debug a problem elsewhere. Revision Changes Path 1.6 +18 -2 xml-xindice/java/tests/src/org/apache/xindice/integration/client/XmlDbClient.java Index: XmlDbClient.java =================================================================== RCS file: /home/cvs/xml-xindice/java/tests/src/org/apache/xindice/integration/client/XmlDbClient.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- XmlDbClient.java 3 Jun 2003 02:18:58 -0000 1.5 +++ XmlDbClient.java 10 Jul 2003 14:43:51 -0000 1.6 @@ -63,6 +63,7 @@ import org.apache.xindice.util.XindiceException; import org.apache.xindice.xml.dom.DOMParser; import org.w3c.dom.Document; +import org.xml.sax.ContentHandler; import org.xmldb.api.DatabaseManager; import org.xmldb.api.base.Collection; import org.xmldb.api.modules.XMLResource; @@ -204,6 +205,21 @@ return document.getContent().toString(); } + + public void getDocumentAsSax(String path, String name, ContentHandler handler) throws Exception { + Collection col = DatabaseManager.getCollection(driver + "/" + path); + if (col == null) { + throw new XindiceException("DatabaseManager.getCollection(" + driver + "/" + path + ") returned null"); + } + XMLResource document = (XMLResource) col.getResource(name); + + if (document == null) { + return; + } + + document.getContentAsSAX(handler); + } + public String[] listDocuments(String path) throws Exception { Collection col = DatabaseManager.getCollection(driver + "/" + path); 1.5 +9 -2 xml-xindice/java/tests/src/org/apache/xindice/integration/client/basic/CollectionTest.java Index: CollectionTest.java =================================================================== RCS file: /home/cvs/xml-xindice/java/tests/src/org/apache/xindice/integration/client/basic/CollectionTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- CollectionTest.java 6 Apr 2003 05:37:16 -0000 1.4 +++ CollectionTest.java 10 Jul 2003 14:43:51 -0000 1.5 @@ -215,6 +215,13 @@ this.client.dropCollection(TEST_COLLECTION_PATH, "getname"); } + public void testGetNameEndWithSlash() + throws Exception { + this.client.createCollection(TEST_COLLECTION_PATH, "getname"); + assertEquals("getname", this.client.getName(TEST_COLLECTION_PATH + "/getname/")); + this.client.dropCollection(TEST_COLLECTION_PATH, "getname"); + } + public void testGetParentCollection() throws Exception { Collection col = this.client.createCollection(TEST_COLLECTION_PATH, "childcol"); 1.4 +22 -3 xml-xindice/java/tests/src/org/apache/xindice/integration/client/basic/DocumentTest.java Index: DocumentTest.java =================================================================== RCS file: /home/cvs/xml-xindice/java/tests/src/org/apache/xindice/integration/client/basic/DocumentTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DocumentTest.java 28 Oct 2002 08:39:20 -0000 1.3 +++ DocumentTest.java 10 Jul 2003 14:43:51 -0000 1.4 @@ -59,8 +59,10 @@ package org.apache.xindice.integration.client.basic; -import org.apache.xindice.integration.client.AbstractXmlDbClientTest; +import java.io.StringWriter; +import org.apache.xindice.integration.client.AbstractXmlDbClientTest; +import org.apache.xml.serialize.XMLSerializer; import org.xmldb.api.base.XMLDBException; /** @@ -121,6 +123,23 @@ this.client.removeDocument(TEST_COLLECTION_PATH, "doc1"); } + public void testGetDocumentAsSAX() throws Exception { + String testDocument = "<?xml version=\"1.0\"?>\n<data><test>test data</test></data>"; + this.client.insertDocument(TEST_COLLECTION_PATH, "doc1", testDocument); + + StringWriter out = new StringWriter(); + XMLSerializer serializer = new XMLSerializer(); + serializer.setOutputCharStream(out); + + this.client.getDocumentAsSax(TEST_COLLECTION_PATH, "doc1", serializer); + String doc = out.toString(); + + assertNotNull(doc); + assertEquals(testDocument, doc); + + this.client.removeDocument(TEST_COLLECTION_PATH, "doc1"); + } + public void testGetInexistantDocument() throws Exception { String doc = this.client.getDocument(TEST_COLLECTION_PATH, "ghostdoc"); 1.7 +2 -2 xml-xindice/java/src/org/apache/xindice/client/xmldb/XindiceCollection.java Index: XindiceCollection.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/client/xmldb/XindiceCollection.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- XindiceCollection.java 21 Nov 2002 07:44:35 -0000 1.6 +++ XindiceCollection.java 10 Jul 2003 14:43:52 -0000 1.7 @@ -104,7 +104,7 @@ */ public XindiceCollection(String collPath) throws XMLDBException { - this.collPath = collPath; + this.collPath = collPath.endsWith("/") ? collPath.substring(0, collPath.length() - 1) : collPath; services = new Hashtable();