1 // 2 // Tests for System.Web.UI.WebControls.Repeater.cs 3 // 4 // Author: 5 // Chris Toshok (toshok@novell.com) 6 // 7 8 // 9 // Copyright (C) 2005 Novell, Inc (http://www.novell.com) 10 // 11 // Permission is hereby granted, free of charge, to any person obtaining 12 // a copy of this software and associated documentation files (the 13 // "Software"), to deal in the Software without restriction, including 14 // without limitation the rights to use, copy, modify, merge, publish, 15 // distribute, sublicense, and/or sell copies of the Software, and to 16 // permit persons to whom the Software is furnished to do so, subject to 17 // the following conditions: 18 // 19 // The above copyright notice and this permission notice shall be 20 // included in all copies or substantial portions of the Software. 21 // 22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 // 30 31 using NUnit.Framework; 32 using System; 33 using System.IO; 34 using System.Globalization; 35 using System.Web; 36 using System.Web.UI; 37 using System.Web.UI.WebControls; 38 using MonoTests.SystemWeb.Framework; 39 using System.Collections; 40 41 namespace MonoTests.System.Web.UI.WebControls 42 { 43 [TestFixture] 44 public class RepeaterTest { 45 class Poker : Repeater { 46 TrackState()47 public void TrackState () 48 { 49 TrackViewState (); 50 } 51 SaveState()52 public object SaveState () 53 { 54 return SaveViewState (); 55 } 56 LoadState(object o)57 public void LoadState (object o) 58 { 59 LoadViewState (o); 60 } 61 GetSelectArguments()62 public DataSourceSelectArguments GetSelectArguments() 63 { 64 return SelectArguments; 65 } 66 DoCreateDataSourceSelectArguments()67 public DataSourceSelectArguments DoCreateDataSourceSelectArguments () 68 { 69 return base.CreateDataSourceSelectArguments(); 70 } 71 EnsureDataBound()72 public new void EnsureDataBound () 73 { 74 base.EnsureDataBound (); 75 } 76 DoGetData()77 public global::System.Collections.IEnumerable DoGetData () 78 { 79 return base.GetData (); 80 } 81 82 public new bool Initialized 83 { 84 get { return base.Initialized; } 85 } 86 87 public new bool IsBoundUsingDataSourceID 88 { 89 get { return base.IsBoundUsingDataSourceID; } 90 } 91 OnDataPropertyChanged()92 protected override void OnDataPropertyChanged () 93 { 94 eventChecker = true; 95 base.OnDataPropertyChanged (); 96 } 97 DoOnDataSourceViewChanged(object sender, EventArgs e)98 public void DoOnDataSourceViewChanged (object sender, EventArgs e) 99 { 100 base.OnDataSourceViewChanged (sender, e); 101 } 102 103 public new bool RequiresDataBinding 104 { 105 get { return base.RequiresDataBinding; } 106 set { base.RequiresDataBinding = value; } 107 } 108 109 bool eventChecker; 110 public bool EventChecker 111 { 112 get { return eventChecker; } 113 set { throw new NotImplementedException (); } 114 } 115 clearEvents()116 public void clearEvents () 117 { 118 eventChecker = false; 119 } 120 } 121 122 [Test] Repeater_DefaultsSelectArguments()123 public void Repeater_DefaultsSelectArguments () 124 { 125 Poker p = new Poker (); 126 DataSourceSelectArguments args, args2; 127 128 args = p.GetSelectArguments(); 129 args2 = p.DoCreateDataSourceSelectArguments(); 130 131 Assert.AreEqual (args, args2, "call == prop"); 132 133 Assert.IsNotNull (args, "property null check"); 134 Assert.IsTrue (args != DataSourceSelectArguments.Empty, "property != Empty check"); 135 Assert.IsTrue (args.Equals (DataSourceSelectArguments.Empty), "property but they are empty check"); 136 137 Assert.IsNotNull (args2, "method null check"); 138 Assert.IsTrue (args2 != DataSourceSelectArguments.Empty, "method != Empty check"); 139 Assert.IsTrue (args2.Equals (DataSourceSelectArguments.Empty), "method but they are empty check"); 140 141 /* check to see whether multiple calls give us different refs */ 142 args = p.DoCreateDataSourceSelectArguments(); 143 144 Assert.AreEqual (args, args2, "multiple calls, same ref"); 145 Assert.AreEqual (string.Empty, p.DataSourceID, "DataSourceID"); 146 Assert.AreEqual (false, p.RequiresDataBinding, "RequiresDataBinding"); 147 } 148 149 [Test] Repeater_Defaults()150 public void Repeater_Defaults () 151 { 152 Poker p = new Poker (); 153 Assert.AreEqual (true, p.EnableTheming, "EnableTheming"); 154 } 155 156 157 158 [Test] 159 [Category("NunitWeb")] 160 [ExpectedException(typeof(HttpException))] EnsureDataBound()161 public void EnsureDataBound () 162 { 163 WebTest t = new WebTest (PageInvoker.CreateOnInit (EnsureDataBound_Init)); 164 string html = t.Run (); 165 } 166 EnsureDataBound_Init(Page p)167 public static void EnsureDataBound_Init (Page p) 168 { 169 Poker r = new Poker (); 170 r.DataSourceID = "Fake"; 171 p.Form.Controls.Add (r); 172 r.EnsureDataBound (); 173 } 174 175 [Test] GetData()176 public void GetData () 177 { 178 Poker p = new Poker (); 179 p.DataSource = Databound (); 180 ArrayList data = (ArrayList)p.DoGetData (); 181 Assert.AreEqual (3, data.Count, "GetData#1"); 182 Assert.AreEqual (1, data[0], "GetData#2"); 183 } 184 185 #region help_class Databound()186 static ArrayList Databound () 187 { 188 ArrayList list = new ArrayList (); 189 list.Add (1); 190 list.Add (2); 191 list.Add (3); 192 return list; 193 } 194 #endregion 195 196 [Test] 197 [Category ("NunitWeb")] Initialized()198 public void Initialized () 199 { 200 WebTest t = new WebTest (); 201 PageDelegates pd = new PageDelegates (); 202 pd.Init = new PageDelegate (Initialized_Init); 203 pd.Load = new PageDelegate (Initialized_Load); 204 t.Invoker = new PageInvoker (pd); 205 string html = t.Run (); 206 } 207 Initialized_Init(Page p)208 public static void Initialized_Init (Page p) 209 { 210 Poker r = new Poker (); 211 r.ID = "Rep"; 212 Assert.AreEqual (false, r.Initialized, "Initialized#1"); 213 r.DataSource = Databound (); 214 p.Form.Controls.Add (r); 215 } 216 Initialized_Load(Page p)217 public static void Initialized_Load (Page p) 218 { 219 Poker r = p.FindControl ("Rep") as Poker; 220 Assert.AreEqual (true, r.Initialized, "Initialized#2"); 221 } 222 223 [Test] IsBoundUsingDataSourceID()224 public void IsBoundUsingDataSourceID () 225 { 226 Poker p = new Poker (); 227 Assert.AreEqual (false, p.IsBoundUsingDataSourceID, "IsBoundUsingDataSourceID#1"); 228 p.DataSourceID = "Fake"; 229 Assert.AreEqual (true, p.IsBoundUsingDataSourceID, "IsBoundUsingDataSourceID#2"); 230 } 231 232 [Test] OnDataPropertyChanged()233 public void OnDataPropertyChanged () 234 { 235 Poker p = new Poker (); 236 p.clearEvents (); 237 p.DataSourceID = "Fake"; 238 Assert.AreEqual (true, p.EventChecker, "OnDataPropertyChanged#1"); 239 } 240 241 [Test] OnDataSourceViewChanged()242 public void OnDataSourceViewChanged () 243 { 244 Poker p = new Poker (); 245 Assert.AreEqual (false, p.RequiresDataBinding, "OnDataSourceViewChanged#1"); 246 p.DoOnDataSourceViewChanged (p, new EventArgs ()); 247 Assert.AreEqual (true, p.RequiresDataBinding, "OnDataSourceViewChanged#2"); 248 } 249 250 #region help_class_for_select_args 251 class PokerS : Repeater 252 { 253 TrackState()254 public void TrackState () 255 { 256 TrackViewState (); 257 } 258 SaveState()259 public object SaveState () 260 { 261 return SaveViewState (); 262 } 263 LoadState(object o)264 public void LoadState (object o) 265 { 266 LoadViewState (o); 267 } 268 GetSelectArguments()269 public DataSourceSelectArguments GetSelectArguments () 270 { 271 return SelectArguments; 272 } 273 CreateDataSourceSelectArguments()274 protected override DataSourceSelectArguments CreateDataSourceSelectArguments () 275 { 276 DataSourceSelectArguments arg = new DataSourceSelectArguments ("SortExp"); 277 return arg; 278 } 279 } 280 #endregion 281 282 [Test] GetSelectArguments()283 public void GetSelectArguments () 284 { 285 PokerS p = new PokerS (); 286 DataSourceSelectArguments arg = p.GetSelectArguments (); 287 Assert.AreEqual ("SortExp", arg.SortExpression, "GetSelectArguments"); 288 } 289 290 [TestFixtureTearDown] TearDown()291 public void TearDown () 292 { 293 WebTest.Unload (); 294 } 295 } 296 } 297