From: Pierrick B. <br...@us...> - 2006-01-17 16:51:51
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3414/src/org/exist/xquery/test Modified Files: XPathQueryTest.java Log Message: Retrieving root nodes of in Memory documents was leading to serious memory errors. Root nodes of temporary documents fragments were wrong. Index: XPathQueryTest.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/test/XPathQueryTest.java,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** XPathQueryTest.java 17 Jan 2006 15:10:11 -0000 1.51 --- XPathQueryTest.java 17 Jan 2006 16:51:41 -0000 1.52 *************** *** 156,159 **** --- 156,160 ---- storeXMLStringAndGetQueryService("numbers.xml", numbers); + //Invalid path expression left operand (not a node set). boolean exceptionThrown = false; String message = ""; *************** *** 164,169 **** message = e.getMessage(); } ! assertTrue("Exception wanted: " + message, exceptionThrown); exceptionThrown = false; message = ""; --- 165,171 ---- message = e.getMessage(); } ! assertTrue("Exception wanted: " + message, message.contains("XPTY0019")); + //Undefined context sequence exceptionThrown = false; message = ""; *************** *** 174,178 **** message = e.getMessage(); } ! assertTrue("Exception wanted: " + message, exceptionThrown); queryAndAssert(service, "()/position()", 0, null); --- 176,192 ---- message = e.getMessage(); } ! assertTrue("Exception wanted: " + message, message.contains("XPDY0002")); ! ! exceptionThrown = false; ! message = ""; ! try { ! //"1 to 2" is resolved as a (1, 2), i.e. a sequence of *integers* which is *not* a singleton ! queryAndAssert(service, "let $a := (1, 2, 3) for $b in $a[1 to 2] return $b", -1, null); ! } catch (XMLDBException e) { ! exceptionThrown = true; ! message = e.getMessage(); ! } ! //No effective boolean value for such a kind of sequence ! ! assertTrue("Exception wanted: " + message, message.contains("FORG0006")); queryAndAssert(service, "()/position()", 0, null); *************** *** 330,336 **** System.out.println("testStarAxisConstraints3(): XMLDBException: "+e); fail(e.getMessage()); ! } ! } public void testParentAxis() { --- 344,365 ---- System.out.println("testStarAxisConstraints3(): XMLDBException: "+e); fail(e.getMessage()); ! } ! } + public void testRoot() { + try { + XQueryService service = + storeXMLStringAndGetQueryService("nested2.xml", nested2); + + String query = "let $doc := <a><b/></a> return root($doc)"; + ResourceSet result = service.queryResource("numbers.xml", query); + assertEquals("XPath: " + query, 1, result.getSize()); + XMLResource resource = (XMLResource)result.getResource(0); + assertEquals("XPath: " + query, "a", resource.getContentAsDOM().getFirstChild().getLocalName()); + + } catch (XMLDBException e) { + fail(e.getMessage()); + } + } public void testParentAxis() { |