You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by di...@apache.org on 2011/05/04 00:06:26 UTC

[Lucene.Net] svn commit: r1099279 - in /incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core: PartiallyTrustedAppDomain.cs TestSupportClass.cs

Author: digy
Date: Tue May  3 22:06:25 2011
New Revision: 1099279

URL: http://svn.apache.org/viewvc?rev=1099279&view=rev
Log:
[LUCENENET-412] [LUCENENET-413] 
Lucene.Net 2.9.4g
Test cases for "Medium trust security issue"

Modified:
    incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/PartiallyTrustedAppDomain.cs
    incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/TestSupportClass.cs

Modified: incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/PartiallyTrustedAppDomain.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/PartiallyTrustedAppDomain.cs?rev=1099279&r1=1099278&r2=1099279&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/PartiallyTrustedAppDomain.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/PartiallyTrustedAppDomain.cs Tue May  3 22:06:25 2011
@@ -38,7 +38,7 @@ namespace Lucene.Net.Test
         /// <param name="methodName">method to invoke</param>
         /// <param name="constructorArgs">constructor's parameters</param>
         /// <param name="methodArgs">method's parameters</param>
-        public static void Run(Type clazz, string methodName, object[] constructorArgs, object[] methodArgs)
+        public static object Run(Type clazz, string methodName, object[] constructorArgs, object[] methodArgs)
         {
             try
             {
@@ -49,8 +49,8 @@ namespace Lucene.Net.Test
                 permissions.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess));
 
                 AppDomain appDomain = AppDomain.CreateDomain("PartiallyTrustedAppDomain", null, setup, permissions);
-
-                object p = appDomain.CreateInstanceAndUnwrap(
+                                
+                object obj = appDomain.CreateInstanceAndUnwrap(
                     clazz.Assembly.FullName,
                     clazz.FullName,
                     false,
@@ -59,7 +59,9 @@ namespace Lucene.Net.Test
                     constructorArgs,
                     System.Globalization.CultureInfo.CurrentCulture,
                     null);
-                p.GetType().InvokeMember(methodName, BindingFlags.InvokeMethod, null, p, methodArgs);
+                
+                object ret =  clazz.InvokeMember(methodName, BindingFlags.InvokeMethod, null, obj, methodArgs);
+                return ret;
             }
             catch (TypeLoadException tlex)
             {

Modified: incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/TestSupportClass.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/TestSupportClass.cs?rev=1099279&r1=1099278&r2=1099279&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/TestSupportClass.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net_2_9_4g/test/core/TestSupportClass.cs Tue May  3 22:06:25 2011
@@ -1206,6 +1206,85 @@ namespace Lucene.Net._SupportClass
         }
     }
 
+    [TestFixture]
+    [Serializable]
+    public class TestMediumTrust
+    {
+        [Test]
+        public void Test_Index_Term()
+        {
+            //invoke any method
+            Assert.AreEqual("field:text",Lucene.Net.Test.PartiallyTrustedAppDomain.Run(typeof(Lucene.Net.Index.Term), "ToString", new object[] { "field", "text" }, null));
+        }
+
+
+
+        [Test]
+        public void Test_Search_NumericRangeQuery()
+        {
+            //invoking this static method is enough
+            Lucene.Net.Test.PartiallyTrustedAppDomain.Run(this.GetType(), "CreateNumericRangeQuery", null, null);
+        }
+
+        public NumericRangeQuery CreateNumericRangeQuery()
+        {
+            return NumericRangeQuery.NewIntRange("field", 0, 10, true, true);
+        }
+
+
+
+        [Test]
+        public void Test_Search_SortField()
+        {
+            //invoke any method
+            Lucene.Net.Test.PartiallyTrustedAppDomain.Run(typeof(Lucene.Net.Search.SortField), "GetUseLegacySearch", new object[]{"field"}, null);
+        }
+
+
+
+        [Test]
+        public void Test_Util_Parameter()
+        {
+            //invoke any method
+            Assert.AreEqual("sometext", Lucene.Net.Test.PartiallyTrustedAppDomain.Run(typeof(PARAM), "ToString", new object[] { "sometext" }, null));
+        }
+        
+        [Serializable]
+        public class PARAM : Lucene.Net.Util.Parameter
+        {
+            public PARAM(string field) : base(field)
+            {
+            }
+        }
+
+        [Test]
+        public void TestThisTest()
+        {
+            try
+            {
+                Lucene.Net.Test.PartiallyTrustedAppDomain.Run(typeof(TestDummyClass), "DummyMethod", null, null);
+                Assert.Fail("This call must fail");
+            }
+            catch(TypeLoadException)
+            {
+            }
+        }
+
+        public class TestDummyClass: System.Runtime.Serialization.IObjectReference
+        {
+            public void DummyMethod()
+            {
+            }
+
+            public object GetRealObject(System.Runtime.Serialization.StreamingContext context)
+            {
+                return this;
+            }
+        }
+
+        
+    }
+
 }