Преглед изворни кода

RepeaterTest.cs added new tests for 2.0

svn path=/trunk/mcs/; revision=69033
Yoni Klain пре 19 година
родитељ
комит
4bcd88cacf

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

@@ -1,3 +1,7 @@
+2006-12-05  Yoni Klain         <[email protected]>
+
+	* RepeaterTest.cs: added new test for 2.0 
+
 2006-12-05  Yoni Klain         <[email protected]>
 
 	* TableTest.cs: added new test for 2.0 

+ 210 - 4
mcs/class/System.Web/Test/System.Web.UI.WebControls/RepeaterTest.cs

@@ -34,7 +34,9 @@ using System.IO;
 using System.Globalization;
 using System.Web;
 using System.Web.UI;
-using System.Web.UI.WebControls;
+using System.Web.UI.WebControls;
+using MonoTests.SystemWeb.Framework;
+using System.Collections;
 
 namespace MonoTests.System.Web.UI.WebControls
 {
@@ -66,6 +68,55 @@ namespace MonoTests.System.Web.UI.WebControls
 			public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
 			{
 				return base.CreateDataSourceSelectArguments();
+			}
+
+			public new void EnsureDataBound ()
+			{
+				base.EnsureDataBound ();
+			}
+
+			public global::System.Collections.IEnumerable DoGetData ()
+			{
+				return base.GetData ();
+			}
+
+			public new bool Initialized
+			{
+				get { return base.Initialized; }
+			}
+
+			public new bool IsBoundUsingDataSourceID
+			{
+				get { return base.IsBoundUsingDataSourceID; }
+			}
+
+			protected override void OnDataPropertyChanged ()
+			{
+				eventChecker = true;
+				base.OnDataPropertyChanged ();
+			}
+
+			public void DoOnDataSourceViewChanged (object sender, EventArgs e)
+			{
+				base.OnDataSourceViewChanged (sender, e);
+			}
+
+			public new bool RequiresDataBinding
+			{
+				get { return base.RequiresDataBinding; }
+				set { base.RequiresDataBinding = value; }
+			}
+
+			bool eventChecker;
+			public bool EventChecker
+			{
+				get { return eventChecker; }
+				set { throw new NotImplementedException (); }
+			}
+
+			public void clearEvents ()
+			{
+				eventChecker = false;
 			}
 #endif
 		}
@@ -93,8 +144,163 @@ namespace MonoTests.System.Web.UI.WebControls
 			/* check to see whether multiple calls give us different refs */
 			args = p.DoCreateDataSourceSelectArguments();
 			
-			Assert.AreEqual (args, args2, "multiple calls, same ref");
-		}
-#endif
+			Assert.AreEqual (args, args2, "multiple calls, same ref");
+			Assert.AreEqual (string.Empty, p.DataSourceID, "DataSourceID");
+			Assert.AreEqual (false, p.RequiresDataBinding, "RequiresDataBinding");
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void Repeater_DefaultsNotWorking ()
+		{
+			Poker p = new Poker ();
+			Assert.AreEqual (true, p.EnableTheming, "EnableTheming");
+		}
+
+
+		
+		[Test]
+		[Category("NunitWeb")]
+		[ExpectedException(typeof(HttpException))]
+		public void  EnsureDataBound ()
+		{
+			WebTest t = new WebTest (PageInvoker.CreateOnInit (EnsureDataBound_Init));
+			string html = t.Run ();
+		}
+
+		public static void EnsureDataBound_Init (Page p)
+		{
+			Poker r = new Poker ();
+			r.DataSourceID = "Fake";
+			p.Form.Controls.Add (r);
+			r.EnsureDataBound ();
+		}
+
+		[Test]
+		[Category ("NotWorking")]
+		public void GetData ()
+		{
+			Poker p = new Poker ();
+			p.DataSource = Databound ();
+			ArrayList data = (ArrayList)p.DoGetData ();
+			Assert.AreEqual (3, data.Count, "GetData#1");
+			Assert.AreEqual (1, data[0], "GetData#2");
+		}
+
+		#region help_class
+		static ArrayList Databound ()
+		{
+			ArrayList list = new ArrayList ();
+			list.Add (1);
+			list.Add (2);
+			list.Add (3);
+			return list;
+		}
+		#endregion
+
+		[Test]
+		[Category ("NotWorking")]
+		[Category ("NunitWeb")]
+		public void Initialized ()
+		{
+			WebTest t = new WebTest ();
+			PageDelegates pd = new PageDelegates ();
+			pd.Init = new PageDelegate (Initialized_Init);
+			pd.Load = new PageDelegate (Initialized_Load);
+			t.Invoker = new PageInvoker (pd);
+			string html = t.Run ();
+		}
+
+		public static void Initialized_Init (Page p)
+		{
+			Poker r = new Poker ();
+			r.ID = "Rep";
+			Assert.AreEqual (false, r.Initialized, "Initialized#1");
+			r.DataSource = Databound ();
+			p.Form.Controls.Add (r);
+		}
+
+		public static void Initialized_Load (Page p)
+		{
+			Poker r = p.FindControl ("Rep") as Poker; 
+			Assert.AreEqual (true, r.Initialized, "Initialized#2");
+		}
+
+		[Test]
+		public void IsBoundUsingDataSourceID ()
+		{
+			Poker p = new Poker ();
+			Assert.AreEqual (false, p.IsBoundUsingDataSourceID, "IsBoundUsingDataSourceID#1");
+			p.DataSourceID = "Fake";
+			Assert.AreEqual (true, p.IsBoundUsingDataSourceID, "IsBoundUsingDataSourceID#2");
+		}
+
+		[Test]
+		public void OnDataPropertyChanged ()
+		{
+			Poker p = new Poker ();
+			p.clearEvents ();
+			p.DataSourceID = "Fake";
+			Assert.AreEqual (true, p.EventChecker, "OnDataPropertyChanged#1");
+		}
+
+		[Test]
+		public void OnDataSourceViewChanged ()
+		{
+			Poker p = new Poker ();
+			Assert.AreEqual (false, p.RequiresDataBinding, "OnDataSourceViewChanged#1");
+			p.DoOnDataSourceViewChanged (p, new EventArgs ());
+			Assert.AreEqual (true, p.RequiresDataBinding, "OnDataSourceViewChanged#2");
+		}
+
+		#region help_class_for_select_args
+		class PokerS : Repeater
+		{
+
+			public void TrackState ()
+			{
+				TrackViewState ();
+			}
+
+			public object SaveState ()
+			{
+				return SaveViewState ();
+			}
+
+			public void LoadState (object o)
+			{
+				LoadViewState (o);
+			}
+
+#if NET_2_0
+			public DataSourceSelectArguments GetSelectArguments ()
+			{
+				return SelectArguments;
+			}
+
+			protected override DataSourceSelectArguments CreateDataSourceSelectArguments ()
+			{
+				DataSourceSelectArguments arg = new DataSourceSelectArguments ("SortExp");
+				return arg;
+			}
+#endif
+		}
+		#endregion
+
+		[Test]
+		[Category ("NotWorking")]
+		public void GetSelectArguments ()
+		{
+			PokerS p = new PokerS ();
+			DataSourceSelectArguments arg = p.GetSelectArguments ();
+			Assert.AreEqual ("SortExp", arg.SortExpression, "GetSelectArguments");
+		}
+
+		[TestFixtureTearDown]
+		public void TearDown ()
+		{
+			WebTest.Unload ();
+		}
+#endif
 	}
 }