001: /*
002: * JBoss, Home of Professional Open Source.
003: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
004: * as indicated by the @author tags. See the copyright.txt file in the
005: * distribution for a full listing of individual contributors.
006: *
007: * This is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU Lesser General Public License as
009: * published by the Free Software Foundation; either version 2.1 of
010: * the License, or (at your option) any later version.
011: *
012: * This software is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this software; if not, write to the Free
019: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021: */
022: package org.jboss.test.security.test;
023:
024: import java.io.FilePermission;
025: import java.net.URL;
026: import java.security.CodeSource;
027: import java.security.Permission;
028: import java.security.PermissionCollection;
029: import java.security.Policy;
030:
031: /**
032: * A JUnit TestCase for the NamespacePermissions and NamespacePermission
033: * classes.
034: *
035: @author Scott.Stark@jboss.org
036: @version $Revision: 57211 $
037: */
038: public class NamespacePermissionsUnitTestCase extends
039: junit.framework.TestCase {
040: PermissionCollection pc;
041:
042: public NamespacePermissionsUnitTestCase(String name) {
043: super (name);
044: }
045:
046: protected void setUp() throws Exception {
047: pc = new NamespacePermissionCollection();
048: NamespacePermission p = new NamespacePermission(
049: "starksm/Project1", "r---");
050: pc.add(p);
051: p = new NamespacePermission(
052: "starksm/Project1/Documents/readme.html", "rw--");
053: pc.add(p);
054: p = new NamespacePermission(
055: "starksm/Project1/Documents/Public", "rw--");
056: pc.add(p);
057: p = new NamespacePermission(
058: "starksm/Project1/Documents/Public/Private", "----");
059: pc.add(p);
060: p = new NamespacePermission("Project1/Documents/Public", "r---");
061: pc.add(p);
062: p = new NamespacePermission(
063: "Project1/Documents/Public/starksm", "----");
064: pc.add(p);
065: }
066:
067: protected void tearDown() {
068: pc = null;
069: }
070:
071: /**
072: * This method caueses errors, because newer junit this is a static.
073: * and thus can not be overridden.
074: *
075: protected void assertEquals(String msg, boolean expected, boolean actual)
076: {
077: assert(msg, (expected == actual));
078: }
079: */
080:
081: /**
082: * Test the NamespacePermissionCollection implies method for various
083: * permission that should be implied by the setup PermissionCollection.
084: */
085: public void testImplied() {
086: NamespacePermission p = new NamespacePermission(
087: "Project1/Documents/Public/view1.jpg", "r---");
088: boolean implied = pc.implies(p);
089: assertEquals(p.toString(), true, implied);
090:
091: p = new NamespacePermission("starksm/Project1", "r---");
092: implied = pc.implies(p);
093: assertEquals(p.toString(), true, implied);
094: p = new NamespacePermission(
095: "starksm/Project1/Documents/Folder1", "r---");
096: implied = pc.implies(p);
097: assertEquals(p.toString(), true, implied);
098: p = new NamespacePermission(
099: "starksm/Project1/Documents/readme.html", "r---");
100: implied = pc.implies(p);
101: assertEquals(p.toString(), true, implied);
102: p = new NamespacePermission(
103: "starksm/Project1/Documents/readme.html", "rw--");
104: implied = pc.implies(p);
105: assertEquals(p.toString(), true, implied);
106: p = new NamespacePermission(
107: "starksm/Project1/Documents/readme.html", "-w--");
108: implied = pc.implies(p);
109: assertEquals(p.toString(), true, implied);
110: p = new NamespacePermission(
111: "starksm/Project1/Documents/Public/readme.html", "r---");
112: implied = pc.implies(p);
113: assertEquals(p.toString(), true, implied);
114: p = new NamespacePermission(
115: "starksm/Project1/Documents/Public/readme.html", "rw--");
116: implied = pc.implies(p);
117: //assertEquals(p.toString(), true, implied);
118: }
119:
120: /**
121: * Test the NamespacePermissionCollection implies method for various
122: * permission that should NOT be implied by the setup PermissionCollection.
123: */
124: public void testNotImplied() {
125: NamespacePermission p = new NamespacePermission(
126: "Project1/Drawings/view1.jpg", "r---");
127: boolean implied = pc.implies(p);
128: assertEquals(p.toString(), false, implied);
129: p = new NamespacePermission("Project1/Documents/view1.jpg",
130: "r---");
131: implied = pc.implies(p);
132: assertEquals(p.toString(), false, implied);
133: p = new NamespacePermission(
134: "starksm/Project1/Documents/readme.html", "rw-d");
135: implied = pc.implies(p);
136: assertEquals(p.toString(), false, implied);
137: p = new NamespacePermission("starksm/Project1/Documents",
138: "rw--");
139: implied = pc.implies(p);
140: assertEquals(p.toString(), false, implied);
141: p = new NamespacePermission(
142: "starksm/Project1/Documents/Public/Private/readme.html",
143: "r---");
144: implied = pc.implies(p);
145: assertEquals(p.toString(), false, implied);
146: p = new NamespacePermission(
147: "starksm/Project1/Documents/Public/Private/readme.html",
148: "rw--");
149: implied = pc.implies(p);
150: assertEquals(p.toString(), false, implied);
151: p = new NamespacePermission(
152: "starksm/Project1/Documents/Folder1/readme.html",
153: "rw--");
154: implied = pc.implies(p);
155: assertEquals(p.toString(), false, implied);
156: p = new NamespacePermission(
157: "Project1/Documents/Public/starksm/.bashrc", "r---");
158: implied = pc.implies(p);
159: assertEquals(p.toString(), false, implied);
160: }
161:
162: public static void main(String[] args) throws Exception {
163: NamespacePermissionsUnitTestCase tst = new NamespacePermissionsUnitTestCase(
164: "main");
165: tst.setUp();
166: tst.testImplied();
167: tst.testNotImplied();
168: }
169: }
|