harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From telli...@apache.org
Subject svn commit: r689792 - /harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
Date Thu, 28 Aug 2008 11:56:32 GMT
Author: tellison
Date: Thu Aug 28 04:56:31 2008
New Revision: 689792

URL: http://svn.apache.org/viewvc?rev=689792&view=rev
Log:
Apply patch for HARMONY-5962 ([classlib][support] Fail on UnresolvedPermissionTest and UnresolvedPermissionCollectionTest
with Sun JDK)

Modified:
    harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java

Modified: harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java?rev=689792&r1=689791&r2=689792&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
(original)
+++ harmony/enhanced/classlib/trunk/support/src/test/java/org/apache/harmony/testframework/serialization/SerializationTest.java
Thu Aug 28 04:56:31 2008
@@ -35,9 +35,9 @@
 import java.lang.reflect.Method;
 import java.security.Permission;
 import java.security.PermissionCollection;
-import java.util.Collection;
+import java.security.UnresolvedPermission;
+import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
@@ -292,13 +292,86 @@
             Assert.assertEquals(initPC.isReadOnly(), dserPC.isReadOnly());
 
             // verify collection of permissions
-            Collection<Permission> refCollection = new HashSet<Permission>(
-                    Collections.list(initPC.elements()));
-            Collection<Permission> tstCollection = new HashSet<Permission>(
-                    Collections.list(dserPC.elements()));
+            ArrayList<Permission> refList = Collections.list(initPC.elements());
+            ArrayList<Permission> tstList = Collections.list(dserPC.elements());
+            Assert.assertEquals(refList.size(), refList.size());
+
+            int size = refList.size();
+            if (size > 0) {
+                if (refList.get(0) instanceof UnresolvedPermission) {
+                    boolean found;
+                    UnresolvedPermission refPerm, tstPerm;
+                    for (int i = 0; i < size; i++) {
+                        found = false;
+                        refPerm = (UnresolvedPermission)refList.get(i);
+                        for(int j = 0; j < size; j++){
+                            tstPerm = (UnresolvedPermission)tstList.get(i);
+                            if(equalsUnresolvedPermission(refPerm, tstPerm)){
+                                found = true;
+                                break;
+                            }
+                        }
+                        
+                        Assert.assertTrue(found);
+                    }
+                } else {
+                    Assert.assertEquals(refList, tstList);
+                }
+            }
+        }
+        
+        /*
+         * check whether the given two UnresolvedPermission objects equal to each other
+         */
+        private boolean equalsUnresolvedPermission(UnresolvedPermission up1,
+                UnresolvedPermission up2) {
+            
+            java.security.cert.Certificate[] certs = up1.getUnresolvedCerts();
+            if (certs != null && certs.length == 0) {
+                if(null == up2.getUnresolvedCerts()){
+                    if (up1.getName().equals(up2.getName())){
+                        String up1Name = up1.getUnresolvedName();
+                        String up2Name = up2.getUnresolvedName();
+                        if(up1Name == null ? up2Name == null : up1Name.equals(up2Name)){
+                            String up1Actions = up1.getUnresolvedActions();
+                            String up2Actions = up2.getUnresolvedActions();
+                            return up1Actions == null ? up2Actions == null : up1Actions.equals(up2Actions);
+                        }
+                    }
+                }
+                
+                return false;
+            }
+            
+            return up1.equals(up2);
+            
+        }
+    };
+    
+    /**
+     * Comparator for java.security.UnresolvedPermission objects
+     */
+    public final static SerializableAssert UNRESOLVED_PERMISSION_COMPARATOR = new SerializableAssert()
{
 
-            Assert.assertEquals(refCollection, tstCollection);
+        public void assertDeserialized(Serializable initial,
+                Serializable deserialized) {
+            UnresolvedPermission initPerm = (UnresolvedPermission) initial;
+            UnresolvedPermission dserPerm = (UnresolvedPermission) deserialized;
+            
+            java.security.cert.Certificate[] certs = initPerm.getUnresolvedCerts();
+            if (certs != null && certs.length == 0) {
+                Assert.assertEquals(initPerm.getUnresolvedType(), dserPerm
+                        .getUnresolvedType());
+                Assert.assertEquals(initPerm.getUnresolvedName(), dserPerm
+                        .getUnresolvedName());
+                Assert.assertEquals(initPerm.getUnresolvedActions(), dserPerm
+                        .getUnresolvedActions());
+                Assert.assertNull(dserPerm.getUnresolvedCerts());
+            } else {
+                Assert.assertEquals(initPerm, dserPerm);
+            }
         }
+
     };
 
     /**
@@ -334,6 +407,9 @@
         if (m.getDeclaringClass() != Object.class) {
             // one of classes overrides Object.equals(Object) method
             // use default comparator
+        	if (object instanceof UnresolvedPermission) {
+                return UNRESOLVED_PERMISSION_COMPARATOR;
+            }
             return DEFAULT_COMPARATOR;
         }
 



Mime
View raw message