Updated Tests

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3371 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2006-07-21 14:56:12 +00:00
parent b066d59b6a
commit 305124e75b

View File

@@ -27,19 +27,26 @@ import org.alfresco.repo.security.permissions.PermissionEntry;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AccessPermission; import org.alfresco.service.cmr.security.AccessPermission;
import org.alfresco.service.cmr.security.AccessStatus; import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
public class PermissionServiceTest extends AbstractPermissionTest public class PermissionServiceTest extends AbstractPermissionTest
{ {
private SimplePermissionEntry denyAndyAll; private SimplePermissionEntry denyAndyAll;
private SimplePermissionEntry allowAndyAll; private SimplePermissionEntry allowAndyAll;
private SimplePermissionEntry denyAndyRead; private SimplePermissionEntry denyAndyRead;
private SimplePermissionEntry allowAndyRead; private SimplePermissionEntry allowAndyRead;
private SimplePermissionEntry denyAndyReadProperties; private SimplePermissionEntry denyAndyReadProperties;
private SimplePermissionEntry allowAndyReadProperties; private SimplePermissionEntry allowAndyReadProperties;
private SimplePermissionEntry allowAndyReadChildren; private SimplePermissionEntry allowAndyReadChildren;
public PermissionServiceTest() public PermissionServiceTest()
{ {
super(); super();
@@ -59,46 +66,80 @@ public class PermissionServiceTest extends AbstractPermissionTest
} }
fail("Missing role ROLE_AUTHENTICATED "); fail("Missing role ROLE_AUTHENTICATED ");
} }
@Override @Override
protected void onSetUpInTransaction() throws Exception protected void onSetUpInTransaction() throws Exception
{ {
super.onSetUpInTransaction(); super.onSetUpInTransaction();
denyAndyAll = new SimplePermissionEntry( denyAndyAll = new SimplePermissionEntry(rootNodeRef, permissionService.getAllPermissionReference(), "andy",
rootNodeRef,
permissionService.getAllPermissionReference(),
"andy",
AccessStatus.DENIED); AccessStatus.DENIED);
allowAndyAll = new SimplePermissionEntry( allowAndyAll = new SimplePermissionEntry(rootNodeRef, permissionService.getAllPermissionReference(), "andy",
rootNodeRef,
permissionService.getAllPermissionReference(),
"andy",
AccessStatus.ALLOWED); AccessStatus.ALLOWED);
denyAndyRead = new SimplePermissionEntry( denyAndyRead = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ), "andy",
rootNodeRef,
getPermission(PermissionService.READ),
"andy",
AccessStatus.DENIED); AccessStatus.DENIED);
allowAndyRead = new SimplePermissionEntry( allowAndyRead = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ), "andy",
rootNodeRef,
getPermission(PermissionService.READ),
"andy",
AccessStatus.ALLOWED);
denyAndyReadProperties = new SimplePermissionEntry(
rootNodeRef,
getPermission(PermissionService.READ_PROPERTIES),
"andy",
AccessStatus.DENIED);
allowAndyReadProperties = new SimplePermissionEntry(
rootNodeRef,
getPermission(PermissionService.READ_PROPERTIES),
"andy",
AccessStatus.ALLOWED);
allowAndyReadChildren = new SimplePermissionEntry(
rootNodeRef,
getPermission(PermissionService.READ_CHILDREN),
"andy",
AccessStatus.ALLOWED); AccessStatus.ALLOWED);
denyAndyReadProperties = new SimplePermissionEntry(rootNodeRef,
getPermission(PermissionService.READ_PROPERTIES), "andy", AccessStatus.DENIED);
allowAndyReadProperties = new SimplePermissionEntry(rootNodeRef,
getPermission(PermissionService.READ_PROPERTIES), "andy", AccessStatus.ALLOWED);
allowAndyReadChildren = new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ_CHILDREN),
"andy", AccessStatus.ALLOWED);
}
public void testGetAllSetPermissions()
{
runAs("andy");
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.DELETE),
"andy", AccessStatus.ALLOWED));
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.DELETE),
"GROUP_GREEN", AccessStatus.ALLOWED));
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ),
"andy", AccessStatus.ALLOWED));
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, getPermission(PermissionService.READ),
"GROUP_RED", AccessStatus.ALLOWED));
permissionService.setPermission(new SimplePermissionEntry(systemNodeRef,
getPermission(PermissionService.DELETE), "andy", AccessStatus.DENIED));
permissionService.setPermission(new SimplePermissionEntry(systemNodeRef,
getPermission(PermissionService.DELETE), "GROUP_GREEN", AccessStatus.DENIED));
NodeRef current = systemNodeRef;
Set<AccessPermission> setPermissions = new HashSet<AccessPermission>();
while (current != null)
{
Set<AccessPermission> morePermissions = permissionService.getAllSetPermissions(current);
for (AccessPermission toTest : morePermissions)
{
if (toTest.getAuthorityType() == AuthorityType.GROUP)
{
boolean add = true;
for (AccessPermission existing : setPermissions)
{
if (add
&& existing.getAuthority().equals(toTest.getAuthority())
&& existing.getPermission().equals(toTest.getPermission()))
{
add = false;
}
}
if (add)
{
setPermissions.add(toTest);
}
}
}
if (permissionService.getInheritParentPermissions(current))
{
current = nodeService.getPrimaryParent(current).getParentRef();
}
else
{
current = null;
}
}
assertEquals(2, setPermissions.size());
} }
public void testSetInheritFalse() public void testSetInheritFalse()
@@ -181,7 +222,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
testSetNodePermissionEntry(); testSetNodePermissionEntry();
testSetNodePermissionEntry2(); testSetNodePermissionEntry2();
} }
public void testDoubleSetAllowDeny() public void testDoubleSetAllowDeny()
{ {
Set<? extends PermissionEntry> permissionEntries = null; Set<? extends PermissionEntry> permissionEntries = null;
@@ -259,7 +300,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
assertTrue(permissionService.getSetPermissions(rootNodeRef).inheritPermissions()); assertTrue(permissionService.getSetPermissions(rootNodeRef).inheritPermissions());
assertEquals(rootNodeRef, permissionService.getSetPermissions(rootNodeRef).getNodeRef()); assertEquals(rootNodeRef, permissionService.getSetPermissions(rootNodeRef).getNodeRef());
assertEquals(1, permissionService.getSetPermissions(rootNodeRef).getPermissionEntries().size()); assertEquals(1, permissionService.getSetPermissions(rootNodeRef).getPermissionEntries().size());
// remove other-all // remove other-all
permissionService.deletePermission(rootNodeRef, "other", permissionService.getAllPermission()); permissionService.deletePermission(rootNodeRef, "other", permissionService.getAllPermission());
assertNotNull(permissionService.getSetPermissions(rootNodeRef)); assertNotNull(permissionService.getSetPermissions(rootNodeRef));
@@ -576,7 +617,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size()); assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
// Changed ny not enfocing READ // Changed ny not enfocing READ
//assertFalse(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); // assertFalse(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
assertTrue(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); assertTrue(permissionService.hasPermission(n1, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
runAs("lemur"); runAs("lemur");
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
@@ -850,9 +891,9 @@ public class PermissionServiceTest extends AbstractPermissionTest
{ {
runAs("admin"); runAs("admin");
//TransactionService transactionService = serviceRegistry.getTransactionService(); // TransactionService transactionService = serviceRegistry.getTransactionService();
//UserTransaction tx = transactionService.getUserTransaction(); // UserTransaction tx = transactionService.getUserTransaction();
//tx.begin(); // tx.begin();
NodeRef n1 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN, NodeRef n1 = nodeService.createNode(rootNodeRef, ContentModel.ASSOC_CHILDREN,
QName.createQName("{namespace}one"), ContentModel.TYPE_FOLDER).getChildRef(); QName.createQName("{namespace}one"), ContentModel.TYPE_FOLDER).getChildRef();
@@ -890,7 +931,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
for (int i = 0; i < 1000; i++) for (int i = 0; i < 1000; i++)
{ {
getSession().flush(); getSession().flush();
//getSession().clear(); // getSession().clear();
start = System.nanoTime(); start = System.nanoTime();
assertTrue(permissionService.hasPermission(n10, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED); assertTrue(permissionService.hasPermission(n10, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
end = System.nanoTime(); end = System.nanoTime();
@@ -910,7 +951,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
System.out.println("Time is " + (time / 1000000000.0)); System.out.println("Time is " + (time / 1000000000.0));
// assertTrue((time / 1000000000.0) < 2.0); // assertTrue((time / 1000000000.0) < 2.0);
//tx.rollback(); // tx.rollback();
} }
public void testAllPermissions() public void testAllPermissions()
@@ -931,7 +972,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size()); assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size());
permissionService.setPermission(allowAndyAll); permissionService.setPermission(allowAndyAll);
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size()); assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
runAs("andy"); runAs("andy");
@@ -983,7 +1024,7 @@ public class PermissionServiceTest extends AbstractPermissionTest
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED);
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
} }
public void testOldAllPermissions() public void testOldAllPermissions()
{ {
runAs("andy"); runAs("andy");
@@ -1002,7 +1043,8 @@ public class PermissionServiceTest extends AbstractPermissionTest
assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size()); assertEquals(0, permissionService.getAllSetPermissions(rootNodeRef).size());
permissionService.setPermission(new SimplePermissionEntry(rootNodeRef, PermissionServiceImpl.OLD_ALL_PERMISSIONS_REFERENCE, "andy", AccessStatus.ALLOWED)); permissionService.setPermission(new SimplePermissionEntry(rootNodeRef,
PermissionServiceImpl.OLD_ALL_PERMISSIONS_REFERENCE, "andy", AccessStatus.ALLOWED));
assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size()); assertEquals(1, permissionService.getAllSetPermissions(rootNodeRef).size());
runAs("andy"); runAs("andy");
assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED); assertTrue(permissionService.hasPermission(rootNodeRef, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
@@ -1423,12 +1465,10 @@ public class PermissionServiceTest extends AbstractPermissionTest
permissionService.setInheritParentPermissions(n2, true); permissionService.setInheritParentPermissions(n2, true);
runAs("andy"); runAs("andy");
assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ)) == AccessStatus.ALLOWED);
// Changed by removing permission read parents access // Changed by removing permission read parents access
//assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); // assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED); assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_PROPERTIES)) == AccessStatus.ALLOWED);
assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED); assertFalse(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CHILDREN)) == AccessStatus.ALLOWED);
assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED); assertTrue(permissionService.hasPermission(n2, getPermission(PermissionService.READ_CONTENT)) == AccessStatus.ALLOWED);
@@ -1701,8 +1741,6 @@ public class PermissionServiceTest extends AbstractPermissionTest
} }
// TODO: Test permissions on missing nodes // TODO: Test permissions on missing nodes
} }