2007-01-28 yonik <yonik@mainsoft.com>
[mono.git] / mcs / class / System.Web / Test / System.Web.UI.WebControls / RepeaterTest.cs
index f18fba48c4836f14de8e37b0ab649572243e7783..dd9aaa9989c8834b777ec9fa6b1639322228186a 100644 (file)
@@ -35,6 +35,8 @@ using System.Globalization;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
+using MonoTests.SystemWeb.Framework;
+using System.Collections;
 
 namespace MonoTests.System.Web.UI.WebControls
 {
@@ -67,6 +69,55 @@ namespace MonoTests.System.Web.UI.WebControls
                        {
                                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
                }
 
@@ -94,6 +145,157 @@ namespace MonoTests.System.Web.UI.WebControls
                        args = p.DoCreateDataSourceSelectArguments();
                        
                        Assert.AreEqual (args, args2, "multiple calls, same ref");
+                       Assert.AreEqual (string.Empty, p.DataSourceID, "DataSourceID");
+                       Assert.AreEqual (false, p.RequiresDataBinding, "RequiresDataBinding");
+               }
+
+               [Test]
+               public void Repeater_Defaults ()
+               {
+                       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]
+               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 ("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]
+               public void GetSelectArguments ()
+               {
+                       PokerS p = new PokerS ();
+                       DataSourceSelectArguments arg = p.GetSelectArguments ();
+                       Assert.AreEqual ("SortExp", arg.SortExpression, "GetSelectArguments");
+               }
+
+               [TestFixtureTearDown]
+               public void TearDown ()
+               {
+                       WebTest.Unload ();
                }
 #endif
        }