KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > loom > xmlpolicy > runtime > RuntimeTestCase


1 /*
2  * Copyright (C) The Spice Group. All rights reserved.
3  *
4  * This software is published under the terms of the Spice
5  * Software License version 1.1, a copy of which has been included
6  * with this distribution in the LICENSE.txt file.
7  */

8 package org.codehaus.loom.xmlpolicy.runtime;
9
10 import java.net.URL JavaDoc;
11 import java.security.CodeSource JavaDoc;
12 import java.security.Permissions JavaDoc;
13 import java.security.AllPermission JavaDoc;
14 import java.security.Policy JavaDoc;
15 import java.security.PermissionCollection JavaDoc;
16 import java.security.Permission JavaDoc;
17 import java.security.cert.Certificate JavaDoc;
18 import java.util.HashMap JavaDoc;
19 import java.util.Enumeration JavaDoc;
20
21 import org.codehaus.loom.xmlpolicy.runtime.DefaultPolicy;
22 import org.codehaus.loom.xmlpolicy.runtime.PolicyEntry;
23
24 import junit.framework.TestCase;
25
26 /**
27  * TestCase for Runtime package.
28  *
29  * @author Peter Donald
30  */

31 public class RuntimeTestCase
32     extends TestCase
33 {
34     public RuntimeTestCase( final String JavaDoc name )
35     {
36         super( name );
37     }
38
39     public void testNullCodeSourceInEntryCtor()
40         throws Exception JavaDoc
41     {
42         try
43         {
44             new PolicyEntry( null, new Permissions JavaDoc() );
45             fail( "Expected to fail due to null pointer in ctor" );
46         }
47         catch( final NullPointerException JavaDoc npe )
48         {
49             assertEquals( "NPE message",
50                           "codeSource",
51                           npe.getMessage() );
52         }
53     }
54
55     public void testNullPermissionsInEntryCtor()
56         throws Exception JavaDoc
57     {
58         try
59         {
60             new PolicyEntry( new CodeSource JavaDoc( new URL JavaDoc( "http://spice.sourveforge.net" ),
61                                              new Certificate JavaDoc[ 0 ] ),
62                              null );
63             fail( "Expected to fail due to null pointer in ctor" );
64         }
65         catch( final NullPointerException JavaDoc npe )
66         {
67             assertEquals( "NPE message",
68                           "permissions",
69                           npe.getMessage() );
70         }
71     }
72
73     public void testEntryCtor()
74         throws Exception JavaDoc
75     {
76         final URL JavaDoc url = new URL JavaDoc( "http://spice.sourveforge.net" );
77         final CodeSource JavaDoc codeSource = new CodeSource JavaDoc( url, new Certificate JavaDoc[ 0 ] );
78         final Permissions JavaDoc permissions = new Permissions JavaDoc();
79         try
80         {
81             final PolicyEntry entry = new PolicyEntry( codeSource, permissions );
82             assertEquals( "Entry.getCodeSource", codeSource, entry.getCodeSource() );
83             assertEquals( "Entry.getPermissions", permissions, entry.getPermissions() );
84         }
85         catch( final Throwable JavaDoc t )
86         {
87             fail( "Expected ctor not to except" );
88         }
89     }
90
91     public void testPolicyAccessPermission()
92         throws Exception JavaDoc
93     {
94         final URL JavaDoc url = new URL JavaDoc( "file:/-" );
95         final CodeSource JavaDoc codeSource = new CodeSource JavaDoc( url, new Certificate JavaDoc[ 0 ] );
96         final AllPermission JavaDoc allPermission = new AllPermission JavaDoc();
97         final HashMap JavaDoc grants = new HashMap JavaDoc();
98         grants.put( codeSource, new Permission JavaDoc[]{allPermission} );
99
100         final Policy JavaDoc policy = new DefaultPolicy( grants );
101         policy.refresh();
102         final PermissionCollection JavaDoc resultPermissions = policy.getPermissions( codeSource );
103         final Enumeration JavaDoc enumeration = resultPermissions.elements();
104         while( enumeration.hasMoreElements() )
105         {
106             final Permission JavaDoc permission = (Permission JavaDoc)enumeration.nextElement();
107             assertEquals( "Permissions for codeSource" + codeSource,
108                           allPermission,
109                           permission );
110             return;
111         }
112         fail( "Expected to find AllPermission in set" );
113     }
114
115     public void testPolicyAccessPermissionNotCovered()
116         throws Exception JavaDoc
117     {
118         final URL JavaDoc url = new URL JavaDoc( "http://spice.sourceforge.net/-" );
119         final CodeSource JavaDoc codeSource = new CodeSource JavaDoc( url, new Certificate JavaDoc[ 0 ] );
120         final AllPermission JavaDoc allPermission = new AllPermission JavaDoc();
121         final HashMap JavaDoc grants = new HashMap JavaDoc();
122         grants.put( codeSource, new Permission JavaDoc[]{allPermission} );
123
124         final Policy JavaDoc policy = new DefaultPolicy( grants );
125         policy.refresh();
126         final PermissionCollection JavaDoc resultPermissions = policy.getPermissions( new CodeSource JavaDoc( null, new Certificate JavaDoc[ 0 ] ) );
127         final Enumeration JavaDoc enumeration = resultPermissions.elements();
128         assertEquals( "Permissions for codeSource" + codeSource,
129                       false, enumeration.hasMoreElements() );
130     }
131
132     public void testPolicyAccessPermissionForNonSpecifiedCodeBase()
133         throws Exception JavaDoc
134     {
135         final Policy JavaDoc policy = new DefaultPolicy();
136         policy.refresh();
137
138         final URL JavaDoc url = new URL JavaDoc( "http://spice.sourceforge.net/-" );
139         final CodeSource JavaDoc codeSource = new CodeSource JavaDoc( url, new Certificate JavaDoc[ 0 ] );
140         final PermissionCollection JavaDoc permissions = policy.getPermissions( codeSource );
141         assertEquals( "Expect no permissions for http://...", false, permissions.elements().hasMoreElements() );
142
143         final CodeSource JavaDoc otherCodeSource = new CodeSource JavaDoc( null, new Certificate JavaDoc[ 0 ] );
144         final PermissionCollection JavaDoc otherPermissions = policy.getPermissions( otherCodeSource );
145         assertEquals( "Expect no permissions for null location", false, otherPermissions.elements().hasMoreElements() );
146     }
147 }
148
Popular Tags