001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: /**
019: * @author Alexey V. Varlamov
020: * @version $Revision$
021: */package java.security;
022:
023: import junit.framework.TestCase;
024:
025: /**
026: * Tests for <code>BasicPermission</code>
027: *
028: */
029:
030: public class BasicPermissionTest extends TestCase {
031:
032: public static void main(String[] args) {
033: junit.textui.TestRunner.run(BasicPermissionTest.class);
034: }
035:
036: /**
037: * Constructor for BasicPermissionTest.
038: * @param arg0
039: */
040: public BasicPermissionTest(String arg0) {
041: super (arg0);
042: }
043:
044: /**
045: * Check all constructors: an object is created with the specified valid name.
046: * If name equal null then NPE should be thrown.
047: * If name is empty then IAE should be thrown.
048: * Action is ignored.
049: */
050: public void testCtor() {
051: String name = "basic123*$%#";
052: BasicPermission test = new BasicPermission(name) {
053: };
054: assertEquals(name, test.getName());
055: assertEquals("", test.getActions());
056: test = new BasicPermission(name, "#$!#12435") {
057: };
058: assertEquals(name, test.getName());
059: assertEquals("", test.getActions());
060: try {
061: new BasicPermission(null) {
062: };
063: fail("NPE is not thrown");
064: } catch (NullPointerException ok) {
065: }
066:
067: try {
068: new BasicPermission(null, "ds235") {
069: };
070: fail("NPE is not thrown");
071: } catch (NullPointerException ok) {
072: }
073:
074: try {
075: new BasicPermission("") {
076: };
077: fail("IAE is not thrown");
078: } catch (IllegalArgumentException ok) {
079: }
080: try {
081: new BasicPermission("", "ertre 3454") {
082: };
083: fail("IAE is not thrown");
084: } catch (IllegalArgumentException ok) {
085: }
086: }
087:
088: private final class BasicPermissionImpl extends BasicPermission {
089: public BasicPermissionImpl(String name) {
090: super (name);
091: }
092: }
093:
094: /**
095: * two BasicPermissions are equal if name and class are equal;
096: * equal permissions should have the same hash code
097: */
098: public void testEquals() {
099: BasicPermission b1 = new BasicPermissionImpl("abc");
100: BasicPermission b2 = null;
101: assertTrue(b1.equals(b1));
102: assertFalse(b1.equals(null));
103: assertFalse(b1.equals(new Object()));
104: assertFalse(b1.equals("abc"));
105: assertTrue(b1.equals(b2 = new BasicPermissionImpl("abc")));
106: assertTrue(b1.hashCode() == b2.hashCode());
107: assertFalse(b1.equals(new BasicPermission("abc") {
108: }));
109: assertFalse(b1.equals(new BasicPermissionImpl("abc.*")));
110: }
111:
112: /**
113: * implies() should return true if a permission is equal to or is implied
114: * by wildcarded permission, false otherwise.
115: */
116: public void testImplies() {
117: BasicPermission b1 = new BasicPermissionImpl("a.b.c");
118: assertTrue(b1.implies(b1));
119: assertTrue(b1.implies(new BasicPermissionImpl("a.b.c")));
120: assertFalse(b1.implies(new BasicPermissionImpl("a.b.c.*")));
121: assertFalse(b1.implies(new BasicPermission("a.b.c") {
122: }));
123: assertTrue(new BasicPermissionImpl("a.b.*").implies(b1));
124: assertTrue(new BasicPermissionImpl("a.*").implies(b1));
125: assertTrue(new BasicPermissionImpl("*").implies(b1));
126: assertFalse(new BasicPermissionImpl("a.b*").implies(b1));
127: assertFalse(new BasicPermissionImpl("a.b.c.*").implies(b1));
128: assertTrue(new BasicPermissionImpl("1.*")
129: .implies(new BasicPermissionImpl("1.234.*")));
130: assertTrue(new BasicPermissionImpl("*")
131: .implies(new BasicPermissionImpl("*")));
132: }
133:
134: /**
135: * newPermissionCollection() should return new BasicPermissionCollection on every invocation
136: */
137: public void testCollection() {
138: BasicPermission b1 = new BasicPermissionImpl("a.b.c");
139: PermissionCollection pc1 = b1.newPermissionCollection();
140: PermissionCollection pc2 = b1.newPermissionCollection();
141: assertTrue((pc1 instanceof BasicPermissionCollection)
142: && (pc2 instanceof BasicPermissionCollection));
143: assertNotSame(pc1, pc2);
144: }
145: }
|