/* * 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); } } }