Author: andrews
Date: 2006-06-28 11:38:12 -0400 (Wed, 28 Jun 2006)
New Revision: 62115

Added:
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/IForeignData.cs
Modified:
   trunk/mcs/class/System.Web/ChangeLog
   trunk/mcs/class/System.Web/System.Web.vmwcsproj
   trunk/mcs/class/System.Web/System.Web_test.dll.sources
   
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/SystemWebTest.vmwcsproj
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseInvoker.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseRequest.cs
   
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseWorkerRequest.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/HandlerInvoker.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHandler.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHost.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.vmwcsproj
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PageInvoker.cs
   
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPage.aspx.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs
   trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Test1.csproj
Log:
copy resources before creating domain so web.config is seen by the runtime; 
serialize WebTest between domains instead of copying field in MyData; add 
UserData property for custom data transfer in tests

Modified: trunk/mcs/class/System.Web/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/ChangeLog        2006-06-28 15:27:08 UTC (rev 
62114)
+++ trunk/mcs/class/System.Web/ChangeLog        2006-06-28 15:38:12 UTC (rev 
62115)
@@ -1,3 +1,7 @@
+2006-06-28  Andrew Skiba <[EMAIL PROTECTED]>
+
+       * System.Web_test.dll.sources: IForeignData.cs for NunitWeb framework
+
 2006-06-28 Vladimir Krasnov <[EMAIL PROTECTED]>
 
        * System.Web_test.dll.sources: added WizardTest.cs

Modified: trunk/mcs/class/System.Web/System.Web.vmwcsproj
===================================================================
--- trunk/mcs/class/System.Web/System.Web.vmwcsproj     2006-06-28 15:27:08 UTC 
(rev 62114)
+++ trunk/mcs/class/System.Web/System.Web.vmwcsproj     2006-06-28 15:38:12 UTC 
(rev 62115)
@@ -854,6 +854,6 @@
                                <File 
RelPath="System.Web.Util\WorkItemCallback.cs" SubType="Code" 
BuildAction="Compile"/>
                        </Include>
                </Files>
-               <UserProperties project.AppServerType="tomcat" 
REFS.JarPath.System.Drawing="..\..\..\..\..\Program Files\Mainsoft\Visual 
MainWin for J2EE\jgac\vmw4j2ee_110\System.Drawing.jar;..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\jai_imageio.jar" 
REFS.JarPath.j2ee.helpers="..\lib\J2EE.Helpers.jar" 
REFS.JarPath.j2se.helpers="..\lib\J2SE.Helpers.jar" project.JDKType="1.5.0_05" 
REFS.JarPath.System="..\..\..\..\..\Program Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\System.jar" REFS.JarPath.j2ee="C:\Program 
Files\Mainsoft\Visual MainWin for 
J2EE\jakarta-tomcat\server\lib\catalina.jar;C:\Program Files\Mainsoft\Visual 
MainWin for J2EE\jakarta-tomcat\common\lib\servlet-api.jar" 
REFS.JarPath.rt="..\lib\rt.jar" 
REFS.JarPath.System.Data="..\..\..\..\..\Program Files\Mainsoft\Visual MainWin 
for J2EE\jgac\vmw4j2ee_110\System.Data.jar" 
REFS.JarPath.vmwutils="..\lib\vmwutils.jar" 
REFS.JarPath.System.Xml="..\..\..\..\..\Program Files\Mainsoft\Visual M
 ainWin for J2EE\jgac\vmw4j2ee_110\System.Xml.jar"/>
+               <UserProperties jarserver="ipa" 
REFS.JarPath.System.Xml="..\..\..\..\..\Program Files\Mainsoft\Visual MainWin 
for J2EE\jgac\vmw4j2ee_110\System.Xml.jar" 
REFS.JarPath.vmwutils="..\lib\vmwutils.jar" 
REFS.JarPath.System.Data="..\..\..\..\..\Program Files\Mainsoft\Visual MainWin 
for J2EE\jgac\vmw4j2ee_110\System.Data.jar" REFS.JarPath.rt="..\lib\rt.jar" 
REFS.JarPath.j2ee="C:\Program Files\Mainsoft\Visual MainWin for 
J2EE\jakarta-tomcat\server\lib\catalina.jar;C:\Program Files\Mainsoft\Visual 
MainWin for J2EE\jakarta-tomcat\common\lib\servlet-api.jar" 
REFS.JarPath.System="..\..\..\..\..\Program Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\System.jar" project.JDKType="1.5.0_05" 
REFS.JarPath.j2se.helpers="..\lib\J2SE.Helpers.jar" 
REFS.JarPath.j2ee.helpers="..\lib\J2EE.Helpers.jar" 
REFS.JarPath.System.Drawing="..\..\..\..\..\Program Files\Mainsoft\Visual 
MainWin for J2EE\jgac\vmw4j2ee_110\System.Drawing.jar;..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\
 jgac\vmw4j2ee_110\jai_imageio.jar" project.AppServerType="tomcat"/>
        </CSHARP>
