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: package org.apache.harmony.security.tests.java.security;
019:
020: import java.io.File;
021: import java.io.FilePermission;
022: import java.security.Permissions;
023: import java.util.Enumeration;
024:
025: public class Permissions2Test extends junit.framework.TestCase {
026: FilePermission readAllFiles = new FilePermission("<<ALL FILES>>",
027: "read");
028:
029: FilePermission alsoReadAllFiles = new FilePermission(
030: "<<ALL FILES>>", "read");
031:
032: FilePermission allInCurrent = new FilePermission("*",
033: "read, write, execute,delete");
034:
035: FilePermission readInCurrent = new FilePermission("*", "read");
036:
037: FilePermission readInFile = new FilePermission("aFile.file", "read");
038:
039: /**
040: * @tests java.security.Permissions#Permissions()
041: */
042: public void test_Constructor() {
043: // Test for method java.security.Permissions()
044: new Permissions();
045: }
046:
047: /**
048: * @tests java.security.Permissions#add(java.security.Permission)
049: */
050: public void test_addLjava_security_Permission() {
051: // Test for method void
052: // java.security.Permissions.add(java.security.Permission)
053: char s = File.separatorChar;
054: FilePermission perm[] = new FilePermission[7];
055: perm[0] = readAllFiles;
056: perm[1] = allInCurrent;
057: perm[2] = new FilePermission(s + "tmp" + s + "test" + s + "*",
058: "read,write");
059: perm[3] = new FilePermission(s + "tmp" + s + "test" + s
060: + "collection.file", "read");
061: perm[4] = alsoReadAllFiles;
062: perm[5] = readInFile;
063: perm[6] = new FilePermission("hello.file", "write");
064: Permissions perms = new Permissions();
065: for (int i = 0; i < perm.length; i++) {
066: perms.add(perm[i]);
067: }
068:
069: Enumeration e = perms.elements();
070: FilePermission perm2[] = new FilePermission[10];
071: int i = 0;
072: while (e.hasMoreElements()) {
073: perm2[i] = (FilePermission) e.nextElement();
074: i++;
075: }
076: assertEquals(
077: "Permissions.elements did not return the correct number "
078: + "of permission - called in add() test ", i,
079: perm.length);
080: }
081:
082: /**
083: * @tests java.security.Permissions#elements()
084: */
085: public void test_elements() {
086: // Test for method java.util.Enumeration
087: // java.security.Permissions.elements()
088: char s = File.separatorChar;
089: FilePermission perm[] = new FilePermission[7];
090: perm[0] = readAllFiles;
091: perm[1] = allInCurrent;
092: perm[2] = new FilePermission(s + "tmp" + s + "test" + s + "*",
093: "read,write");
094: perm[3] = new FilePermission(s + "tmp" + s + "test" + s
095: + "collection.file", "read");
096: perm[4] = alsoReadAllFiles;
097: perm[5] = readInFile;
098: perm[6] = new FilePermission("hello.file", "write");
099: Permissions perms = new Permissions();
100: for (int i = 0; i < perm.length; i++) {
101: perms.add(perm[i]);
102: }
103: Enumeration e = perms.elements();
104: FilePermission perm2[] = new FilePermission[10];
105: int i = 0;
106: while (e.hasMoreElements()) {
107: perm2[i] = (FilePermission) e.nextElement();
108: i++;
109: }
110: assertEquals("Permissions.elements did not return the correct "
111: + "number of permission - called in element() test", i,
112: perm.length);
113: }
114:
115: /**
116: * @tests java.security.Permissions#implies(java.security.Permission)
117: */
118: public void test_impliesLjava_security_Permission() {
119: // Test for method boolean
120: // java.security.Permissions.implies(java.security.Permission)
121: char s = File.separatorChar;
122: FilePermission perm[] = new FilePermission[7];
123: perm[0] = new FilePermission("test1.file", "write");
124: perm[1] = allInCurrent;
125: perm[2] = new FilePermission(s + "tmp" + s + "test" + s + "*",
126: "read,write");
127: perm[3] = new FilePermission(s + "tmp" + s + "test" + s
128: + "collection.file", "read");
129: perm[4] = new FilePermission(s + "windows" + "*", "delete");
130: perm[5] = readInFile;
131: perm[6] = new FilePermission("hello.file", "write");
132: Permissions perms = new Permissions();
133: for (int i = 0; i < perm.length; i++) {
134: perms.add(perm[i]);
135: }
136: assertTrue("Returned true for non-subset of files",
137: !perms.implies(new FilePermission("<<ALL FILES>>",
138: "execute")));
139: assertTrue("Returned true for non-subset of action", !perms
140: .implies(new FilePermission(s + "tmp" + s + "test" + s
141: + "*", "execute")));
142: assertTrue("Returned false for subset of actions", perms
143: .implies(new FilePermission("*", "write")));
144: assertTrue("Returned false for subset of files", perms
145: .implies(new FilePermission(s + "tmp" + s + "test" + s
146: + "test.file", "read")));
147: assertTrue("Returned false for subset of files and actions",
148: perms.implies(new FilePermission(s + "tmp" + s + "test"
149: + s + "test2.file", "write")));
150: }
151: }
|