Author: reschke
Date: Thu Jul 25 13:14:47 2019
New Revision: 1863735
URL: http://svn.apache.org/viewvc?rev=1863735&view=rev
Log:
OAK-8507: system view import: add test coverage for prefix conflicts
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/xml/ImportTest.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/xml/ImportTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/xml/ImportTest.java?rev=1863735&r1=1863734&r2=1863735&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/xml/ImportTest.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/xml/ImportTest.java
Thu Jul 25 13:14:47 2019
@@ -21,16 +21,18 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.UUID;
+
import javax.jcr.ImportUUIDBehavior;
import javax.jcr.ItemExistsException;
import javax.jcr.Node;
+import javax.jcr.Property;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.ConstraintViolationException;
import org.apache.jackrabbit.test.AbstractJCRTest;
-import static org.apache.jackrabbit.JcrConstants.JCR_DATA;
-import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
+import static org.junit.Assert.assertNotEquals;
public class ImportTest extends AbstractJCRTest {
@@ -248,4 +250,20 @@ public class ImportTest extends Abstract
assertEquals("No matching property definition found for jcr:data",
e.getMessage());
}
}
+
+ public void testNewNamespaceWithPrefixConflict() throws Exception {
+ String ns1 = "urn:uuid:" + UUID.randomUUID().toString();
+ String ns2 = "urn:uuid:" + UUID.randomUUID().toString();
+ String xml = "<sv:node sv:name='resourceName'
xmlns:sv='http://www.jcp.org/jcr/sv/1.0'>" + "<sv:property xmlns:foo='" + ns1
+ + "' sv:name='foo:test'
sv:type='String'><sv:value>a</sv:value></sv:property>" + "<sv:property
xmlns:foo='" + ns2
+ + "' sv:name='foo:test'
sv:type='String'><sv:value>b</sv:value></sv:property>" + "</sv:node>";
+ superuser.importXML(path, new ByteArrayInputStream(xml.getBytes()),
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
+ Node n = superuser.getNode(path);
+ n = n.getNode("resourceName");
+ Property p1 = n.getProperty("{" + ns1 + "}test");
+ assertEquals("a", p1.getString());
+ Property p2 = n.getProperty("{" + ns2 + "}test");
+ assertEquals("b", p2.getString());
+ assertNotEquals(p1.getName(), p2.getName());
+ }
}
\ No newline at end of file