blob: 94ddf1441cb4d84c0ffb087f66c9fde658d91e6e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package tests.security.acl;
import dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargetClass;
import junit.framework.TestCase;
import java.security.acl.AclEntry;
import java.security.acl.Permission;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Vector;
import org.apache.harmony.security.tests.support.acl.*;
@TestTargetClass(AclEntry.class)
public class IAclEntryTest extends TestCase {
class MyAclEntry extends AclEntryImpl {
public MyAclEntry() {
super();
}
public MyAclEntry(Principal pr) {
super(pr);
}
}
/**
* @tests java.security.acl.AclEntry#addPermission(Permission permission)
* @tests java.security.acl.AclEntry#checkPermission(Permission permission)
* @tests java.security.acl.AclEntry#removePermission(Permission permission)
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "addPermission",
args = {java.security.acl.Permission.class}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "checkPermission",
args = {java.security.acl.Permission.class}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "removePermission",
args = {java.security.acl.Permission.class}
)
})
public void test_AclEntry01() {
Permission perm = new PermissionImpl("Permission_1");
MyAclEntry ae = new MyAclEntry(new PrincipalImpl("TestPrincipal"));
try {
assertTrue(ae.addPermission(perm));
assertFalse(ae.addPermission(perm));
assertTrue(ae.checkPermission(perm));
assertTrue(ae.removePermission(perm));
assertFalse(ae.removePermission(perm));
assertFalse(ae.checkPermission(perm));
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* @tests java.security.acl.AclEntry#getPrincipal()
* @tests java.security.acl.AclEntry#setPrincipal(Principal user)
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "getPrincipal",
args = {}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "setPrincipal",
args = {java.security.Principal.class}
)
})
public void test_AclEntry02() {
MyAclEntry ae = new MyAclEntry();
Principal mp = new PrincipalImpl("TestPrincipal");
try {
assertTrue(ae.setPrincipal(mp));
Principal p = ae.getPrincipal();
assertEquals("Names are not equal", p.getName(), mp.getName());
assertFalse(ae.setPrincipal(mp));
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* @tests java.security.acl.AclEntry#setNegativePermissions()
* @tests java.security.acl.AclEntry#isNegative()
*/
@TestTargets({
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "setNegativePermissions",
args = {}
),
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "isNegative",
args = {}
)
})
public void test_AclEntry03() {
MyAclEntry ae = new MyAclEntry(new PrincipalImpl("TestPrincipal"));
try {
assertFalse("isNegative() returns TRUE",ae.isNegative());
ae.setNegativePermissions();
assertTrue("isNegative() returns FALSE", ae.isNegative());
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* @tests java.security.acl.AclEntry#permissions()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "permissions",
args = {}
)
public void test_AclEntry04() {
MyAclEntry ae = new MyAclEntry(new PrincipalImpl("TestPrincipal"));
Permission perm = new PermissionImpl("Permission_1");
try {
Enumeration en = ae.permissions();
assertFalse("Not empty enumeration", en.hasMoreElements());
ae.addPermission(perm);
en = ae.permissions();
assertTrue("Eempty enumeration", en.hasMoreElements());
Vector v = new Vector();
while (en.hasMoreElements()) {
v.addElement(en.nextElement());
}
assertEquals(v.size(), 1);
assertEquals(v.elementAt(0).toString(), perm.toString());
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* @tests java.security.acl.AclEntry#toString()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "toString",
args = {}
)
public void test_AclEntry05() {
MyAclEntry ae = new MyAclEntry(new PrincipalImpl("TestPrincipal"));
try {
String res = ae.toString();
assertTrue(res.contains("TestPrincipal"));
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
/**
* @tests java.security.acl.AclEntry#clone()
*/
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "clone",
args = {}
)
public void test_AclEntry06() {
MyAclEntry ae = new MyAclEntry(new PrincipalImpl("TestPrincipal"));
try {
assertEquals("Objects are not equal", ae.toString(), ae.clone().toString());
} catch (Exception ex) {
fail("Unexpected exception " + ex);
}
}
}