You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:18:21 UTC

[sling-org-apache-sling-testing-jcr-mock] 25/27: SLING-4962: getNodes() always returns empty iterator for root node

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.testing.jcr-mock-1.1.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-jcr-mock.git

commit 1dbd750ed2cbaea0aebd09e7d681571016239ae9
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Fri Aug 28 15:08:46 2015 +0000

    SLING-4962: getNodes() always returns empty iterator for root node
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/jcr-mock@1698347 13f79535-47bb-0310-9956-ffa450edef68
---
 .../org/apache/sling/testing/mock/jcr/MockSession.java   |  5 ++++-
 .../apache/sling/testing/mock/jcr/MockSessionTest.java   | 16 ++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/testing/mock/jcr/MockSession.java b/src/main/java/org/apache/sling/testing/mock/jcr/MockSession.java
index 45e050d..0499a3c 100644
--- a/src/main/java/org/apache/sling/testing/mock/jcr/MockSession.java
+++ b/src/main/java/org/apache/sling/testing/mock/jcr/MockSession.java
@@ -197,8 +197,11 @@ class MockSession implements Session {
     RangeIterator listChildren(final String parentPath, final ItemFilter filter) throws RepositoryException {
         List<Item> children = new ArrayList<Item>();
 
+        //remove trailing slash or make root path / empty string
+        final String path = parentPath.replaceFirst("/$", "");
+
         // build regex pattern for all child paths of parent
-        Pattern pattern = Pattern.compile("^" + Pattern.quote(parentPath) + "/[^/]+$");
+        Pattern pattern = Pattern.compile("^" + Pattern.quote(path) + "/[^/]+$");
 
         // collect child resources
         for (ItemData item : this.items.values()) {
diff --git a/src/test/java/org/apache/sling/testing/mock/jcr/MockSessionTest.java b/src/test/java/org/apache/sling/testing/mock/jcr/MockSessionTest.java
index 9a08aaf..7bbe250 100644
--- a/src/test/java/org/apache/sling/testing/mock/jcr/MockSessionTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/jcr/MockSessionTest.java
@@ -57,6 +57,22 @@ public class MockSessionTest {
     }
 
     @Test
+    public void testRootGetNodes() throws RepositoryException {
+        Session s = MockJcr.newSession();
+        Node root = s.getRootNode();
+        root.addNode("node1");
+        root.addNode("node2");
+
+        int countChildren = 0;
+        NodeIterator iter = s.getRootNode().getNodes();
+        while (iter.hasNext()) {
+            iter.next();
+            countChildren++;
+        }
+        assertEquals(2, countChildren);
+    }
+	
+    @Test
     public void testNodePropertyCreateRead() throws RepositoryException {
         Node rootNode = this.session.getNode("/");
         assertEquals(rootNode, this.session.getRootNode());

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.