-       <VisualMainWin><Project Prop2023="1.5.0_05" Prop2024="" Prop2026="" 
Prop2015="" Version="1.7.0" ProjectType="2" ApplicationServerType="tomcat" 
AppServerDefaultName="localhost:8080"/><References/><Configs><Config 
Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="3" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="0" 
Prop2012="-1" Prop2013="yen" Prop2014="8009" Prop2016="" Prop2027="" 
Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" 
Prop2018="-1" Name="Debug_Java"/><Config Prop2000="0" Prop2001="0" Prop2002="0" 
Prop2003="0" Prop2004="0" Prop2005="3" Prop2006="" Prop2007="" Prop2008="" 
Prop2009="" Prop2010="" Prop2011="0" Prop2012="-1" Prop2013="yen" 
Prop2014="8007" Prop2016="" Prop2027="" Prop2019="0" Prop2020="285212672" 
Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="0" 
Name="Release_Java"/><Config Prop2000="1" Prop2001="0" Prop2002="0" 
Prop2003="0" Prop2004="0" Prop2005="0" Prop2006="" Prop2007=""
  Prop2008="" Prop2009="" Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" 
Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" Prop2020="285212672" 
Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="-1" Name="Release"/><Config 
Prop2000="1" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="-1" 
Prop2012="0" Prop2013="" Prop2014="8000" Prop2016="" Prop2027="" Prop2019="-1" 
Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="-1" 
Name="Debug"/></Configs></VisualMainWin></VisualStudioProject>
+       <VisualMainWin><Project Prop2023="1.5.0_05" Prop2024="" Prop2026="" 
Prop2015="" Version="1.7.0" ProjectType="2" ApplicationServerType="tomcat" 
AppServerDefaultName="localhost:8080"/><References/><Configs><Config 
Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="3" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="0" 
Prop2012="-1" Prop2013="yen" Prop2014="8007" Prop2016="" Prop2027="" 
Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" 
Prop2018="0" Name="Release_Java"/><Config Prop2000="0" Prop2001="0" 
Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="3" Prop2006="" Prop2007="" 
Prop2008="" Prop2009="" Prop2010="" Prop2011="0" Prop2012="-1" Prop2013="yen" 
Prop2014="8009" Prop2016="" Prop2027="" Prop2019="0" Prop2020="285212672" 
Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="-1" 
Name="Debug_Java"/><Config Prop2000="1" Prop2001="0" Prop2002="0" Prop2003="0" 
Prop2004="0" Prop2005="0" Prop2006="" Prop2007=""
  Prop2008="" Prop2009="" Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" 
Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" Prop2020="285212672" 
Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="-1" Name="Release"/><Config 
Prop2000="1" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="-1" 
Prop2012="0" Prop2013="" Prop2014="8000" Prop2016="" Prop2027="" Prop2019="-1" 
Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="-1" 
Name="Debug"/></Configs></VisualMainWin></VisualStudioProject>

Modified: trunk/mcs/class/System.Web/System.Web_test.dll.sources
===================================================================
--- trunk/mcs/class/System.Web/System.Web_test.dll.sources      2006-06-28 
15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/System.Web_test.dll.sources      2006-06-28 
15:38:12 UTC (rev 62115)
@@ -18,6 +18,7 @@
 mainsoft/NunitWeb/NunitWeb/BaseRequest.cs
 mainsoft/NunitWeb/NunitWeb/BaseWorkerRequest.cs
 mainsoft/NunitWeb/NunitWeb/FormRequest.cs
+mainsoft/NunitWeb/NunitWeb/IForeignData.cs
 mainsoft/NunitWeb/NunitWeb/HandlerInvoker.cs
 mainsoft/NunitWeb/NunitWeb/MyHandler.cs
 mainsoft/NunitWeb/NunitWeb/MyHost.cs

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/SystemWebTest.vmwcsproj
===================================================================
--- 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/SystemWebTest.vmwcsproj
    2006-06-28 15:27:08 UTC (rev 62114)
+++ 
trunk/mcs/class/System.Web/Test/mainsoft/MainsoftWebTest/SystemWebTest.vmwcsproj
    2006-06-28 15:38:12 UTC (rev 62115)
@@ -90,6 +90,6 @@
                                <Folder 
RelPath="HtmlAgilityPack\.svn\wcprops\"/>
                        </Include>
                </Files>
-               <UserProperties project.JDKType="1.5.0_05" 
REFS.JarPath.rt="..\..\Program Files\Mainsoft\Visual MainWin for 
J2EE\j2sdk1.4\lib\rt.jar" REFS.JarPath.system.xml="..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Xml.jar" 
REFS.JarPath.system.data="..\..\Program Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\System.Data.jar" REFS.JarPath.system="..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.jar" 
REFS.JarPath.nunit.core="..\..\..\..\..\nunit20\core\bin\nunit.core.jar" 
REFS.JarPath.nunit.framework="..\..\..\..\..\nunit20\framework\bin\nunit.framework.jar"
 REFS.JarPath.nunit.util="..\..\..\..\..\nunit20\util\bin\nunit.util.jar"/>
