Hello Joel,
In general, System.Web nunit tests should be put under:
System.Web/Test/relevant namespace/relevant class test fixture.
Specifically, in case of MasterPage, you should add your test to:
System.Web/Test/System.Web.UI.WebControls/MasterPageTest.cs.
Tal Klar
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of joel reed
Sent: Friday, September 15, 2006 9:05 PM
To: mono-devel-list@lists.ximian.com
Subject: Re: [Mono-dev] MasterType directive on Master Pages
Ok, version 2 of the patch. Previously I was only compiling with
PROFILE=net_2_0. Now it compiles for 1.1 and 2.0 profiles.
jr
joel reed wrote:
Mono (as of 9/14/06 snapshots) doesn't currently support the
MasterType
directive on Master Pages, although it does support it on regular
pages.
MS supports it both places.
Please find attached a patch which implements support for this
directive
for master pages as well. I've only submitted minor bug fixes to mono
before, so any feedback you can offer is appreciated.
I will add a testcase as needed. Which directory should I put it in?
System.Web/Test/mainsoft?
jr
diff --git
a/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
b/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
index 89c8adf..07cc5c8 100644
--- a/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
@@ -225,7 +225,7 @@ namespace System.Web.Compilation
return new UserControlCompiler
((UserControlParser) tparser);
#if NET_2_0
if (type == typeof(MasterPageParser))
- return new UserControlCompiler
((UserControlParser) tparser);
+ return new MasterPageCompiler
((MasterPageParser) tparser);
#endif
throw new Exception (Got type: + type);
diff --git
a/mcs/class/System.Web/System.Web.Compilation/MasterPageCompiler.cs
b/mcs/class/System.Web/System.Web.Compilation/MasterPageCompiler.cs
new file mode 100644
index 000..02ad8c3
--- /dev/null
+++
b/mcs/class/System.Web/System.Web.Compilation/MasterPageCompiler.cs
@@ -0,0 +1,64 @@
+//
+// System.Web.Compilation.MasterPageCompiler
+//
+// Authors:
+// Joel W. Reed ([EMAIL PROTECTED])
+//
+//
+
+//
+// Permission is hereby granted, free of charge, to any person
obtaining
+// a copy of this software and associated documentation files (the
+// Software), to deal in the Software without restriction,
including
+// without limitation the rights to use, copy, modify, merge,
publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject
to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.CodeDom;
+using System.Web.UI;
+
+namespace System.Web.Compilation
+{
+ class MasterPageCompiler : UserControlCompiler
+ {
+ MasterPageParser parser;
+
+ public MasterPageCompiler (MasterPageParser parser)
+ : base (parser)
+ {
+ this.parser = parser;
+ }
+
+ protected internal override void CreateMethods ()
+ {
+ base.CreateMethods ();
+
+#if NET_2_0
+ if (parser.MasterType != null) {
+ CodeMemberProperty mprop = new
CodeMemberProperty ();
+ mprop.Name = Master;
+ mprop.Type = new CodeTypeReference
(parser.MasterType);
+ mprop.Attributes =
MemberAttributes.Public | MemberAttributes.New;
+ CodeExpression prop = new
CodePropertyReferenceExpression (new CodeBaseReferenceExpression (),
Master);
+ prop = new CodeCastExpression
(parser.MasterType, prop);
+ mprop.GetStatements.Add (new
CodeMethodReturnStatement (prop));
+ mainClass.Members.Add (mprop);
+ }
+#endif
+ }
+ }
+}
+
diff --git a/mcs/class/System.Web/System.Web.UI/MasterPageParser.cs
b/mcs