You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2013/10/11 09:28:30 UTC
svn commit: r1531206 -
/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionManagementTest.java
Author: angela
Date: Fri Oct 11 07:28:30 2013
New Revision: 1531206
URL: http://svn.apache.org/r1531206
Log:
OAK-527: testing accessibility of version information if versionable node is removed
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionManagementTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionManagementTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionManagementTest.java?rev=1531206&r1=1531205&r2=1531206&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionManagementTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionManagementTest.java Fri Oct 11 07:28:30 2013
@@ -295,6 +295,42 @@ public class VersionManagementTest exten
* @since oak
*/
@Test
+ public void testAccessVersionHistoryVersionableNodeRemoved() throws Exception {
+ Node n = createVersionableNode(superuser.getNode(path));
+ allow(n.getPath(), versionPrivileges);
+
+ n.checkin();
+ n.checkout();
+
+ String versionablePath = n.getPath();
+ VersionHistory vh = n.getVersionHistory();
+ String vhPath = vh.getPath();
+ String vhUUID = vh.getIdentifier();
+
+ // remove the versionable node
+ n.remove();
+ superuser.save();
+
+ testSession.refresh(false);
+ assertTrue(testSession.nodeExists(path));
+ assertFalse(testSession.nodeExists(versionablePath));
+
+ // accessing the version history directly should still succeed as
+ // read permission is still granted on the tree defined by the parent.
+ VersionHistory history = (VersionHistory) testSession.getNode(vhPath);
+ history = (VersionHistory) testSession.getNodeByIdentifier(vhUUID);
+ history = (VersionHistory) testSession.getNodeByUUID(vhUUID);
+
+ // revoking read permission on the parent node -> version history
+ // must no longer be accessible
+ modify(path, Privilege.JCR_READ, false);
+ assertFalse(testSession.nodeExists(vhPath));
+ }
+
+ /**
+ * @since oak
+ */
+ @Test
public void testAddVersionLabel() throws Exception {
Node n = createVersionableNode(superuser.getNode(path));
allow(n.getPath(), versionPrivileges);