+               <UserProperties jarserver="ipa" 
REFS.JarPath.nunit.util="..\..\..\..\..\nunit20\util\bin\nunit.util.jar" 
REFS.JarPath.nunit.framework="..\..\..\..\..\nunit20\framework\bin\nunit.framework.jar"
 REFS.JarPath.nunit.core="..\..\..\..\..\nunit20\core\bin\nunit.core.jar" 
REFS.JarPath.system="..\..\Program Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\System.jar" REFS.JarPath.system.data="..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Data.jar" 
REFS.JarPath.system.xml="..\..\Program Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\System.Xml.jar" REFS.JarPath.rt="..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\j2sdk1.4\lib\rt.jar" 
project.JDKType="1.5.0_05"/>
        </CSHARP>
-       <VisualMainWin><Project Prop2023="1.5.0_05" Prop2024="" Prop2026="" 
Prop2015="" Version="1.7.0" ProjectType="1"/><References/><Configs><Config 
Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="-e 
http://localhost:80/System_Web_dll -t http://localhost:8080/System_Web_dll -o 
123" Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="-1" Name="Debug_Java"/><Config Prop2000="1" Prop2001="0" 
Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" Prop2006="" Prop2007="" 
Prop2008="" Prop2009="-t http://localhost:8080/System_Web_dll -o 
C:\dev\vladimirk_view2\studio\GH\DevQA\utils\SystemWebTests\bin\dotnet -x" 
Prop2010="" Prop2011="0" Prop2012="-1" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="-1" Name="Debug
 "/><Config Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" 
Prop2005="0" Prop2006="" Prop2007="" Prop2008="" Prop2009="-e 
http://localhost:80/System_Web_dll -t http://localhost:8080/System_Web_dll -o 
123" Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="-1" Name="Debug_Java_NUnit"/><Config Prop2000="0" 
Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" Prop2006="" 
Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="0" Prop2012="0" 
Prop2013="" Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" 
Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="0" 
Name="Release_Java"/></Configs></VisualMainWin></VisualStudioProject>
+       <VisualMainWin><Project Prop2023="1.5.0_05" Prop2024="" Prop2026="" 
Prop2015="" Version="1.7.0" ProjectType="1"/><References/><Configs><Config 
Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="-e 
http://localhost:80/System_Web_dll -t http://localhost:8080/System_Web_dll -o 
123" Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="-1" Name="Debug_Java"/><Config Prop2000="0" Prop2001="0" 
Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" Prop2006="" Prop2007="" 
Prop2008="" Prop2009="" Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" 
Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" Prop2020="285212672" 
Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="0" 
Name="Release_Java"/><Config Prop2000="0" Prop2001="0" Prop2002="0" 
Prop2003="0" Prop2004="0" Prop2005="0" Prop2006="" Prop2007="
 " Prop2008="" Prop2009="-e http://localhost:80/System_Web_dll -t 
