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 <[email protected]>
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) {