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

reschke pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new e2a3d46934 OAK-10545: oak-jcr: add test for observing effect of 
remapping a namespace prefix to a different namespace name (#1196)
e2a3d46934 is described below

commit e2a3d46934dfc52c6cf35244998ce36345abd388
Author: Julian Reschke <resc...@apache.org>
AuthorDate: Fri Nov 10 08:53:00 2023 +0100

    OAK-10545: oak-jcr: add test for observing effect of remapping a namespace 
prefix to a different namespace name (#1196)
---
 .../apache/jackrabbit/oak/jcr/NamePathTest.java    | 47 ++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git 
a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java 
b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java
index b70f1693b3..88262e392d 100644
--- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java
+++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/NamePathTest.java
@@ -17,11 +17,15 @@
 package org.apache.jackrabbit.oak.jcr;
 
 import static org.apache.jackrabbit.oak.jcr.AbstractRepositoryTest.dispose;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.util.List;
+import java.util.Random;
 
+import javax.jcr.NamespaceException;
 import javax.jcr.Node;
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
@@ -30,8 +34,10 @@ import javax.jcr.Session;
 import org.apache.jackrabbit.guava.common.collect.ImmutableList;
 
 import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
+import org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class NamePathTest {
@@ -212,6 +218,47 @@ public class NamePathTest {
         session.getNode(n.getPath());
     }
 
+    @Test
+    @Ignore("OAK-10544")
+    public void testPrefixRemapping() throws NamespaceException, 
RepositoryException {
+        Random r = new Random();
+        int i1 = r.nextInt();
+        int i2 = r.nextInt();
+        String prefix = "nstest" + i1;
+        String uri1 = "foobar:1-" + i1;
+        String uri2 = "foobar:2-" + i2;
+        String testLocalName = "test";
+        String expandedTestName ="{" + uri1  + "}" + testLocalName;
+
+        DefaultNamePathResolver resolver = new 
DefaultNamePathResolver(session);
+
+        try {
+            
session.getWorkspace().getNamespaceRegistry().registerNamespace(prefix, uri1);
+
+            Node testNode = session.getRootNode().addNode(prefix + ":" + 
testLocalName);
+            session.save();
+
+            // verify that name resolver finds correct namespaceURI
+            assertEquals(uri1, 
resolver.getQName(testNode.getName()).getNamespaceURI());
+
+            // check that expanded name works
+            Node n2 = session.getRootNode().getNode(expandedTestName);
+            assertTrue(testNode.isSame(n2));
+
+            // remap prefix1 to uri2
+            session.setNamespacePrefix(prefix, uri2);
+
+            // check that expanded name still works
+            Node n3 = session.getRootNode().getNode(expandedTestName);
+            assertTrue(testNode.isSame(n3));
+
+            // verify that name resolver still finds correct namespaceURI
+            assertEquals(uri1, 
resolver.getQName(testNode.getName()).getNamespaceURI());
+        } finally {
+            
session.getWorkspace().getNamespaceRegistry().unregisterNamespace(prefix);
+        }
+    }
+
 
     private void testPaths(List<String> paths) throws RepositoryException {
         for (String path : paths) {

Reply via email to