Ensure that array of valid permissions can't be modified outside the class

This commit is contained in:
Carlos Sanchez
2006-08-22 17:57:18 +00:00
parent 38ec0f0d30
commit 27d2db9e22
3 changed files with 35 additions and 19 deletions

View File

@@ -172,13 +172,13 @@ public class SimpleAclEntryTests extends TestCase {
}
public void testParsePermission() {
assertPermission("NOTHING", 0);
assertPermission("ADMINISTRATION", 1);
assertPermission("READ", 2);
assertPermission("WRITE", 4);
assertPermission("CREATE", 8);
assertPermission("DELETE", 16);
assertPermission("READ_WRITE_DELETE", 22);
assertPermission("NOTHING", SimpleAclEntry.NOTHING);
assertPermission("ADMINISTRATION", SimpleAclEntry.ADMINISTRATION);
assertPermission("READ", SimpleAclEntry.READ);
assertPermission("WRITE", SimpleAclEntry.WRITE);
assertPermission("CREATE", SimpleAclEntry.CREATE);
assertPermission("DELETE", SimpleAclEntry.DELETE);
assertPermission("READ_WRITE_DELETE", SimpleAclEntry.READ_WRITE_DELETE);
}
public void testParsePermissionWrongValues() {
@@ -193,4 +193,15 @@ public class SimpleAclEntryTests extends TestCase {
private void assertPermission(String permission, int value) {
assertEquals(value, SimpleAclEntry.parsePermission(permission));
}
/**
* Check that the value returned by {@link SimpleAclEntry#getValidPermissions()} is not modifiable.
*/
public void testGetPermissions() {
SimpleAclEntry acl = new SimpleAclEntry("", new NamedEntityObjectIdentity("x", "x"), null, 0);
int[] permissions = acl.getValidPermissions();
int i = permissions[0];
permissions[0] -= 100;
assertEquals("Value returned by getValidPermissions can be modified", i, acl.getValidPermissions()[0]);
}
}

View File

@@ -446,13 +446,13 @@ public class BasicAclEntryVoterTests extends TestCase {
}
public void testSetRequirePermissionFromString() {
assertPermission("NOTHING", 0);
assertPermission("ADMINISTRATION", 1);
assertPermission("READ", 2);
assertPermission("WRITE", 4);
assertPermission("CREATE", 8);
assertPermission("DELETE", 16);
assertPermission(new String[] { "WRITE", "CREATE" }, new int[] { 4, 8 });
assertPermission("NOTHING", SimpleAclEntry.NOTHING);
assertPermission("ADMINISTRATION", SimpleAclEntry.ADMINISTRATION);
assertPermission("READ", SimpleAclEntry.READ);
assertPermission("WRITE", SimpleAclEntry.WRITE);
assertPermission("CREATE", SimpleAclEntry.CREATE);
assertPermission("DELETE", SimpleAclEntry.DELETE);
assertPermission(new String[] { "WRITE", "CREATE" }, new int[] { SimpleAclEntry.WRITE, SimpleAclEntry.CREATE });
}
public void testSetRequirePermissionFromStringWrongValues() {