2007-01-10 Chris Toshok <toshok@ximian.com>
[mono-project.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ControlEventTest.cs
blob73fd14989c374f5944a2858d4a25a21c53b19e29
2 using System;
3 using NUnit.Framework;
4 using System.Windows.Forms;
5 using System.Drawing;
6 using System.Threading;
8 namespace MonoTests.System.Windows.Forms
10 [TestFixture]
11 public class EventClass
13 static bool eventhandled = false;
14 public static void Event_Handler1 (object sender, EventArgs e)
16 eventhandled = true;
19 [Test]
20 public void BackColorChangedTest ()
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");
30 [Test]
31 public void BgrndImageChangedTest ()
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");
42 [Test]
43 public void BindingContextChangedTest ()
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");
55 [Test]
56 public void CausesValidationChangedTest ()
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");
67 [Test]
68 public void CursorChangedTest ()
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");
78 [Test]
79 public void DisposedTest ()
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");
89 [Test]
90 public void DockChangedTest ()
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");
100 [Test]
101 public void EnabledChangedTest ()
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");
111 [Test]
112 public void FontChangedTest ()
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");
122 [Test]
123 public void ForeColorChangedTest ()
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");
133 [Test]
134 public void HandleCreatedTest ()
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");
144 [Test]
145 public void ImeModeChangedTest ()
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");
155 [Test]
156 public void LocationChangedTest ()
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");
166 [Test]
167 public void ResizeTest ()
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");
177 [Test]
178 public void RightToLeftChangedTest ()
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");
188 [Test]
189 public void SizeChangedTest ()
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");
199 [Test]
200 public void TabIndexChangedTest ()
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");
210 [Test]
211 public void TabStopChangedTest ()
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");
221 [Test]
222 public void TextChangedTest ()
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");
232 [Test]
233 public void VisibleChangedTest ()
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");
245 [TestFixture]
246 public class LayoutEventClass
248 static bool eventhandled = false;
249 public static void LayoutEvent (object sender, LayoutEventArgs e)
251 eventhandled = true;
254 [Test]
255 public void LayoutTest ()
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");
265 int event_count;
266 int resize_event;
267 int size_changed_event;
268 int layout_event;
270 void resize (object sender, EventArgs e)
272 resize_event = ++event_count;
275 void layout (object sender, LayoutEventArgs le)
277 layout_event = ++event_count;
280 void size_changed (object sender, EventArgs e)
282 size_changed_event = ++event_count;
285 [Test]
286 public void LayoutResizeTest ()
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");
299 [TestFixture]
300 public class ControlAddRemoveEventClass
302 static bool eventhandled = false;
303 public static void ControlEvent (object sender, ControlEventArgs e)
305 eventhandled = true;
308 [Test]
309 public void ControlAddedTest ()
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");
319 [Test]
320 public void ControlRemovedTest ()
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");
332 [TestFixture]
333 public class ControlRefresh
335 [SetUp]
336 public void SetUp ()
338 invalidated = 0;
341 [Test]
342 public void HandleNotCreated ()
344 Control c = new Control ();
345 c.Invalidated += new InvalidateEventHandler (Control_Invalidated);
347 c.Visible = true;
348 c.Refresh ();
349 Assert.AreEqual (0, invalidated, "#1");
351 c.Visible = false;
352 c.Refresh ();
353 Assert.AreEqual (0, invalidated, "#2");
356 [Test]
357 [Category ("NotWorking")]
358 public void Visible ()
360 Control c = new Control ();
361 c.Invalidated += new InvalidateEventHandler (Control_Invalidated);
362 c.Visible = true;
364 Form form = new Form ();
365 form.ShowInTaskbar = false;
366 form.Controls.Add (c);
368 form.Show ();
369 Assert.AreEqual (0, invalidated, "#1");
371 c.Refresh ();
372 Assert.AreEqual (1, invalidated, "#2");
374 form.Refresh ();
375 Assert.AreEqual (1, invalidated, "#3");
378 [Test]
379 public void NotVisible ()
381 Control c = new Control ();
382 c.Invalidated += new InvalidateEventHandler (Control_Invalidated);
383 c.Visible = false;
385 Form form = new Form ();
386 form.ShowInTaskbar = false;
387 form.Controls.Add (c);
389 form.Show ();
390 Assert.AreEqual (0, invalidated, "#1");
392 c.Refresh ();
393 Assert.AreEqual (0, invalidated, "#2");
395 form.Refresh ();
396 Assert.AreEqual (0, invalidated, "#3");
399 private void Control_Invalidated (object sender, InvalidateEventArgs e)
401 invalidated++;
404 private int invalidated;