Browse Source

ImageButtonTest.cs added new tests for 2.0 and new resource NoEventValidation.aspx

svn path=/trunk/mcs/; revision=68509
Yoni Klain 19 years ago
parent
commit
eb28197c2a

+ 4 - 0
mcs/class/System.Web/ChangeLog

@@ -1,3 +1,7 @@
+2006-11-27  Yoni Klain   <[email protected]>
+
+	* MakeFile added new resources NoEventValidation.aspx for ImageButtonTest.cs
+
 2006-11-09 Vladimir Krasnov <[email protected]>
 
 	* System.Web_test.dll.sources: added PasswordRecoveryTest.cs, 

+ 1 - 0
mcs/class/System.Web/Makefile

@@ -127,6 +127,7 @@ TEST_RESOURCE_FILES = \
 	Test/mainsoft/NunitWebResources/AsyncPage.aspx \
 	Test/mainsoft/NunitWebResources/PageCultureTest.aspx \
 	Test/mainsoft/NunitWebResources/adapters.browser \
+	Test/mainsoft/NunitWebResources/NoEventValidation.aspx \
 	Test/mainsoft/MainsoftWebTest/nunitweb_config.xml 
 
 NUNIT_RESOURCE_FILES = $(TEST_RESOURCE_FILES)

+ 4 - 0
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog

@@ -1,3 +1,7 @@
+2006-11-26  Yoni Klain         <[email protected]>
+
+	* ImageButtonTest.cs: added new test for 2.0 
+
 2006-11-26  Yoni Klain         <[email protected]>
 
 	* CheckBoxListTest.cs: added new test for 2.0 

+ 240 - 2
mcs/class/System.Web/Test/System.Web.UI.WebControls/ImageButtonTest.cs

