1 2 using System; 3 using NUnit.Framework; 4 using System.Windows.Forms; 5 using System.Drawing; 6 using System.Threading; 7 8 namespace MonoTests.System.Windows.Forms 9 { 10 [TestFixture] 11 public class EventClass : TestHelper 12 { 13 static bool eventhandled = false; Event_Handler1(object sender, EventArgs e)14 public static void Event_Handler1 (object sender, EventArgs e) 15 { 16 eventhandled = true; 17 } 18 19 [Test] BackColorChangedTest()20 public void BackColorChangedTest () 21 { 22 Control c = new Control (); 23 // Test BackColorChanged Event 24 c.BackColorChanged += new EventHandler (Event_Handler1); 25 c.BackColor = Color.Black; 26 Assert.AreEqual (true, eventhandled, "#A1"); 27 28 } 29 30 [Test] BgrndImageChangedTest()31 public void BgrndImageChangedTest () 32 { 33 Control c = new Control (); 34 // Test BackgroundImageChanged Event 35 c.BackgroundImageChanged += new EventHandler (Event_Handler1); 36 string abc = "M.gif"; 37 eventhandled = false; 38 c.BackgroundImage = Image.FromFile (abc); 39 Assert.AreEqual (true, eventhandled, "#A2"); 40 } 41 42 [Test] BindingContextChangedTest()43 public void BindingContextChangedTest () 44 { 45 Control c = new Control (); 46 // Test BindingContextChanged Event 47 c.BindingContextChanged += new EventHandler (Event_Handler1); 48 BindingContext bcG1 = new BindingContext (); 49 eventhandled = false; 50 c.BindingContext = bcG1; 51 Assert.AreEqual (true, eventhandled, "#A3"); 52 53 } 54 55 [Test] CausesValidationChangedTest()56 public void CausesValidationChangedTest () 57 { 58 Control c = new Control (); 59 // Test CausesValidationChanged Event 60 c.CausesValidationChanged += new EventHandler (Event_Handler1); 61 eventhandled = false; 62 c.CausesValidation = false; 63 Assert.AreEqual (true, eventhandled, "#A4"); 64 65 } 66 67 [Test] CursorChangedTest()68 public void CursorChangedTest () 69 { 70 Control c = new Control (); 71 // Test CursorChanged Event 72 c.CursorChanged += new EventHandler (Event_Handler1); 73 eventhandled = false; 74 c.Cursor = Cursors.Hand; 75 Assert.AreEqual (true, eventhandled, "#A6"); 76 } 77 78 [Test] DisposedTest()79 public void DisposedTest () 80 { 81 Control c = new Control (); 82 // Test Disposed Event 83 c.Disposed += new EventHandler (Event_Handler1); 84 eventhandled = false; 85 c.Dispose (); 86 Assert.AreEqual (true, eventhandled, "#A7"); 87 } 88 89 [Test] DockChangedTest()90 public void DockChangedTest () 91 { 92 Control c = new Control (); 93 // Test DockChanged Event 94 c.DockChanged += new EventHandler (Event_Handler1); 95 eventhandled = false; 96 c.Dock = DockStyle.Bottom; 97 Assert.AreEqual (true, eventhandled, "#A8"); 98 } 99 100 [Test] EnabledChangedTest()101 public void EnabledChangedTest () 102 { 103 Control c = new Control (); 104 // Test EnabledChanged Event 105 c.EnabledChanged += new EventHandler (Event_Handler1); 106 eventhandled = false; 107 c.Enabled = false; 108 Assert.AreEqual (true, eventhandled, "#A9"); 109 } 110 111 [Test] FontChangedTest()112 public void FontChangedTest () 113 { 114 Control c = new Control (); 115 // Test FontChanged Event 116 c.FontChanged += new EventHandler (Event_Handler1); 117 eventhandled = false; 118 c.Font = new Font (c.Font, FontStyle.Bold); 119 Assert.AreEqual (true, eventhandled, "#A11"); 120 } 121 122 [Test] ForeColorChangedTest()123 public void ForeColorChangedTest () 124 { 125 Control c = new Control (); 126 // Test ForeColorChanged Event 127 c.ForeColorChanged += new EventHandler (Event_Handler1); 128 eventhandled = false; 129 c.ForeColor = Color.Red; 130 Assert.AreEqual (true, eventhandled, "#A12"); 131 } 132 133 [Test] HandleCreatedTest()134 public void HandleCreatedTest () 135 { 136 Control c = new Control (); 137 // Test HandleCreated Event 138 c.HandleCreated += new EventHandler (Event_Handler1); 139 eventhandled = false; 140 c.Handle.GetType (); 141 Assert.AreEqual (true, eventhandled, "#A15"); 142 } 143 144 [Test] ImeModeChangedTest()145 public void ImeModeChangedTest () 146 { 147 Control c = new Control (); 148 // Test ImeModeChanged Event 149 c.ImeModeChanged += new EventHandler (Event_Handler1); 150 eventhandled = false; 151 c.ImeMode = ImeMode.Off; 152 Assert.AreEqual (true, eventhandled, "#A19"); 153 } 154 155 [Test] LocationChangedTest()156 public void LocationChangedTest () 157 { 158 Control c = new Control (); 159 // Test LocationChanged Event 160 c.LocationChanged += new EventHandler (Event_Handler1); 161 eventhandled = false; 162 c.Left = 20; 163 Assert.AreEqual (true, eventhandled, "#A20"); 164 } 165 166 [Test] ResizeTest()167 public void ResizeTest () 168 { 169 Control c = new Control (); 170 // Test Resize Event 171 c.Resize += new EventHandler (Event_Handler1); 172 eventhandled = false; 173 c.Height = 20; 174 Assert.AreEqual (true, eventhandled, "#A22"); 175 } 176 177 [Test] RightToLeftChangedTest()178 public void RightToLeftChangedTest () 179 { 180 Control c = new Control (); 181 // Test RightToLeftChanged Event 182 c.RightToLeftChanged += new EventHandler (Event_Handler1); 183 eventhandled = false; 184 c.RightToLeft = RightToLeft.Yes; 185 Assert.AreEqual (true, eventhandled, "#A23"); 186 } 187 188 [Test] SizeChangedTest()189 public void SizeChangedTest () 190 { 191 Control c = new Control (); 192 // Test SizeChanged Event 193 c.SizeChanged += new EventHandler (Event_Handler1); 194 eventhandled = false; 195 c.Height = 80; 196 Assert.AreEqual (true, eventhandled, "#A24"); 197 } 198 199 [Test] TabIndexChangedTest()200 public void TabIndexChangedTest () 201 { 202 Control c = new Control (); 203 // Test TabIndexChanged Event 204 c.TabIndexChanged += new EventHandler (Event_Handler1); 205 eventhandled = false; 206 c.TabIndex = 1; 207 Assert.AreEqual (true, eventhandled, "#A27"); 208 } 209 210 [Test] TabStopChangedTest()211 public void TabStopChangedTest () 212 { 213 Control c = new Control (); 214 // Test TabStopChanged Event 215 c.TabStopChanged += new EventHandler (Event_Handler1); 216 eventhandled = false; 217 c.TabStop = false; 218 Assert.AreEqual (true, eventhandled, "#A28"); 219 } 220 221 [Test] TextChangedTest()222 public void TextChangedTest () 223 { 224 Control c = new Control (); 225 // Test TextChanged Event 226 c.TextChanged += new EventHandler (Event_Handler1); 227 eventhandled = false; 228 c.Text = "some Text"; 229 Assert.AreEqual (true, eventhandled, "#A29"); 230 } 231 232 [Test] VisibleChangedTest()233 public void VisibleChangedTest () 234 { 235 Control c = new Control (); 236 // Test VisibleChanged Event 237 c.VisibleChanged += new EventHandler (Event_Handler1); 238 eventhandled = false; 239 c.Visible = false; 240 Assert.AreEqual (true, eventhandled, "#A30"); 241 } 242 } 243 244 245 [TestFixture] 246 public class LayoutEventClass 247 { 248 static bool eventhandled = false; LayoutEvent(object sender, LayoutEventArgs e)249 public static void LayoutEvent (object sender, LayoutEventArgs e) 250 { 251 eventhandled = true; 252 } 253 254 [Test] LayoutTest()255 public void LayoutTest () 256 { 257 Control c = new Control (); 258 c.Layout += new LayoutEventHandler (LayoutEvent); 259 eventhandled = false; 260 c.Visible = true; 261 c.Height = 100; 262 Assert.AreEqual (true, eventhandled, "#D1"); 263 } 264 265 int event_count; 266 int resize_event; 267 int size_changed_event; 268 int layout_event; 269 resize(object sender, EventArgs e)270 void resize (object sender, EventArgs e) 271 { 272 resize_event = ++event_count; 273 } 274 layout(object sender, LayoutEventArgs le)275 void layout (object sender, LayoutEventArgs le) 276 { 277 layout_event = ++event_count; 278 } 279 size_changed(object sender, EventArgs e)280 void size_changed (object sender, EventArgs e) 281 { 282 size_changed_event = ++event_count; 283 } 284 285 [Test] LayoutResizeTest()286 public void LayoutResizeTest () 287 { 288 Control c = new Control (); 289 c.Layout += new LayoutEventHandler (layout); 290 c.Resize += new EventHandler (resize); 291 c.SizeChanged += new EventHandler (size_changed); 292 c.Size = new Size (100, 100); 293 Assert.AreEqual (1, layout_event, "1"); 294 Assert.AreEqual (2, resize_event, "2"); 295 Assert.AreEqual (3, size_changed_event, "3"); 296 } 297 } 298 299 [TestFixture] 300 public class ControlAddRemoveEventClass 301 { 302 static bool eventhandled = false; ControlEvent(object sender, ControlEventArgs e)303 public static void ControlEvent (object sender, ControlEventArgs e) 304 { 305 eventhandled = true; 306 } 307 308 [Test] ControlAddedTest()309 public void ControlAddedTest () 310 { 311 Control c = new Control (); 312 c.ControlAdded += new ControlEventHandler (ControlEvent); 313 TextBox TB = new TextBox (); 314 eventhandled = false; 315 c.Controls.Add (TB); 316 Assert.AreEqual (true, eventhandled, "#F1"); 317 } 318 319 [Test] ControlRemovedTest()320 public void ControlRemovedTest () 321 { 322 Control c = new Control (); 323 c.ControlRemoved += new ControlEventHandler (ControlEvent); 324 TextBox TB = new TextBox (); 325 c.Controls.Add (TB); 326 eventhandled = false; 327 c.Controls.Remove (TB); 328 Assert.AreEqual (true, eventhandled, "#F2"); 329 } 330 } 331 332 [TestFixture] 333 public class ControlRefresh : TestHelper 334 { 335 [SetUp] SetUp()336 protected override void SetUp () { 337 invalidated = 0; 338 base.SetUp (); 339 } 340 341 [Test] HandleNotCreated()342 public void HandleNotCreated () 343 { 344 Control c = new Control (); 345 c.Invalidated += new InvalidateEventHandler (Control_Invalidated); 346 347 c.Visible = true; 348 c.Refresh (); 349 Assert.AreEqual (0, invalidated, "#1"); 350 351 c.Visible = false; 352 c.Refresh (); 353 Assert.AreEqual (0, invalidated, "#2"); 354 } 355 356 [Test] 357 [Category ("NotWorking")] Visible()358 public void Visible () 359 { 360 Control c = new Control (); 361 c.Invalidated += new InvalidateEventHandler (Control_Invalidated); 362 c.Visible = true; 363 364 Form form = new Form (); 365 form.ShowInTaskbar = false; 366 form.Controls.Add (c); 367 368 form.Show (); 369 Assert.AreEqual (0, invalidated, "#1"); 370 371 c.Refresh (); 372 Assert.AreEqual (1, invalidated, "#2"); 373 374 form.Refresh (); 375 Assert.AreEqual (1, invalidated, "#3"); 376 } 377 378 [Test] NotVisible()379 public void NotVisible () 380 { 381 Control c = new Control (); 382 c.Invalidated += new InvalidateEventHandler (Control_Invalidated); 383 c.Visible = false; 384 385 Form form = new Form (); 386 form.ShowInTaskbar = false; 387 form.Controls.Add (c); 388 389 form.Show (); 390 Assert.AreEqual (0, invalidated, "#1"); 391 392 c.Refresh (); 393 Assert.AreEqual (0, invalidated, "#2"); 394 395 form.Refresh (); 396 Assert.AreEqual (0, invalidated, "#3"); 397 398 form.Close (); 399 } 400 Control_Invalidated(object sender, InvalidateEventArgs e)401 private void Control_Invalidated (object sender, InvalidateEventArgs e) 402 { 403 invalidated++; 404 } 405 406 private int invalidated; 407 } 408 } 409