You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2012/07/05 15:30:41 UTC
svn commit: r1357596 -
/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SQLPathTest.java
Author: thomasm
Date: Thu Jul 5 13:30:41 2012
New Revision: 1357596
URL: http://svn.apache.org/viewvc?rev=1357596&view=rev
Log:
JCR-3376 TCK: SQLPathTest.testChildAxisRoot expected root node not in result
Modified:
jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SQLPathTest.java
Modified: jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SQLPathTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SQLPathTest.java?rev=1357596&r1=1357595&r2=1357596&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SQLPathTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/query/SQLPathTest.java Thu Jul 5 13:30:41 2012
@@ -69,7 +69,7 @@ public class SQLPathTest extends Abstrac
/**
* Tests if <somepath>/% returns the descendants of <somepath>.
- * @throws NotExecutableException
+ * @throws NotExecutableException
*/
public void testDescendantTestRoot() throws RepositoryException, NotExecutableException {
String sql = getStatement(testRoot + "/%");
@@ -79,7 +79,7 @@ public class SQLPathTest extends Abstrac
/**
* Tests if <somepath>/% returns no nodes if node at <somepath>
* is a leaf.
- * @throws NotExecutableException
+ * @throws NotExecutableException
*/
public void testDescendantLeaf() throws RepositoryException, NotExecutableException {
// find leaf
@@ -95,7 +95,7 @@ public class SQLPathTest extends Abstrac
* Tests if <somepath>/%/<nodename> OR <somepath>/<nodename>
* returns nodes with name <nodename> which are descendants of
* node at <code>testroot</code>.
- * @throws NotExecutableException
+ * @throws NotExecutableException
*/
public void testDescendantSelfTestRoot() throws RepositoryException, NotExecutableException {
// get first node which is two levels deeper than node at testroot
@@ -124,11 +124,14 @@ public class SQLPathTest extends Abstrac
/**
* Tests if /% AND NOT /%/% returns the child nodes of the root node.
- * @throws NotExecutableException
+ * @throws NotExecutableException
*/
public void testChildAxisRoot() throws RepositoryException, NotExecutableException {
String sql = getStatement("/%");
- sql += " AND NOT " + jcrPath + " LIKE '/%/%'";
+ // need to exclude the root node explicitly (using jcr:path <> '/')
+ // as the specification allows to not return it even if using jcr:path LIKE '/%'
+ // see also JCR specification, section 8.5.2.2 ("Pseudo-property jcr:path")
+ sql += " AND NOT " + jcrPath + " LIKE '/%/%' AND " + jcrPath + " <> '/'";
Node[] nodes = toArray(session.getRootNode().getNodes());
executeSqlQuery(session, sql, nodes);
}
@@ -136,7 +139,7 @@ public class SQLPathTest extends Abstrac
/**
* Tests if <somepath>/% AND NOT <somepath>/%/% returns the child
* nodes of node at <somepath>.
- * @throws NotExecutableException
+ * @throws NotExecutableException
*/
public void testChildAxisTestRoot() throws RepositoryException, NotExecutableException {
String sql = getStatement(testRoot + "/%");
@@ -148,7 +151,7 @@ public class SQLPathTest extends Abstrac
/**
* Tests if <somepath>/% AND NOT <somepath>/%/% returns no nodes
* if the node at <somepath> is a leaf.
- * @throws NotExecutableException
+ * @throws NotExecutableException
*/
public void testChildAxisLeaf() throws RepositoryException, NotExecutableException {
// find leaf
@@ -179,7 +182,7 @@ public class SQLPathTest extends Abstrac
* @return descendants of <code>node</code>.
* @throws RepositoryException if an error occurs.
*/
- private Node[] getDescendants(final Node node) throws RepositoryException {
+ private static Node[] getDescendants(final Node node) throws RepositoryException {
final List<Node> descendants = new ArrayList<Node>();
node.accept(new TraversingItemVisitor.Default() {