@@ -35,6 +35,9 @@ using System.Globalization;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
+using MonoTests.SystemWeb.Framework;
+using MonoTests.stand_alone.WebHarness;
+using System.Collections;
 
 namespace MonoTests.System.Web.UI.WebControls
 {
@@ -53,12 +56,46 @@ namespace MonoTests.System.Web.UI.WebControls
 		{
 			LoadViewState (o);
 		}
+
+		public string Render ()
+		{
+			StringWriter sw = new StringWriter ();
+			sw.NewLine = "\n";
+			HtmlTextWriter writer = new HtmlTextWriter (sw);
+			base.Render (writer);
+			return writer.InnerWriter.ToString ();
+		}
+#if NET_2_0
+		public new string Text
+		{
+			get
+			{
+				return base.Text;
+			}
+			set
+			{
+				base.Text = value;
+			}
+		}
+
+
+		public new void RaisePostBackEvent (string eventArgument)
+		{
+			base.RaisePostBackEvent (eventArgument);
+		}
+
+		protected override void RaisePostDataChangedEvent ()
+		{
+			base.RaisePostDataChangedEvent ();
+		}
+#endif
 	}
 
 	[TestFixture]
 	public class ImageButtonTest {
 		
 		[Test]
+		[Category("NotWorking")]
 		public void ImageButton_DefaultValues ()
 		{
 			ImageButton b = new ImageButton ();
@@ -67,10 +104,195 @@ namespace MonoTests.System.Web.UI.WebControls
 			Assert.AreEqual (string.Empty, b.CommandName, "CommandName");
 #if NET_2_0
 			Assert.AreEqual (string.Empty, b.ValidationGroup, "ValidationGroup");
+			Assert.AreEqual (string.Empty, b.AppRelativeTemplateSourceDirectory, "AppRelativeTemplateSourceDirectory");
+			Assert.AreEqual (string.Empty, b.DescriptionUrl, "DescriptionUrl");
+			Assert.AreEqual (true, b.EnableTheming, "EnableTheming");
+			Assert.AreEqual (false, b.GenerateEmptyAlternateText, "GenerateEmptyAlternateText");
+			Assert.AreEqual (string.Empty, b.PostBackUrl, "PostBackUrl");
+			Assert.AreEqual (string.Empty, b.OnClientClick, "OnClientClick");
 #endif
 		}
 
-		
+		[Test]
+		public void ImageButton_AssignedValues ()
+		{
+			ImageButton b = new ImageButton ();
+#if NET_2_0
+			Assert.AreEqual (string.Empty, b.ValidationGroup, "ValidationGroup#1");
+			b.ValidationGroup = "test";
+			Assert.AreEqual ("test", b.ValidationGroup, "ValidationGroup#2");
+			// NOTE:  Default is wrong! 
+			// Assert.AreEqual (string.Empty, b.AppRelativeTemplateSourceDirectory, "AppRelativeTemplateSourceDirectory#1");
+			b.AppRelativeTemplateSourceDirectory = "~/test";
+			Assert.AreEqual ("~/test", b.AppRelativeTemplateSourceDirectory, "AppRelativeTemplateSourceDirectory#2");
+			Assert.AreEqual (string.Empty, b.DescriptionUrl, "DescriptionUrl#1");
+			b.DescriptionUrl = "test";
+			Assert.AreEqual ("test", b.DescriptionUrl, "DescriptionUrl#2");
+			Assert.AreEqual (true, b.EnableTheming, "EnableTheming#1");
+			b.EnableTheming  = false;
+			Assert.AreEqual (false, b.EnableTheming, "EnableTheming#2");
+#endif
+		}
+
+
+#if NET_2_0
+		[Test]
+		[Category ("NunitWeb")]
+		public void AppRelativeTemplateSourceDirectory ()
+		{
+			WebTest t = new WebTest (PageInvoker.CreateOnLoad (AppRelativeTemplateSourceDirectory_Load));
+			t.Run ();
+		}
+	
+		public static void AppRelativeTemplateSourceDirectory_Load (Page p)
+		{
+			PokerImageButton i = new PokerImageButton ();
+			i.ID = "I";
+			Assert.AreEqual ("~/", i.AppRelativeTemplateSourceDirectory, "AppRelativeTemplateSourceDirectory");
+		}
+
+		[Test]
+		public void DescriptionUrl ()
+		{
+			PokerImageButton i = new PokerImageButton ();
+			i.DescriptionUrl = "URLDescription";
+			string html = i.Render ();
+			if (html.IndexOf ("longdesc=\"URLDescription\"") == -1)
+				Assert.Fail ("DescriptionUrl Failed");
+		}
+
+		[Test]
+		public void OnClientClick ()
+		{
+			PokerImageButton b = new PokerImageButton ();
+			b.OnClientClick = "MyMethod";
+			string html = b.Render ();
+			if (html.IndexOf ("onclick=\"MyMethod;\"") == -1)
+				Assert.Fail ("OnClientClick#1");
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void PostBackUrl ()
+		{
+			Page p = new Page ();
+			PokerImageButton b = new PokerImageButton ();
+			p.Controls.Add (b);
+			p.EnableEventValidation = false;
+			b.PostBackUrl = "~/MyURL.aspx";
+			string html = b.Render ();
+			if (html.IndexOf ("onclick") == -1)
+				Assert.Fail ("PostBack script not created");
+			if (html.IndexOf ("~/MyURL.aspx") == -1)
+				Assert.Fail ("PostBack page URL not set");
+		}
+
+		[Test]
+		[Category ("NunitWeb")]
+		public void ValidationGroup ()
+		{
+			WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");
+			WebTest t = new WebTest ("NoEventValidation.aspx");
+			t.Invoker = PageInvoker.CreateOnLoad (ValidationGroup_Load);
+			t.Run ();
+		}
+
+		public static void ValidationGroup_Load(Page p)
+		{
+			PokerImageButton b = new PokerImageButton ();
+			b.ValidationGroup = "MyValidationGroup";
+			TextBox tb = new TextBox ();
+			tb.ID = "tb";
+			tb.ValidationGroup = "MyValidationGroup";
+			RequiredFieldValidator v = new RequiredFieldValidator ();
+			v.ControlToValidate = "tb";
+			v.ValidationGroup = "MyValidationGroup";
+			p.Controls.Add (tb);
+			p.Controls.Add (v);
+			p.Controls.Add (b);
+			string html = b.Render ();
+			if (html.IndexOf ("onclick") == -1)
+				Assert.Fail ("Validation script not created");
+			if (html.IndexOf ("MyValidationGroup") == -1)
+				Assert.Fail ("Validation group not set fail");
+
+		}
+
+		[Test]
+		public void Text ()
+		{
+			PokerImageButton b = new PokerImageButton ();
+			b.Text = "MyText";
+			string html = b.Render ();
+			HtmlDiff.AssertAreEqual ("<input type=\"image\" src=\"\" alt=\"MyText\" style=\"border-width:0px;\" />", html, "Text#1");
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		[Category("NunitWeb")]
+		public void RaisePostBackEvent ()
+		{
+			WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");
+			WebTest t = new WebTest ("NoEventValidation.aspx");
+			t.Invoker = PageInvoker.CreateOnLoad (RaisePostBackEvent_Load);
+			t.Run ();
+			ArrayList eventlist = t.UserData as ArrayList;
+			if (eventlist == null)
+				Assert.Fail ("User data does not been created fail");
+
+			Assert.AreEqual ("Click", eventlist[0], "Event Flow #0");
+			Assert.AreEqual ("Command", eventlist[1], "Event Flow #1");
+		}
+
+		public static void RaisePostBackEvent_Load (Page p)
+		{
+			PokerImageButton b = new PokerImageButton ();
+			p.Form.Controls.Add (b);
+			b.Click += new ImageClickEventHandler (b_Click);
+			b.Command += new CommandEventHandler (b_Command);
+			b.RaisePostBackEvent ("Click");
+		}
+
+		static void b_Command (object sender, CommandEventArgs e)
+		{
+			if (WebTest.CurrentTest.UserData == null) {
+				ArrayList list = new ArrayList ();
+				list.Add ("Command");
+				WebTest.CurrentTest.UserData = list;
+			}
+			else {
+				ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
+				if (list == null)
+					throw new NullReferenceException ();
+				list.Add ("Command");
+				WebTest.CurrentTest.UserData = list;
+			}
+		}
+
+		static void b_Click (object sender, ImageClickEventArgs e)
+		{
+			if (WebTest.CurrentTest.UserData == null) {
+				ArrayList list = new ArrayList ();
+				list.Add ("Click");
+				WebTest.CurrentTest.UserData = list;
+			}
+			else {
+				ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
+				if (list == null)
+					throw new NullReferenceException ();
+				list.Add ("Click");
+				WebTest.CurrentTest.UserData = list;
+			}
+		}
+
+		[Test]
+		public void RaisePostDataChangedEvent ()
+		{
+			// This protected method empty for to be ovveriden by developer 
+			// and not called by Page and Control lifecycle 
+		}
+#endif
+
 		[Test]
 		public void ImageButton_Render ()
 		{
@@ -119,7 +341,7 @@ namespace MonoTests.System.Web.UI.WebControls
 
 			Page page = new Page ();
 #if NET_2_0
-            page.EnableEventValidation = false;
+			page.EnableEventValidation = false;
 #endif
 			ImageButton b = new ImageButton ();			
 			page.Controls.Add (b);
@@ -128,6 +350,22 @@ namespace MonoTests.System.Web.UI.WebControls
 			Assert.AreEqual (true, sw.ToString().IndexOf ("type=\"image\"") != -1, "A2");
 			Assert.AreEqual (true, sw.ToString().IndexOf ("name=\"") != -1, "A3");
 		}
+#if NET_2_0
+		[Test]
+		[Category ("NotWorking")] // Not implemented
+		[ExpectedException (typeof (NotSupportedException))]
+		public void GenerateEmptyAlternateText_Exception ()
+		{
+			ImageButton b = new ImageButton ();
+			b.GenerateEmptyAlternateText = true;
+		}
+
+		[TestFixtureTearDown]
+		public void TearDown ()
+		{
+			WebTest.Unload ();
+		}
+#endif
 
 	}
 }

+ 3 - 0
mcs/class/System.Web/Test/mainsoft/ChangeLog

@@ -1,3 +1,6 @@
+2006-11-27 Yoni Klain <[email protected]>
+	* add new resources : NoEventValidation.aspx for ImageButtonTest.cs
+
 2006-11-22 Yoni Klain <[email protected]>
 	* add new resources : AsyncPage.aspx,PageCultureTest.aspx for PageTest.cs
 

+ 16 - 0
mcs/class/System.Web/Test/mainsoft/NunitWebResources/NoEventValidation.aspx

@@ -0,0 +1,16 @@
+<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="false" CodeFile="MyPage.aspx.cs" Inherits="MyPage" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head id="Head1" runat="server">
+    <title>Untitled Page</title>
+</head>
+<body>
+    <form id="form1" runat="server">
+    <div>
+    
+    </div>
+    </form>
+</body>
+</html>