2010-01-15 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Fri, 15 Jan 2010 13:23:54 +0000 (13:23 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Fri, 15 Jan 2010 13:23:54 +0000 (13:23 -0000)
* ChangePassword.cs: BaseChangePasswordContainer forwards
EnsureChildControls call to its owner, so that finding controls in
the container works correctly.

2010-01-15  Marek Habersack  <mhabersack@novell.com>

* Makefile (TEST_RESOURCE_FILES): added
Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx

2010-01-15  Marek Habersack  <mhabersack@novell.com>

* ChangePasswordTest.cs: added test for looking for controls in
ChangePassword template containers.

svn path=/trunk/mcs/; revision=149631

mcs/class/System.Web/ChangeLog
mcs/class/System.Web/Makefile
mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/ChangePassword.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangePasswordTest.cs
mcs/class/System.Web/Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx [new file with mode: 0644]

index a43807b8a6944d2db931d2958ab23bf4640ae845..cc9293747193c48e6510546c769d75bf48de60fe 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-15  Marek Habersack  <mhabersack@novell.com>
+
+       * Makefile (TEST_RESOURCE_FILES): added
+       Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx
+
 2010-01-14  Marek Habersack  <mhabersack@novell.com>
 
        * System.Web_standalone_test.dll.sources,
index 77169a4c1460682fb52af4f5879d1b4d1f76e16e..e1b4efd08819d94e4935acb6dc7f665a430e3677 100644 (file)
@@ -197,7 +197,8 @@ TEST_RESOURCE_FILES = \
        Test/mainsoft/NunitWebResources/NestedParserFileText.aspx \
        Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx \
        Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx \
-       Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs
+       Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs \
+       Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx
 
 RESX_DIST =  resources/TranslationResources.resx
 ifneq (1, $(FRAMEWORK_VERSION_MAJOR))
index 2fd418ffc1df72ba391f930615e6c198cc48211a..37fac83ddfe8de11d714282cf8caa496711cb1a9 100644 (file)
@@ -1,3 +1,9 @@
+2010-01-15  Marek Habersack  <mhabersack@novell.com>
+
+       * ChangePassword.cs: BaseChangePasswordContainer forwards
+       EnsureChildControls call to its owner, so that finding controls in
+       the container works correctly.
+
 2009-11-30  Marek Habersack  <mhabersack@novell.com>
 
        * WebControl.cs: HasAttributes made available as internal for 1.1
index 64c019b0e381dd610585855ff26b6196a73e8faf..5d29f05fcd2544273bfb7217697763bc49204652 100644 (file)
@@ -1148,7 +1148,7 @@ namespace System.Web.UI.WebControls
 
                #endregion
 
-                       class BaseChangePasswordContainer : Table, INamingContainer, INonBindingContainer
+               class BaseChangePasswordContainer : Table, INamingContainer, INonBindingContainer
                {
                        protected readonly ChangePassword _owner = null;
                        TableCell _containerCell = null;
@@ -1183,6 +1183,15 @@ namespace System.Web.UI.WebControls
                                ApplyStyle (_owner.ControlStyle);
                                base.OnPreRender (e);
                        }
+
+                       protected override void EnsureChildControls ()
+                       {
+                               base.EnsureChildControls ();
+
+                               // it's the owner who adds controls, not us
+                               if (_owner != null)
+                                       _owner.EnsureChildControls ();
+                       }
                }
 
                sealed class ChangePasswordContainer : BaseChangePasswordContainer
index ea136f837f2e10e1d94c3650094aa4e23f4d452f..5dc2eaac908dd41bbccdd97e3bb9520c8254dedf 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-15  Marek Habersack  <mhabersack@novell.com>
+
+       * ChangePasswordTest.cs: added test for looking for controls in
+       ChangePassword template containers.
+
 2009-11-16  Marek Habersack  <mhabersack@novell.com>
 
        * TreeNodeTest.cs: added test for a situation when a
index 87b9d90c67d67a9d46f700d8f086cb288a76449f..6850a906c05aeab7f505000d654b83101ccb0d1e 100644 (file)
@@ -132,6 +132,7 @@ namespace MonoTests.System.Web.UI.WebControls
                [TestFixtureSetUp]
                public void CopyTestResources ()
                {
+                       WebTest.CopyResource (GetType (), "ChangePasswordContainer_FindControl.aspx", "ChangePasswordContainer_FindControl.aspx");
                }
 
                [Test]
@@ -794,6 +795,23 @@ namespace MonoTests.System.Web.UI.WebControls
                        Assert.AreEqual (Membership.Provider.GetType (), typeof (FakeMembershipProvider), "Membership.Provider.GetType ()");
                }
 
+               [Test]
+               public void ChangePasswordContainer_FindControl ()
+               {
+                       WebTest t = new WebTest ("ChangePasswordContainer_FindControl.aspx");
+                       t.Invoker = PageInvoker.CreateOnLoad (new PageDelegate (ChangePasswordContainer_FindControl_OnLoad));
+                       t.Run ();
+               }
+
+               public static void ChangePasswordContainer_FindControl_OnLoad (Page p)
+               {
+                       ChangePassword cp = p.FindControl ("ChangePassword1") as ChangePassword;
+                       Assert.IsNotNull (cp, "#A1");
+                       
+                       RequiredFieldValidator rfv = cp.ChangePasswordTemplateContainer.FindControl ("text1required") as RequiredFieldValidator;
+                       Assert.IsNotNull (rfv, "#A2");
+               }
+               
                [TestFixtureTearDown]
                public void TearDown ()
                {
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx
new file mode 100644 (file)
index 0000000..3a09ae6
--- /dev/null
@@ -0,0 +1,27 @@
+<%@ Page Language="C#" CodeFile="MyPage.aspx.cs" Inherits="MyPage" %>
+<html><head><title>Change password</title></head>
+<body>
+  <form runat="server">
+    Test: <asp:Label runat="server" id="test"/><br/>
+    <asp:ChangePassword ID="ChangePassword1" runat="server">
+      <ChangePasswordTemplate>
+       <table>
+         <tr>
+           <td>
+             <asp:TextBox runat="server" id="CurrentPassword" TextMode="Password"/>
+             <asp:RequiredFieldValidator runat="server" id="text1required" ControlToValidate="CurrentPassword"/>
+           </td>
+         </tr>
+
+         <tr>
+           <td>
+             <asp:TextBox runat="server" id="NewPassword" TextMode="Password"/>
+             <asp:RequiredFieldValidator runat="server" id="text2required" ControlToValidate="NewPassword"/>
+           </td>
+         </tr>
+       </table>
+      </ChangePasswordTemplate>
+    </asp:ChangePassword>
+  </form>
+</body>
+</html>