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.Serializable;
021: import java.security.AllPermission;
022: import java.security.SecurityPermission;
023: import java.security.UnresolvedPermission;
024:
025: import org.apache.harmony.testframework.serialization.SerializationTest;
026: import org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
027:
028: import tests.util.SerializationTester;
029:
030: import junit.framework.TestCase;
031:
032: /**
033: * Tests for <code>UnresolvedPermission</code> class fields and methods
034: *
035: */
036:
037: public class UnresolvedPermissionTest extends TestCase {
038:
039: /**
040: * Creates an Object with given name, type, action, certificates.
041: * Empty or null type is not allowed - exception should be thrown.
042: */
043: public void testCtor() {
044: String type = "laskjhlsdk 2345346";
045: String name = "^%#UHVKU^%V 887y";
046: String action = "JHB ^%(*&T klj3h4";
047: UnresolvedPermission up = new UnresolvedPermission(type, name,
048: action, null);
049: assertEquals(type, up.getName());
050: assertEquals("", up.getActions());
051: assertEquals("(unresolved " + type + " " + name + " " + action
052: + ")", up.toString());
053:
054: up = new UnresolvedPermission(type, null, null, null);
055: assertEquals(type, up.getName());
056: assertEquals("", up.getActions());
057: assertEquals("(unresolved " + type + " null null)", up
058: .toString());
059:
060: up = new UnresolvedPermission(type, "", "",
061: new java.security.cert.Certificate[0]);
062: assertEquals(type, up.getName());
063: assertEquals("", up.getActions());
064: assertEquals("(unresolved " + type + " )", up.toString());
065:
066: try {
067: new UnresolvedPermission(null, name, action, null);
068: fail("No expected NullPointerException");
069: } catch (NullPointerException ok) {
070: }
071:
072: //Regression for HARMONY-733
073: up = new UnresolvedPermission("", "name", "action", null);
074: assertEquals("", up.getName());
075: }
076:
077: /**
078: * UnresolvedPermission never implies any other permission.
079: */
080: public void testImplies() {
081: UnresolvedPermission up = new UnresolvedPermission(
082: "java.security.SecurityPermission", "a.b.c", null, null);
083: assertFalse(up.implies(up));
084: assertFalse(up.implies(new AllPermission()));
085: assertFalse(up.implies(new SecurityPermission("a.b.c")));
086: }
087:
088: public void testSerialization() throws Exception {
089: UnresolvedPermission up = new UnresolvedPermission(
090: "java.security.SecurityPermission", "a.b.c", "actions",
091: null);
092: assertEquals("java.security.SecurityPermission", up
093: .getUnresolvedType());
094: assertEquals("a.b.c", up.getUnresolvedName());
095: assertEquals("actions", up.getUnresolvedActions());
096: assertNull(up.getUnresolvedCerts());
097:
098: UnresolvedPermission deserializedUp = (UnresolvedPermission) SerializationTester
099: .getDeserilizedObject(up);
100: assertEquals("java.security.SecurityPermission", deserializedUp
101: .getUnresolvedType());
102: assertEquals("a.b.c", deserializedUp.getUnresolvedName());
103: assertEquals("actions", deserializedUp.getUnresolvedActions());
104: assertNull(deserializedUp.getUnresolvedCerts());
105: }
106:
107: public void testSerialization_Compatibility() throws Exception {
108: UnresolvedPermission up = new UnresolvedPermission(
109: "java.security.SecurityPermission", "a.b.c", "actions",
110: null);
111: assertEquals("java.security.SecurityPermission", up
112: .getUnresolvedType());
113: assertEquals("a.b.c", up.getUnresolvedName());
114: assertEquals("actions", up.getUnresolvedActions());
115: assertNull(up.getUnresolvedCerts());
116:
117: SerializationTest.verifyGolden(this , up,
118: new SerializableAssert() {
119: public void assertDeserialized(Serializable orig,
120: Serializable ser) {
121: UnresolvedPermission deserializedUp = (UnresolvedPermission) ser;
122: assertEquals(
123: "java.security.SecurityPermission",
124: deserializedUp.getUnresolvedType());
125: assertEquals("a.b.c", deserializedUp
126: .getUnresolvedName());
127: assertEquals("actions", deserializedUp
128: .getUnresolvedActions());
129: assertNull(deserializedUp.getUnresolvedCerts());
130: }
131: });
132: }
133: }
|