You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2021/12/15 10:59:05 UTC
svn commit: r1895979 - in /jackrabbit/branches/2.20: ./ jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java
Author: reschke
Date: Wed Dec 15 10:59:05 2021
New Revision: 1895979
URL: http://svn.apache.org/viewvc?rev=1895979&view=rev
Log:
JCR-4740: add test coverage for mandatory residual child nodes (merged r1894976 into 2.20)
Modified:
jackrabbit/branches/2.20/ (props changed)
jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java
Propchange: jackrabbit/branches/2.20/
------------------------------------------------------------------------------
Merged /jackrabbit/trunk:r1894976
Modified: jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java?rev=1895979&r1=1895978&r2=1895979&view=diff
==============================================================================
--- jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java (original)
+++ jackrabbit/branches/2.20/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/NodeTypeTest.java Wed Dec 15 10:59:05 2021
@@ -20,6 +20,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.io.StringReader;
import javax.jcr.Node;
import javax.jcr.PropertyType;
@@ -74,4 +75,27 @@ public class NodeTypeTest extends Abstra
assertEquals(def, value.getString());
}
+ public void testMandatoryResidualChildNode() throws RepositoryException, ParseException, IOException {
+ Node root = superuser.getRootNode();
+
+ String cnd = "<'test'='http://www.apache.org/jackrabbit/test'>\n" +
+ "[test:MyType] > nt:unstructured\n" +
+ " + * (nt:folder) mandatory";
+
+ CndImporter.registerNodeTypes(new StringReader(cnd), superuser);
+
+ // add with missing mandatory residual child node
+ Node n = root.addNode("test", "test:MyType");
+ superuser.save();
+ // must not fail as residual mandatory child names are not enforced according to https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.7.2.4%20Mandatory
+
+ // add mandatory residual child node
+ Node mandatoryChildNode = n.addNode("child", "nt:folder");
+ superuser.save();
+ assertTrue("Mandatory child node not detected as such", mandatoryChildNode.getDefinition().isMandatory());
+
+ // remove mandatory residual child node
+ mandatoryChildNode.remove();
+ superuser.save();
+ }
}