http://localhost:8080/System_Web_dll -o 123" Prop2010="" Prop2011="0" 
Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" 
Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="-1" 
Name="Debug_Java_NUnit"/><Config Prop2000="1" Prop2001="0" Prop2002="0" 
Prop2003="0" Prop2004="0" Prop2005="0" Prop2006="" Prop2007="" Prop2008="" 
Prop2009="-t http://localhost:8080/System_Web_dll -o 
C:\dev\vladimirk_view2\studio\GH\DevQA\utils\SystemWebTests\bin\dotnet -x" 
Prop2010="" Prop2011="0" Prop2012="-1" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="-1" 
Name="Debug"/></Configs></VisualMainWin></VisualStudioProject>

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseInvoker.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseInvoker.cs   
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseInvoker.cs   
2006-06-28 15:38:12 UTC (rev 62115)
@@ -4,14 +4,20 @@
 {
        [Serializable]
        public class BaseInvoker
-       {
+       {
+               bool _invokeDone = false;
                public virtual void DoInvoke (object param)
-               {
-                       // Do nothing in BaseInvoker
+               {
+                       _invokeDone = true;
                }
                public virtual string GetDefaultUrl ()
                {
                        return null;
+               }
+               public virtual void CheckInvokeDone ()
+               {
+                       if (!_invokeDone)
+                               throw new Exception ("Invoker was not 
activated");
                }
        }
 }

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseRequest.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseRequest.cs   
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseRequest.cs   
2006-06-28 15:38:12 UTC (rev 62115)
@@ -36,13 +36,13 @@
                /// <summary>
                /// 
                /// </summary>
-               /// <returns>A new HttpWorkerRequest, which must implement also 
IDictionary</returns>
+               /// <returns>A new HttpWorkerRequest, which must implement also 
IForeignData</returns>
                /// 
                public virtual HttpWorkerRequest CreateWorkerRequest ()
                {
                        StringWriter wr = new StringWriter ();
                        BaseWorkerRequest br = CreateBaseWorkerRequest (wr);
-                       ((IDictionary) br) [GetType ()] = wr;
+                       ((IForeignData) br) [GetType ()] = wr;
                        return br;
                }
 
@@ -64,10 +64,10 @@
                /// <returns></returns>
                public virtual Response ExtractResponse (HttpWorkerRequest 
request)
                {
-                       BaseWorkerRequest br = (BaseWorkerRequest) request;
-                       IDictionary d = (IDictionary) br;
+                       BaseWorkerRequest br = (BaseWorkerRequest) request;
+                       IForeignData d = (IForeignData) br;
                        TextWriter wr = (TextWriter) d[GetType ()];
-                       d.Remove (GetType ());
+                       d[GetType ()] = null;
                        wr.Close ();
                        Response r = new Response ();
                        r.Body = wr.ToString ();

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseWorkerRequest.cs
===================================================================
--- 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseWorkerRequest.cs 
    2006-06-28 15:27:08 UTC (rev 62114)
+++ 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/BaseWorkerRequest.cs 
    2006-06-28 15:38:12 UTC (rev 62115)
@@ -3,10 +3,11 @@
 using System.Web.Hosting;
 using System.IO;
 using System.Collections;
+using System.Reflection;
 
 namespace MonoTests.SystemWeb.Framework
 {
-       public class BaseWorkerRequest : SimpleWorkerRequest, IDictionary
+       public class BaseWorkerRequest : SimpleWorkerRequest, IForeignData
        {
                string _userAgent;
                public BaseWorkerRequest (string page, string query, TextWriter 
writer, string userAgent)
@@ -23,91 +24,15 @@
                        return base.GetKnownRequestHeader (index);
                }
 
-
-               Hashtable data = new Hashtable ();
-               #region IDictionary Members
-
-               void IDictionary.Add (object key, object value)
-               {
-                       data.Add (key, value);
-               }
-
-               void IDictionary.Clear ()
-               {
-                       data.Clear ();
-               }
-
-               bool IDictionary.Contains (object key)
-               {
-                       return data.Contains (key);
-               }
-
-               IDictionaryEnumerator IDictionary.GetEnumerator ()
-               {
-                       return data.GetEnumerator ();
-               }
-
-               bool IDictionary.IsFixedSize
-               {
-                       get { return data.IsFixedSize; }
-               }
-
-               bool IDictionary.IsReadOnly
-               {
-                       get { return data.IsReadOnly; }
-               }
-
-               ICollection IDictionary.Keys
-               {
-                       get { return data.Keys; }
-               }
-
-               void IDictionary.Remove (object key)
-               {
-                       data.Remove (key);
-               }
-
-               ICollection IDictionary.Values
-               {
-                       get { return data.Values; }
-               }
-
-               object IDictionary.this[object key]
-               {
-                       get
-                       {
-                               return data[key];
+               Hashtable foreignData = new Hashtable ();
+               object IForeignData.this [Type type] {
+                       get {return foreignData[type];}
+                       set {
+                               if (value == null)
+                                       foreignData.Remove (type);
+                               else
+                                       foreignData[type] = value;
                        }
-                       set
-                       {
-                               data[key] = value;
-                       }
                }
-
-               void ICollection.CopyTo (Array array, int index)
-               {
-                       data.CopyTo (array, index);
-               }
-
-               int ICollection.Count
-               {
-                       get { return data.Count; }
-               }
-
-               bool ICollection.IsSynchronized
-               {
-                       get { return data.IsSynchronized; }
-               }
-
-               object ICollection.SyncRoot
-               {
-                       get { return data.SyncRoot; }
-               }
-
-               IEnumerator IEnumerable.GetEnumerator ()
-               {
-                       return data.GetEnumerator ();
-               }
-               #endregion
        }
 }

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/HandlerInvoker.cs
===================================================================
--- 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/HandlerInvoker.cs    
    2006-06-28 15:27:08 UTC (rev 62114)
+++ 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/HandlerInvoker.cs    
    2006-06-28 15:38:12 UTC (rev 62115)
@@ -15,7 +15,8 @@
                }
 
                public override void DoInvoke (object param)
-               {
+               {
+                       base.DoInvoke (param);
                        callback ();
                }
        }

Added: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/IForeignData.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/IForeignData.cs  
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/IForeignData.cs  
2006-06-28 15:38:12 UTC (rev 62115)
@@ -0,0 +1,16 @@
+using System;
+using System.Reflection;
+
+namespace MonoTests.SystemWeb.Framework {
+       /// <summary>
+       /// Summary description for IForeignData.
+       /// </summary>
+       public interface IForeignData
+       {
+               object this [Type type]
+               {
+                       get;
+                       set;
+               }
+       }
+}

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHandler.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHandler.cs     
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHandler.cs     
2006-06-28 15:38:12 UTC (rev 62115)
@@ -12,7 +12,7 @@
 
                public void ProcessRequest (HttpContext context)
                {
-                       WebTest.Invoke (null);
+                       WebTest.CurrentTest.Invoke (null);
                }
        }
 }

Modified: trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHost.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHost.cs        
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/MyHost.cs        
2006-06-28 15:38:12 UTC (rev 62115)
@@ -19,52 +19,30 @@
                #region MyData
                class MyData
                {
-                       public BaseInvoker invoker;
+                       public WebTest currentTest;
                        public Exception exception;
-                       public bool invoked;
                }
                #endregion
                
                public AppDomain AppDomain
                { get { return AppDomain.CurrentDomain; } }
                
-               public Response Run (BaseInvoker invoker, BaseRequest request)
+               public WebTest Run (WebTest t)
                {
-                       HttpWorkerRequest wr = request.CreateWorkerRequest ();
-                       IDictionary d = (IDictionary) wr;
-
-                       MyData data = new MyData ();
-                       data.invoker = invoker;
+                       HttpWorkerRequest wr = t.Request.CreateWorkerRequest ();
+                       MyData data = GetMyData (wr);
+                       data.currentTest = t;
                        data.exception = null;
-                       data.invoked = false;
-                       d[GetType ()] = data;
 
                        HttpRuntime.ProcessRequest (wr);
-                       Response res = request.ExtractResponse (wr);
-
+                       t.Response = t.Request.ExtractResponse (wr);
+                       
                        if (data.exception != null)
                                RethrowException (data.exception);
 
-                       if (!data.invoked)
-                               throw new Exception ("internal error: 
ProcessRequest did not reach WebTest.Invoke; response was: " + res.Body);
-
-                       return res;
+                       return t;
                }
 
-               public void Invoke (object param)
-               {
-                       HttpWorkerRequest wr = GetMyWorkerRequest 
(HttpContext.Current);
-                       MyData data = (MyData) ((IDictionary) wr)[GetType ()];
-                       data.invoked = true;
-                       try {
-                                data.invoker.DoInvoke (param);
-                       }
-                       catch (Exception ex) {
-                               data.exception = ex;
-                               throw;
-                       }
-               }
-
                private static void RethrowException (Exception inner)
                {
                        Exception outer;
@@ -78,10 +56,37 @@
                        throw outer;
                }
 
-               private static HttpWorkerRequest GetMyWorkerRequest 
(HttpContext c)
+               private static HttpWorkerRequest GetMyWorkerRequest ()
                {
-                       IServiceProvider isp = (IServiceProvider) c;
+                       IServiceProvider isp = HttpContext.Current as 
IServiceProvider;
+                       if (isp == null)
+                               return null;
                        return (HttpWorkerRequest) (isp.GetService (typeof 
(HttpWorkerRequest)));
                }
+
+               private static MyData GetMyData (HttpWorkerRequest wr)
+               {
+                       IForeignData fd = (IForeignData) wr;
+                       MyData d = (MyData) fd[typeof (MyHost)];
+                       if (d == null) {
+                               d = new MyData ();
+                               fd[typeof (MyHost)] = d;
+                       }
+                       return d;
+               }
+
+               public static WebTest GetCurrentTest ()
+               {
+                       HttpWorkerRequest hwr = GetMyWorkerRequest ();
+                       if (hwr == null)
+                               return null;
+                       return GetMyData (hwr).currentTest;
+               }
+
+               public void RegisterException (Exception ex)
+               {
+                       MyData data = GetMyData (GetMyWorkerRequest());
+                       data.exception = ex;
+               }
        }
 }

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj  
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.csproj  
2006-06-28 15:38:12 UTC (rev 62115)
@@ -41,6 +41,7 @@
     <Compile Include="BaseRequest.cs" />
     <Compile Include="FormRequest.cs" />
     <Compile Include="HandlerInvoker.cs" />
+    <Compile Include="IForeignData.cs" />
     <Compile Include="MyHandler.cs" />
     <Compile Include="BaseWorkerRequest.cs">
       <SubType>Code</SubType>

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.vmwcsproj
===================================================================
--- 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.vmwcsproj   
    2006-06-28 15:27:08 UTC (rev 62114)
+++ 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/NunitWeb.vmwcsproj   
    2006-06-28 15:38:12 UTC (rev 62115)
@@ -1,36 +1,45 @@
-<VisualStudioProject>
-       <CSHARP ProjectType="Local" ProductVersion="7.10.3077" 
SchemaVersion="2.0" ProjectGuid="{FF626FD2-4102-47D9-861A-13C3F65DD627}">
-               <Build>
-                       <Settings ApplicationIcon="" 
AssemblyKeyContainerName="" AssemblyName="NunitWeb" 
AssemblyOriginatorKeyFile="" DefaultClientScript="JScript" 
DefaultHTMLPageLayout="Grid" DefaultTargetSchema="IE50" DelaySign="false" 
OutputType="Library" PreBuildEvent="" PostBuildEvent="" 
RootNamespace="NunitWeb" RunPostBuildEvent="OnBuildSuccess" StartupObject="">
-                               <Config Name="Debug_Java" 
AllowUnsafeBlocks="false" BaseAddress="285212672" 
CheckForOverflowUnderflow="false" ConfigurationOverrideFile="" 
DefineConstants="DEBUG;TRACE;JAVA" DocumentationFile="" DebugSymbols="true" 
FileAlignment="4096" IncrementalBuild="false" NoStdLib="false" NoWarn="1595" 
Optimize="false" OutputPath="bin\Debug_Java\" RegisterForComInterop="false" 
RemoveIntegerChecks="false" TreatWarningsAsErrors="false" WarningLevel="4"/>
-                               <Config Name="Release_Java" 
AllowUnsafeBlocks="false" BaseAddress="285212672" 
CheckForOverflowUnderflow="false" ConfigurationOverrideFile="" 
DefineConstants="TRACE;JAVA" DocumentationFile="" DebugSymbols="false" 
FileAlignment="4096" IncrementalBuild="false" NoStdLib="false" NoWarn="1595" 
Optimize="true" OutputPath="bin\Release_Java\" RegisterForComInterop="false" 
RemoveIntegerChecks="false" TreatWarningsAsErrors="false" WarningLevel="4"/>
-                       </Settings>
-                       <References>
-                               <Reference Name="System" AssemblyName="System" 
HintPath="..\..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"/>
-                               <Reference Name="rt" AssemblyName="rt" 
HintPath="..\..\..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual MainWin 
for J2EE\jgac\jre5\rt.dll" Private="False"/>
-                               <Reference Name="System.Web" 
AssemblyName="System.Web" 
HintPath="..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Web.dll"/>
-                               <Reference Name="System.Drawing" 
AssemblyName="System.Drawing" 
HintPath="..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"/>
-                       </References>
-               </Build>
-               <Files>
-                       <Include>
-                               <File RelPath="BaseInvoker.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="BaseRequest.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="BaseWorkerRequest.cs" 
SubType="Code" BuildAction="Compile"/>
-                               <File RelPath="HandlerInvoker.cs" 
SubType="Code" BuildAction="Compile"/>
-                               <File RelPath="MyHandler.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="MyHost.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="PageDelegates.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="PageInvoker.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="StandardUrl.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="WebTest.cs" SubType="Code" 
BuildAction="Compile"/>
-                               <File RelPath="Resources\My.master" 
BuildAction="EmbeddedResource"/>
-                               <File RelPath="Resources\MyPage.aspx" 
BuildAction="EmbeddedResource"/>
-                               <File RelPath="Resources\MyPage.aspx.cs" 
DependentUpon="MyPage.aspx" SubType="ASPXCodeBehind" 
BuildAction="EmbeddedResource"/>
-                               <File RelPath="Resources\MyPageWithMaster.aspx" 
BuildAction="EmbeddedResource"/>
-                               <File RelPath="Resources\Web.config" 
BuildAction="EmbeddedResource"/>
-                       </Include>
-               </Files>
-               <UserProperties jarserver="ipa" project.JDKType="1.5.0_05" 
REFS.JarPath.rt="..\..\..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual 
MainWin for J2EE\jre5\lib\rt.jar" 
REFS.JarPath.system="..\..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.jar" 
REFS.JarPath.system.web="..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Web.jar" 
REFS.JarPath.system.drawing="..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\System.Drawing.jar;..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\jai_imageio.jar;..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\jai_core.jar;..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for 
J2EE\jgac\vmw4j2ee_110\jai_codec.jar;..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\clibw
 rapper_jiio.jar;..\..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual 
MainWin for J2EE\jgac\vmw4j2ee_110\mlibwrapper_jai.jar"/>
-       </CSHARP>
-       <VisualMainWin><Project Prop2023="1.5.0_05" Prop2024="" Prop2026="" 
Prop2015="" Version="1.7.0" ProjectType="1"/><References/><Configs><Config 
Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="0" 
Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" 
Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="0" 
Name="Debug_Java"/><Config Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" 
Prop2004="0" Prop2005="0" Prop2006="" Prop2007="" Prop2008="" Prop2009="" 
Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="0" 
Name="Release_Java"/></Configs></VisualMainWin></VisualStudioProject>
+<VisualStudioProject>
+       <CSHARP ProjectType="Local" ProductVersion="7.10.3077" 
SchemaVersion="2.0" ProjectGuid="{FF626FD2-4102-47D9-861A-13C3F65DD627}">
+               <Build>
+                       <Settings ApplicationIcon="" 
AssemblyKeyContainerName="" AssemblyName="NunitWeb" 
AssemblyOriginatorKeyFile="" DefaultClientScript="JScript" 
DefaultHTMLPageLayout="Grid" DefaultTargetSchema="IE50" DelaySign="false" 
OutputType="Library" PreBuildEvent="" PostBuildEvent="" 
RootNamespace="NunitWeb" RunPostBuildEvent="OnBuildSuccess" StartupObject="">
+                               <Config Name="Debug_Java" 
AllowUnsafeBlocks="false" BaseAddress="285212672" 
CheckForOverflowUnderflow="false" ConfigurationOverrideFile="" 
DefineConstants="DEBUG;TRACE;TARGET_JVM" DocumentationFile="" 
DebugSymbols="true" FileAlignment="4096" IncrementalBuild="false" 
NoStdLib="false" NoWarn="1595" Optimize="false" OutputPath="bin\Debug_Java\" 
RegisterForComInterop="false" RemoveIntegerChecks="false" 
TreatWarningsAsErrors="false" WarningLevel="4"/>
+                               <Config Name="Release_Java" 
AllowUnsafeBlocks="false" BaseAddress="285212672" 
CheckForOverflowUnderflow="false" ConfigurationOverrideFile="" 
DefineConstants="TRACE;JAVA" DocumentationFile="" DebugSymbols="false" 
FileAlignment="4096" IncrementalBuild="false" NoStdLib="false" NoWarn="1595" 
Optimize="true" OutputPath="bin\Release_Java\" RegisterForComInterop="false" 
RemoveIntegerChecks="false" TreatWarningsAsErrors="false" WarningLevel="4"/>
+                       </Settings>
+                       <References>
+                               <Reference Name="System" AssemblyName="System" 
HintPath="..\..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"/>
+                               <Reference Name="rt" AssemblyName="rt" 
HintPath="..\..\..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual MainWin 
for J2EE\jgac\jre5\rt.dll" Private="False"/>
+                               <Reference Name="System.Xml" 
AssemblyName="System.Xml" 
HintPath="..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Xml.dll"
 Private="False"/>
+                               <Reference Name="SystemWebTest" 
Project="{3FB09545-9389-4F42-B80D-4855A2FA5B5C}" 
Package="{83B010C7-76FC-4FAD-A26C-00D7EFE60256}"/>
+                               <Reference Name="System.Web" 
Project="{FBDAB5E6-450A-4149-AC1C-5AC3E4908FCE}" 
Package="{83B010C7-76FC-4FAD-A26C-00D7EFE60256}"/>
+                               <Reference Name="System.Data" 
AssemblyName="System.Data" 
HintPath="..\..\..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"/>
+                       </References>
+               </Build>
+               <Files>
+                       <Include>
+                               <File RelPath="BaseControl.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="BaseControlCollection.cs" 
SubType="Code" BuildAction="Compile"/>
+                               <File RelPath="BaseInvoker.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="BaseRequest.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="BaseWorkerRequest.cs" 
SubType="Code" BuildAction="Compile"/>
+                               <File RelPath="FormRequest.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="HandlerInvoker.cs" 
SubType="Code" BuildAction="Compile"/>
+                               <File RelPath="IForeignData.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="MyHandler.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="MyHost.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="PageDelegates.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="PageInvoker.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="PostableRequest.cs" 
SubType="Code" BuildAction="Compile"/>
+                               <File RelPath="PostableWorkerRequest.cs" 
SubType="Code" BuildAction="Compile"/>
+                               <File RelPath="Response.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="StandardUrl.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="WebTest.cs" SubType="Code" 
BuildAction="Compile"/>
+                               <File RelPath="Resources\My.master" 
BuildAction="EmbeddedResource"/>
+                               <File RelPath="Resources\MyPage.aspx" 
BuildAction="EmbeddedResource"/>
+                               <File RelPath="Resources\MyPage.aspx.cs" 
DependentUpon="MyPage.aspx" SubType="ASPXCodeBehind" 
BuildAction="EmbeddedResource"/>
+                               <File RelPath="Resources\MyPageWithMaster.aspx" 
BuildAction="EmbeddedResource"/>
+                               <File RelPath="Resources\Web.config" 
BuildAction="EmbeddedResource"/>
+                       </Include>
+               </Files>
+               <UserProperties 
REFS.JarPath.system.data="..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Data.jar" 
REFS.JarPath.system.xml="..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Xml.jar" 
REFS.JarPath.system="..\..\..\..\..\..\..\..\..\..\Program 
Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.jar" 
REFS.JarPath.rt="..\..\..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual 
MainWin for J2EE\jre5\lib\rt.jar" project.JDKType="1.5.0_05" jarserver="ipa"/>
+       </CSHARP>
+       <VisualMainWin><Project Prop2023="1.5.0_05" Prop2024="" Prop2026="" 
Prop2015="" Version="1.7.0" ProjectType="1"/><References/><Configs><Config 
Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" Prop2004="0" Prop2005="0" 
Prop2006="" Prop2007="" Prop2008="" Prop2009="" Prop2010="" Prop2011="0" 
Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" Prop2027="" Prop2019="0" 
Prop2020="285212672" Prop2021="4096" Prop2022="0" Prop2017="0" Prop2018="0" 
Name="Debug_Java"/><Config Prop2000="0" Prop2001="0" Prop2002="0" Prop2003="0" 
Prop2004="0" Prop2005="0" Prop2006="" Prop2007="" Prop2008="" Prop2009="" 
Prop2010="" Prop2011="0" Prop2012="0" Prop2013="" Prop2014="0" Prop2016="" 
Prop2027="" Prop2019="0" Prop2020="285212672" Prop2021="4096" Prop2022="0" 
Prop2017="0" Prop2018="0" 
Name="Release_Java"/></Configs></VisualMainWin></VisualStudioProject>

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PageInvoker.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PageInvoker.cs   
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/PageInvoker.cs   
2006-06-28 15:38:12 UTC (rev 62115)
@@ -38,7 +38,8 @@
                Page _page;
 
                public override void DoInvoke (object param)
-               {
+               {
+                       base.DoInvoke (param);
                        _page = (Page) param;
 #if BUG_78521_FIXED
                                _page.PreInit += OnPreInit;

Modified: 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPage.aspx.cs
===================================================================
--- 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPage.aspx.cs
 2006-06-28 15:27:08 UTC (rev 62114)
+++ 
trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/MyPage.aspx.cs
 2006-06-28 15:38:12 UTC (rev 62115)
@@ -10,7 +10,7 @@
        protected override void OnPreInit (EventArgs e)
 #endif
        {
-               MonoTests.SystemWeb.Framework.WebTest.Invoke (this);
+               MonoTests.SystemWeb.Framework.WebTest.CurrentTest.Invoke (this);
        }
                
        public override void VerifyRenderingInServerForm (Control c)

Modified: trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs       
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs       
2006-06-28 15:38:12 UTC (rev 62115)
@@ -5,14 +5,23 @@
 
 namespace MonoTests.SystemWeb.Framework
 {
+       [Serializable]
        public class WebTest
        {
+               object _userData;
+               public object UserData
+               {
+                       get { return _userData; }
+                       set { _userData = value; }
+               }
+
                Response _response;
                public Response Response
                {
                        get { return _response; }
-               }
-
+                       set { _response = value; }
+               }
+
                BaseInvoker _invoker;
                public BaseInvoker Invoker
                {
@@ -35,35 +44,57 @@
                                        return host;
                                host = AppDomain.CurrentDomain.GetData 
(HOST_INSTANCE_NAME) as MyHost;
                                if (host != null)
-                                       return host;
+                                       return host;
+                               host = new MyHost (); //Fake instance to make 
EnsureHosting happy
                                host = CreateHosting ();
-                               CopyResources ();
                                return host;
                        }
                }
 
                public string Run ()
-               {
+               {
                        if (Request.Url == null)
                                Request.Url = Invoker.GetDefaultUrl ();
-                       _response = Host.Run (Invoker, Request);
+                       WebTest newTestInstance = Host.Run (this);
+                       CopyFrom (newTestInstance);
                        return _response.Body;
+               }
+
+               private void CopyFrom (WebTest newTestInstance)
+               {
+                       this._invoker = newTestInstance._invoker;
+                       this._request = newTestInstance._request;
+                       this._response = newTestInstance._response;
+                       this._userData = newTestInstance._userData;
+               }
+
+               public static WebTest CurrentTest
+               {
+                       get { return MyHost.GetCurrentTest (); }
                }
 
-               public static void Invoke (object param)
-               {
-                       Host.Invoke (param);
+               public void Invoke (object param)
+               {
+                       try {
+                               Invoker.DoInvoke (param);
+                       }
+                       catch (Exception ex) {
+                               Host.RegisterException (ex);
+                               throw;
+                       }
                }
 
                public static void Unload ()
                {
                        if (host == null)
-                               return;
-#if !TARGET_JVM
-                       AppDomain.Unload (Host.AppDomain);
-                       AppDomain.CurrentDomain.SetData (HOST_INSTANCE_NAME, 
null);
+                               return;
+
+                       AppDomain oldDomain = host.AppDomain;
+                       host = null;
+#if !TARGET_JVM
+                       AppDomain.CurrentDomain.SetData (HOST_INSTANCE_NAME, 
null);
+                       AppDomain.Unload (oldDomain);
 #endif
-                       host = null;
                        Directory.Delete (baseDir, true);
                }
 
@@ -183,12 +214,13 @@
                                LoadAssemblyRecursive (ass);
 
                        foreach (Assembly ass in 
AppDomain.CurrentDomain.GetAssemblies ())
-                               CopyAssembly (ass, binDir);
-
+                               CopyAssembly (ass, binDir);
+
+                       CopyResources ();
                        MyHost host = (MyHost) 
ApplicationHost.CreateApplicationHost (typeof (MyHost), VIRTUAL_BASE_DIR, 
baseDir);
 #else
                        host = new MyHost ();
-#endif
+#endif
                        AppDomain.CurrentDomain.SetData (HOST_INSTANCE_NAME, 
host);
                        host.AppDomain.SetData (HOST_INSTANCE_NAME, host);
                        return host;

Modified: trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Test1.csproj
===================================================================
--- trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Test1.csproj        
2006-06-28 15:27:08 UTC (rev 62114)
+++ trunk/mcs/class/System.Web/Test/mainsoft/NunitWeb/Test1/Test1.csproj        
2006-06-28 15:38:12 UTC (rev 62115)
@@ -73,9 +73,6 @@
       <Link>Resources\Web.sitemap</Link>
     </EmbeddedResource>
   </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Resources\Postback.aspx" />
-  </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets 
below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to