Description
---------
Test
---------
private static class MockPermission extends BasicPermission{
public MockPermission(String name)
{ super(name); }public MockPermission(String name, String action)
{ super(name,action); }}
static class MockPermissions extends PermissionCollection{
private Vector<Permission> permissions = new Vector();
@Override
public void add(Permission permission) {
if(this.isReadOnly())
if(permission instanceof MockPermission)
{ permissions.add(permission); }}
@Override
public Enumeration<Permission> elements()
@Override
public boolean implies(Permission permission) {
if(permissions.size()==0)
if(permission instanceof MockPermission){
for(Permission perm : permissions){
if( perm.implies(permission))
}
}
return false;
}
}
public void testGetPermissions() throws Exception{
MockPermission read = new MockPermission("read");
MockPermission write = new MockPermission("write");
PermissionCollection readPC = new MockPermissions();
readPC.add(read);
ProtectionDomain pd = new ProtectionDomain(null, null);
TestProvider policy = new TestProvider();
policy.pc = readPC;
PermissionCollection permissions = policy.getPermissions(pd);
assertTrue(permissions instanceof MockPermissions);
assertSame(permissions, readPC);
assertTrue(permissions.implies(read));
assertFalse(permissions.implies(write));
}
----------------
Description
----------------
Harmony'll failed in this testcase since it returns a new Permissions instance rather than use the customized PermissionCollection.
The new created Permissions have different implies contact which leads to the failures.
It doesn't make sense to create a new Permissions here, since customer may extension the default permission and permission collection here.