2 // FormTest.cs: Test cases for Form.
5 // Ritvik Mayank (mritvik@novell.com)
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
11 using System.ComponentModel;
13 using System.Reflection;
14 using System.Windows.Forms;
15 using System.Collections;
17 using NUnit.Framework;
19 using CategoryAttribute = NUnit.Framework.CategoryAttribute;
21 namespace MonoTests.System.Windows.Forms
27 public void DialogOwnerTest ()
29 using (Form first = new Form ()) {
30 using (TimeBombedForm second = new TimeBombedForm ()) {
32 second.Load += new EventHandler (second_Load);
38 void second_Load (object sender, EventArgs e)
40 Form second = (Form) sender;
41 Assert.IsNull (second.Owner, "#1");
45 [Category ("NotWorking")]
46 public void FormStartupPositionChangeTest ()
48 using (Form frm = new Form ())
50 frm.ShowInTaskbar = false;
51 frm.StartPosition = FormStartPosition.Manual;
52 frm.Location = new Point (0, 0);
55 // On X there seem to be pending messages in the queue aren't processed
56 // before Show returns, so process them. Otherwise the Location returns
57 // something like (5,23)
58 Application.DoEvents ();
60 Assert.AreEqual ("{X=0,Y=0}", frm.Location.ToString (), "#01");
62 frm.StartPosition = FormStartPosition.CenterParent;
63 Assert.AreEqual ("{X=0,Y=0}", frm.Location.ToString (), "#02");
65 frm.StartPosition = FormStartPosition.CenterScreen;
66 Assert.AreEqual ("{X=0,Y=0}", frm.Location.ToString (), "#03");
68 frm.StartPosition = FormStartPosition.Manual;
69 Assert.AreEqual ("{X=0,Y=0}", frm.Location.ToString (), "#04");
71 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
72 Assert.AreEqual ("{X=0,Y=0}", frm.Location.ToString (), "#05");
74 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
75 Assert.AreEqual ("{X=0,Y=0}", frm.Location.ToString (), "#06");
80 public void FormStartupPositionTest ()
84 using (Form frm = new Form ())
86 cp = TestHelper.GetCreateParams (frm);
87 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$01");
88 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#01");
90 frm.StartPosition = FormStartPosition.CenterParent;
91 cp = TestHelper.GetCreateParams (frm);
92 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$01");
93 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#02");
95 frm.StartPosition = FormStartPosition.CenterScreen;
96 cp = TestHelper.GetCreateParams (frm);
97 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$01");
98 Assert.AreEqual (new Point (Screen.PrimaryScreen.WorkingArea.Width / 2 - frm.Width / 2, Screen.PrimaryScreen.WorkingArea.Height / 2 - frm.Height / 2).ToString (), new Point (cp.X, cp.Y).ToString (), "#03");
100 frm.StartPosition = FormStartPosition.Manual;
101 cp = TestHelper.GetCreateParams (frm);
102 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$01");
103 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#04");
105 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
106 cp = TestHelper.GetCreateParams (frm);
107 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$01");
108 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#05");
110 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
111 cp = TestHelper.GetCreateParams (frm);
112 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$01");
113 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#06");
118 using (Form frm = new Form ()) {
119 frm.Location = new Point (23, 45);
121 cp = TestHelper.GetCreateParams (frm);
122 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$A1");
123 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A1");
125 frm.StartPosition = FormStartPosition.CenterParent;
126 cp = TestHelper.GetCreateParams (frm);
127 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$A2");
128 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A2");
130 frm.StartPosition = FormStartPosition.CenterScreen;
131 cp = TestHelper.GetCreateParams (frm);
132 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$A3");
133 Assert.AreEqual (new Point (Screen.PrimaryScreen.WorkingArea.Width / 2 - frm.Width / 2, Screen.PrimaryScreen.WorkingArea.Height / 2 - frm.Height / 2).ToString (), new Point (cp.X, cp.Y).ToString (), "#A3");
135 frm.StartPosition = FormStartPosition.Manual;
136 cp = TestHelper.GetCreateParams (frm);
137 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$A4");
138 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A4");
140 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
141 cp = TestHelper.GetCreateParams (frm);
142 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$A5");
143 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A5");
145 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
146 cp = TestHelper.GetCreateParams (frm);
147 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$A6");
148 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A6");
155 public void MdiFormStartupPositionTest ()
158 using (Form Main = new Form ()) {
159 Main.IsMdiContainer = true;
160 Main.ShowInTaskbar = false;
163 using (Form frm = new Form ()) {
164 frm.MdiParent = Main;
165 cp = TestHelper.GetCreateParams (frm);
166 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$01");
167 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#01");
169 frm.StartPosition = FormStartPosition.CenterParent;
170 cp = TestHelper.GetCreateParams (frm);
171 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$01");
172 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#02");
174 frm.StartPosition = FormStartPosition.CenterScreen;
175 cp = TestHelper.GetCreateParams (frm);
176 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$01");
177 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#03");
179 frm.StartPosition = FormStartPosition.Manual;
180 cp = TestHelper.GetCreateParams (frm);
181 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$01");
182 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#04");
184 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
185 cp = TestHelper.GetCreateParams (frm);
186 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$01");
187 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#05");
189 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
190 cp = TestHelper.GetCreateParams (frm);
191 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$01");
192 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#06");
197 using (Form frm = new Form ()) {
198 frm.MdiParent = Main;
199 frm.Location = new Point (23, 45);
201 cp = TestHelper.GetCreateParams (frm);
202 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$A1");
203 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A1");
205 frm.StartPosition = FormStartPosition.CenterParent;
206 cp = TestHelper.GetCreateParams (frm);
207 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$A2");
208 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A2");
210 frm.StartPosition = FormStartPosition.CenterScreen;
211 cp = TestHelper.GetCreateParams (frm);
212 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$A3");
213 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#A3");
215 frm.StartPosition = FormStartPosition.Manual;
216 cp = TestHelper.GetCreateParams (frm);
217 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$A4");
218 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A4");
220 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
221 cp = TestHelper.GetCreateParams (frm);
222 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$A5");
223 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A5");
225 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
226 cp = TestHelper.GetCreateParams (frm);
227 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$A6");
228 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#A6");
235 using (Form frm = new Form ()) {
236 frm.MdiParent = Main;
237 frm.Location = new Point (34, 56);
239 cp = TestHelper.GetCreateParams (frm);
240 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$B1");
241 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#B1");
243 frm.StartPosition = FormStartPosition.CenterParent;
244 cp = TestHelper.GetCreateParams (frm);
245 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$B2");
246 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#B2");
248 frm.StartPosition = FormStartPosition.CenterScreen;
249 cp = TestHelper.GetCreateParams (frm);
250 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$B3");
251 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#B3");
253 frm.StartPosition = FormStartPosition.Manual;
254 cp = TestHelper.GetCreateParams (frm);
255 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$B4");
256 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B4");
258 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
259 cp = TestHelper.GetCreateParams (frm);
260 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$B5");
261 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#B5");
263 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
264 cp = TestHelper.GetCreateParams (frm);
265 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$B6");
266 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#B6");
271 Main.Size = new Size (600, 600);
272 using (Form frm = new Form ()) {
273 frm.MdiParent = Main;
274 frm.Location = new Point (34, 56);
276 cp = TestHelper.GetCreateParams (frm);
277 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$C1");
278 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#C1");
280 frm.StartPosition = FormStartPosition.CenterParent;
281 cp = TestHelper.GetCreateParams (frm);
282 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$C2");
283 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#C2");
285 frm.StartPosition = FormStartPosition.CenterScreen;
286 cp = TestHelper.GetCreateParams (frm);
287 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$C3");
288 Assert.AreEqual (new Point (Main.Controls [0].ClientSize.Width / 2 - frm.Width / 2, Main.Controls [0].ClientSize.Height / 2 - frm.Height / 2).ToString (), new Point (cp.X, cp.Y).ToString (), "#C3");
290 frm.StartPosition = FormStartPosition.Manual;
291 cp = TestHelper.GetCreateParams (frm);
292 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$C4");
293 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C4");
295 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
296 cp = TestHelper.GetCreateParams (frm);
297 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$C5");
298 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#C5");
300 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
301 cp = TestHelper.GetCreateParams (frm);
302 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$C6");
303 Assert.AreEqual (new Point (int.MinValue, int.MinValue).ToString (), new Point (cp.X, cp.Y).ToString (), "#C6");
311 public void ParentedFormStartupPositionTest ()
314 using (Form Main = new Form ()) {
315 Main.ShowInTaskbar = false;
318 using (Form frm = new Form ()) {
319 frm.TopLevel = false;
320 Main.Controls.Add (frm);
321 cp = TestHelper.GetCreateParams (frm);
322 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$01");
323 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#01");
325 frm.StartPosition = FormStartPosition.CenterParent;
326 cp = TestHelper.GetCreateParams (frm);
327 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$02");
328 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#02");
330 frm.StartPosition = FormStartPosition.CenterScreen;
331 cp = TestHelper.GetCreateParams (frm);
332 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$03");
333 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#03");
335 frm.StartPosition = FormStartPosition.Manual;
336 cp = TestHelper.GetCreateParams (frm);
337 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$04");
338 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#04");
340 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
341 cp = TestHelper.GetCreateParams (frm);
342 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$05");
343 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#05");
345 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
346 cp = TestHelper.GetCreateParams (frm);
347 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$06");
348 Assert.AreEqual (new Point (0, 0).ToString (), new Point (cp.X, cp.Y).ToString (), "#06");
353 using (Form frm = new Form ()) {
354 frm.TopLevel = false;
355 Main.Controls.Add (frm);
356 frm.Location = new Point (23, 45);
358 cp = TestHelper.GetCreateParams (frm);
359 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$A1");
360 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A1");
362 frm.StartPosition = FormStartPosition.CenterParent;
363 cp = TestHelper.GetCreateParams (frm);
364 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$A2");
365 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A2");
367 frm.StartPosition = FormStartPosition.CenterScreen;
368 cp = TestHelper.GetCreateParams (frm);
369 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$A3");
370 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A3");
372 frm.StartPosition = FormStartPosition.Manual;
373 cp = TestHelper.GetCreateParams (frm);
374 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$A4");
375 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A4");
377 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
378 cp = TestHelper.GetCreateParams (frm);
379 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$A5");
380 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A5");
382 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
383 cp = TestHelper.GetCreateParams (frm);
384 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$A6");
385 Assert.AreEqual (new Point (23, 45).ToString (), new Point (cp.X, cp.Y).ToString (), "#A6");
392 using (Form frm = new Form ()) {
393 frm.TopLevel = false;
394 Main.Controls.Add (frm);
395 frm.Location = new Point (34, 56);
397 cp = TestHelper.GetCreateParams (frm);
398 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$B1");
399 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B1");
401 frm.StartPosition = FormStartPosition.CenterParent;
402 cp = TestHelper.GetCreateParams (frm);
403 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$B2");
404 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B2");
406 frm.StartPosition = FormStartPosition.CenterScreen;
407 cp = TestHelper.GetCreateParams (frm);
408 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$B3");
409 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B3");
411 frm.StartPosition = FormStartPosition.Manual;
412 cp = TestHelper.GetCreateParams (frm);
413 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$B4");
414 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B4");
416 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
417 cp = TestHelper.GetCreateParams (frm);
418 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$B5");
419 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B5");
421 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
422 cp = TestHelper.GetCreateParams (frm);
423 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$B6");
424 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#B6");
430 Main.Size = new Size (600, 600);
431 using (Form frm = new Form ()) {
432 frm.TopLevel = false;
433 Main.Controls.Add (frm);
434 frm.Location = new Point (34, 56);
436 cp = TestHelper.GetCreateParams (frm);
437 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$C1");
438 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C1");
440 frm.StartPosition = FormStartPosition.CenterParent;
441 cp = TestHelper.GetCreateParams (frm);
442 Assert.AreEqual (FormStartPosition.CenterParent, frm.StartPosition, "$C2");
443 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C2");
445 frm.StartPosition = FormStartPosition.CenterScreen;
446 cp = TestHelper.GetCreateParams (frm);
447 Assert.AreEqual (FormStartPosition.CenterScreen, frm.StartPosition, "$C3");
448 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C3");
450 frm.StartPosition = FormStartPosition.Manual;
451 cp = TestHelper.GetCreateParams (frm);
452 Assert.AreEqual (FormStartPosition.Manual, frm.StartPosition, "$C4");
453 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C4");
455 frm.StartPosition = FormStartPosition.WindowsDefaultBounds;
456 cp = TestHelper.GetCreateParams (frm);
457 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, frm.StartPosition, "$C5");
458 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C5");
460 frm.StartPosition = FormStartPosition.WindowsDefaultLocation;
461 cp = TestHelper.GetCreateParams (frm);
462 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, frm.StartPosition, "$C6");
463 Assert.AreEqual (new Point (34, 56).ToString (), new Point (cp.X, cp.Y).ToString (), "#C6");
471 public void ClientSizeTest ()
473 Form form = new Form ();
474 Assert.IsFalse (form.ClientSize == form.Size);
478 [Category ("NotWorking")]
479 public void FormBorderStyleTest ()
481 Form form = new Form ();
482 Rectangle boundsBeforeBorderStyleChange = form.Bounds;
483 Rectangle clientRectangleBeforeBorderStyleChange = form.ClientRectangle;
484 form.FormBorderStyle = FormBorderStyle.None;
485 Assert.AreEqual (form.Bounds, boundsBeforeBorderStyleChange, "#A1");
486 Assert.AreEqual (form.ClientRectangle, clientRectangleBeforeBorderStyleChange, "#A2");
489 form.FormBorderStyle = FormBorderStyle.Sizable;
490 boundsBeforeBorderStyleChange = form.Bounds;
491 clientRectangleBeforeBorderStyleChange = form.ClientRectangle;
492 form.FormBorderStyle = FormBorderStyle.None;
493 Assert.IsFalse (form.Bounds == boundsBeforeBorderStyleChange, "#B1");
494 Assert.AreEqual (form.ClientRectangle, clientRectangleBeforeBorderStyleChange, "#B2");
496 form.Visible = false;
497 form.FormBorderStyle = FormBorderStyle.Sizable;
498 boundsBeforeBorderStyleChange = form.Bounds;
499 clientRectangleBeforeBorderStyleChange = form.ClientRectangle;
500 form.FormBorderStyle = FormBorderStyle.None;
501 Assert.IsFalse (form.Bounds == boundsBeforeBorderStyleChange, "#C1");
502 Assert.AreEqual (form.ClientRectangle, clientRectangleBeforeBorderStyleChange, "#C2");
506 [Category ("NotWorking")]
507 public void MaximizedParentedFormTest ()
509 using (Form Main = new Form ()) {
510 Form Child = new Form ();
511 Child.TopLevel = false;
512 Main.Controls.Add (Child);
513 Main.ShowInTaskbar = false;
516 Child.WindowState = FormWindowState.Maximized;
517 Child.Visible = true;
518 // The exact negative value depends on the border with, but it should always be < 0.
519 Assert.IsTrue (Child.Location.X < 0 && Child.Location.Y < 0, "#A1");
523 [Category ("NotWorking")]
524 public void ParentedFormEventTest ()
527 using (Form Main = new Form ()) {
528 Form Child = new Form ();
529 Child.TopLevel = false;
530 Child.Visible = true;
531 Main.ShowInTaskbar = false;
534 EventLogger log = new EventLogger (Child);
535 Assert.AreEqual (true, Child.Visible, "#A0");
536 Main.Controls.Add (Child);
537 Assert.AreEqual (true, Child.Visible, "#B0");
538 Assert.AreEqual ("ParentChanged;BindingContextChanged;Layout;VisibleChanged;BindingContextChanged;BindingContextChanged", log.EventsJoined (), "#B1");
542 [NUnit.Framework.Category ("NotWorking")]
543 public void FormCreateParamsStyleTest ()
547 using (frm = new Form ()) {
548 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles) TestHelper.GetCreateParams (frm).Style), "#01-Style");
549 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles) TestHelper.GetCreateParams (frm).ExStyle), "#01-ExStyle");
552 using (frm = new Form ()) {
553 frm.AllowDrop = !frm.AllowDrop;
554 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#02-Style");
555 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#02-ExStyle");
558 using (frm = new Form ()) {
559 frm.AllowTransparency = !frm.AllowTransparency;
560 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#03-Style");
561 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW | WindowExStyles.WS_EX_LAYERED, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#03-ExStyle");
564 using (frm = new Form ()) {
566 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#04-Style");
567 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW | WindowExStyles.WS_EX_LAYERED, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#04-ExStyle");
570 using (frm = new Form ()) {
571 frm.TransparencyKey = Color.Cyan;
572 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#05-Style");
573 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW | WindowExStyles.WS_EX_LAYERED, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#05-ExStyle");
576 using (frm = new Form ()) {
577 frm.CausesValidation = !frm.CausesValidation;
578 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#06-Style");
579 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#06-ExStyle");
582 using (frm = new Form ()) {
583 frm.ControlBox = !frm.ControlBox;
584 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_GROUP | WindowStyles.WS_THICKFRAME | WindowStyles.WS_BORDER | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#07-Style");
585 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#07-ExStyle");
588 using (frm = new Form ()) {
590 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#08-Style");
591 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#08-ExStyle");
594 using (frm = new Form ()) {
595 frm.FormBorderStyle = FormBorderStyle.Fixed3D;
596 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_GROUP | WindowStyles.WS_SYSMENU | WindowStyles.WS_CAPTION | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#10-Style");
597 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CLIENTEDGE | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#10-ExStyle");
600 using (frm = new Form ()) {
601 frm.FormBorderStyle = FormBorderStyle.FixedDialog;
602 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_GROUP | WindowStyles.WS_SYSMENU | WindowStyles.WS_CAPTION | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#11-Style");
603 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_DLGMODALFRAME | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#11-ExStyle");
606 using (frm = new Form ()) {
607 frm.FormBorderStyle = FormBorderStyle.FixedSingle;
608 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_GROUP | WindowStyles.WS_SYSMENU | WindowStyles.WS_CAPTION | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#12-Style");
609 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#12-ExStyle");
612 using (frm = new Form ()) {
613 frm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
614 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_GROUP | WindowStyles.WS_SYSMENU | WindowStyles.WS_CAPTION | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#13-Style");
615 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_TOOLWINDOW | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#13-ExStyle");
618 using (frm = new Form ()) {
619 frm.FormBorderStyle = FormBorderStyle.None;
620 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#14-Style");
621 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#14-ExStyle");
624 using (frm = new Form ()) {
625 frm.FormBorderStyle = FormBorderStyle.Sizable;
626 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#15-Style");
627 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#15-ExStyle");
630 using (frm = new Form ()) {
631 frm.FormBorderStyle = FormBorderStyle.SizableToolWindow;
632 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#16-Style");
633 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_TOOLWINDOW | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#16-ExStyle");
636 using (frm = new Form ()) {
637 frm.HelpButton = !frm.HelpButton;
638 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#17-Style");
639 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#17-ExStyle");
642 using (frm = new Form ()) {
644 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#18-Style");
645 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#18-ExStyle");
648 using (frm = new Form ()) {
649 frm.Icon = SystemIcons.Asterisk;
650 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#19-Style");
651 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#19-ExStyle");
654 using (frm = new Form ()) {
655 frm.IsMdiContainer = !frm.IsMdiContainer;
656 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#20-Style");
657 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#20-ExStyle");
660 using (frm = new Form ()) {
661 frm.MaximizeBox = !frm.MaximizeBox;
662 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_GROUP | WindowStyles.WS_THICKFRAME | WindowStyles.WS_SYSMENU | WindowStyles.WS_CAPTION | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#21-Style");
663 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#21-ExStyle");
666 using (frm = new Form ()) {
667 frm.MinimizeBox = !frm.MinimizeBox;
668 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_THICKFRAME | WindowStyles.WS_SYSMENU | WindowStyles.WS_CAPTION | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#22-Style");
669 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#22-ExStyle");
672 using (frm = new Form ()) {
673 frm.ShowIcon = !frm.ShowIcon;
674 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#23-Style");
675 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_DLGMODALFRAME | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#23-ExStyle");
678 using (frm = new Form ()) {
679 frm.ShowInTaskbar = !frm.ShowInTaskbar;
680 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#24-Style");
681 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#24-ExStyle");
685 using (frm = new Form ()) {
686 frm.TabStop = !frm.TabStop;
687 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#25-Style");
688 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#25-ExStyle");
691 using (frm = new Form ()) {
692 frm.TopLevel = !frm.TopLevel;
693 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN | WindowStyles.WS_CLIPSIBLINGS | WindowStyles.WS_CHILD, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#26-Style");
694 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#26-ExStyle");
697 using (frm = new Form ()) {
698 frm.Visible = !frm.Visible;
699 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TILEDWINDOW | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#27-Style");
700 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#27-ExStyle");
703 using (frm = new Form ()) {
704 frm.ControlBox = false;
706 Assert.AreEqual (WindowStyles.WS_TILED | WindowStyles.WS_TABSTOP | WindowStyles.WS_GROUP | WindowStyles.WS_THICKFRAME | WindowStyles.WS_BORDER | WindowStyles.WS_CLIPCHILDREN, ((WindowStyles)TestHelper.GetCreateParams (frm).Style), "#28-Style");
707 Assert.AreEqual (WindowExStyles.WS_EX_LEFT | WindowExStyles.WS_EX_RIGHTSCROLLBAR | WindowExStyles.WS_EX_CONTROLPARENT | WindowExStyles.WS_EX_APPWINDOW, ((WindowExStyles)TestHelper.GetCreateParams (frm).ExStyle), "#28-ExStyle");
712 public void FormParentedTest ()
714 using (Form frm = new Form ()) {
715 using (Form frm2 = new Form ()) {
716 frm2.TopLevel = false;
717 frm.ShowInTaskbar = false;
718 frm2.ShowInTaskbar = false;
722 EventLogger log = new EventLogger (frm);
723 EventLogger log2 = new EventLogger (frm2);
725 frm.Controls.Add (frm2);
727 Assert.IsTrue (log2.EventRaised ("ParentChanged"), "#C1");
728 Assert.IsTrue (log.EventRaised ("ControlAdded"), "#P1");
729 Assert.AreSame (frm, frm2.Parent, "#02");
735 public void FormPropertyTest ()
737 Form myform = new Form ();
738 myform.Visible = true;
739 myform.Text = "NewForm";
740 myform.Name = "FormTest";
741 Assert.IsNull (myform.AcceptButton, "#1");
742 Assert.IsNull (myform.ActiveMdiChild, "#2");
743 Assert.IsFalse (myform.AutoScale, "#3");
744 Assert.IsNull (myform.CancelButton, "#6");
745 Assert.IsTrue (myform.ControlBox, "#9");
746 Assert.IsTrue (myform.DesktopBounds.X > 0, "#10a");
747 Assert.IsTrue (myform.DesktopBounds.Y > 0, "#10b");
748 Assert.AreEqual (300, myform.DesktopBounds.Height, "#10c");
749 Assert.AreEqual (300, myform.DesktopBounds.Width, "#10d");
750 Assert.IsTrue (myform.DesktopLocation.X > 0, "#11a");
751 Assert.IsTrue (myform.DesktopLocation.Y > 0, "#11b");
752 Assert.AreEqual (DialogResult.None, myform.DialogResult, "#12");
753 Assert.AreEqual (FormBorderStyle.Sizable, myform.FormBorderStyle, "#13");
754 Assert.IsFalse (myform.HelpButton, "#14");
755 Assert.AreEqual ("System.Drawing.Icon", myform.Icon.GetType ().ToString (), "#15");
756 Assert.IsFalse (myform.IsMdiChild, "#16");
757 Assert.IsFalse (myform.IsMdiContainer, "#17");
758 Assert.IsFalse (myform.KeyPreview, "#18");
759 Assert.IsTrue (myform.MaximizeBox, "#19");
760 Assert.AreEqual (0, myform.MaximumSize.Height, "#20a");
761 Assert.AreEqual (0, myform.MaximumSize.Width, "#20b");
762 Assert.AreEqual (0, myform.MdiChildren.Length, "#21a");
763 Assert.AreEqual (1, myform.MdiChildren.Rank, "#21b");
764 Assert.IsFalse (myform.MdiChildren.IsSynchronized, "#21c");
765 Assert.IsNull (myform.MdiParent, "#22");
766 Assert.IsNull (myform.Menu, "#23");
767 Assert.IsNull (myform.MergedMenu, "#24");
768 Assert.IsTrue (myform.MinimizeBox, "#25");
769 Assert.AreEqual (0, myform.MinimumSize.Height, "#26a");
770 Assert.AreEqual (0, myform.MinimumSize.Width, "#26b");
771 Assert.IsTrue (myform.MinimumSize.IsEmpty, "#26c");
772 Assert.IsFalse (myform.Modal, "#27");
773 Assert.AreEqual (1, myform.Opacity, "#28");
774 Assert.AreEqual (0, myform.OwnedForms.Length, "#29a");
775 Assert.AreEqual (1, myform.OwnedForms.Rank, "#29b");
776 Assert.IsNull (myform.Owner, "#30");
777 Assert.IsTrue (myform.ShowInTaskbar, "#31");
778 Assert.AreEqual (300, myform.Size.Height, "#32a");
779 Assert.AreEqual (300, myform.Size.Width, "#32b");
780 Assert.AreEqual (SizeGripStyle.Auto, myform.SizeGripStyle, "#33");
781 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, myform.StartPosition, "#34");
782 Assert.IsTrue (myform.TopLevel, "#35");
783 Assert.IsFalse (myform.TopMost, "#36");
784 Assert.AreEqual (Color.Empty, myform.TransparencyKey, "#37");
785 Assert.AreEqual (FormWindowState.Normal, myform.WindowState, "#38");
786 Assert.AreEqual (ImeMode.NoControl, myform.ImeMode, "#39");
791 [Category ("NotWorking")]
792 public void ActivateTest ()
794 Form myform = new Form ();
795 myform.ShowInTaskbar = false;
796 myform.Visible = true;
797 myform.Text = "NewForm";
798 myform.Name = "FormTest";
800 Assert.AreEqual (true, myform.Focus (), "#40");
805 public void AddOwnedFormTest ()
807 Form parent = new Form ();
808 parent.ShowInTaskbar = false;
809 parent.Text = "NewParent";
810 Form ownedForm = new Form ();
811 ownedForm.ShowInTaskbar = false;
812 ownedForm.Text = "Owned Form";
813 parent.AddOwnedForm (ownedForm);
815 Assert.AreEqual ("NewParent", ownedForm.Owner.Text, "#41");
816 ownedForm.Dispose ();
821 public void IsHandleCreated ()
823 Form main = new Form ();
825 main.IsMdiContainer = true;
826 main.ShowInTaskbar = false;
827 Assert.IsFalse (main.IsHandleCreated, "#1");
829 Form child = new Form ();
830 child.MdiParent = main;
831 child.WindowState = FormWindowState.Maximized;
832 Assert.IsFalse (main.IsHandleCreated, "#2");
835 Assert.IsFalse (child.IsHandleCreated, "#3");
836 Assert.IsFalse (main.IsHandleCreated, "#4");
839 Assert.IsTrue (child.IsHandleCreated, "#5");
840 Assert.IsTrue (main.IsHandleCreated, "#6");
847 public void RemoveOwnedFormTest ()
849 Form myform = new Form ();
850 myform.ShowInTaskbar = false;
851 myform.Text = "NewForm";
852 myform.Name = "FormTest";
853 myform.RemoveOwnedForm (myform);
855 Assert.AreEqual (null, myform.Owner, "#44");
860 public void SetDesktopBoundsTest ()
862 Form myform = new Form ();
863 myform.ShowInTaskbar = false;
864 myform.Visible = true;
865 myform.Text = "NewForm";
866 myform.Name = "FormTest";
867 myform.SetDesktopBounds (10, 10, 200 , 200);
868 Assert.AreEqual (200, myform.DesktopBounds.Height, "#45");
873 public void SetDesktopLocationTest ()
875 Form myform = new Form ();
876 myform.ShowInTaskbar = false;
877 myform.Visible = true;
878 myform.Text = "NewForm";
879 myform.Name = "FormTest";
880 myform.SetDesktopLocation (10, 10);
881 Assert.AreEqual (10, myform.DesktopLocation.X, "#46");
886 public void SetDialogResultOutOfRange ()
888 Form myform = new Form ();
889 myform.ShowInTaskbar = false;
891 myform.DialogResult = (DialogResult) (-1);
893 } catch (InvalidEnumArgumentException) {
897 myform.DialogResult = (DialogResult) ((int) DialogResult.No + 1);
899 } catch (InvalidEnumArgumentException) {
904 void myform_set_dialogresult (object sender, EventArgs e)
906 Form f = (Form)sender;
908 f.DialogResult = DialogResult.OK;
911 void myform_close (object sender, EventArgs e)
913 Form f = (Form)sender;
919 public void SetDialogResult ()
921 Form myform = new Form ();
922 myform.ShowInTaskbar = false;
923 myform.Visible = true;
925 myform.DialogResult = DialogResult.Cancel;
927 Assert.IsTrue (myform.Visible, "A1");
928 Assert.IsFalse (myform.IsDisposed, "A2");
932 Assert.IsFalse (myform.Visible, "A3");
933 Assert.IsTrue (myform.IsDisposed, "A4");
937 myform = new Form ();
938 myform.ShowInTaskbar = false;
939 myform.VisibleChanged += new EventHandler (myform_set_dialogresult);
940 result = myform.ShowDialog ();
942 Assert.AreEqual (result, DialogResult.OK, "A5");
943 Assert.IsFalse (myform.Visible, "A6");
944 Assert.IsFalse (myform.IsDisposed, "A7");
947 myform = new Form ();
948 myform.ShowInTaskbar = false;
949 myform.VisibleChanged += new EventHandler (myform_close);
950 result = myform.ShowDialog ();
952 Assert.AreEqual (result, DialogResult.Cancel, "A8");
953 Assert.IsFalse (myform.Visible, "A9");
954 Assert.IsFalse (myform.IsDisposed, "A10");
960 public void ShowDialog_Child ()
962 Form main = new Form ();
963 main.IsMdiContainer = true;
964 Form child = new Form ();
965 child.MdiParent = main;
969 } catch (InvalidOperationException ex) {
970 // Forms that are not top level forms cannot be displayed as a
971 // modal dialog. Remove the form from any parent form before
972 // calling ShowDialog.
973 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
974 Assert.IsNull (ex.InnerException, "#3");
975 Assert.IsNotNull (ex.Message, "#4");
977 Assert.IsNull (child.Owner, "#5");
983 public void ShowDialog_Disabled ()
985 Form form = new Form ();
986 form.Enabled = false;
990 } catch (InvalidOperationException ex) {
991 // Forms that are not enabled cannot be displayed as a modal
992 // dialog. Set the form's enabled property to true before
993 // calling ShowDialog.
994 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
995 Assert.IsNull (ex.InnerException, "#A3");
996 Assert.IsNotNull (ex.Message, "#A4");
998 Assert.IsNull (form.Owner, "#A5");
1001 Form main = new Form ();
1004 form.Enabled = false;
1007 Assert.Fail ("#B1");
1008 } catch (InvalidOperationException) {
1010 Assert.IsNotNull (form.Owner, "#B2");
1011 Assert.AreSame (main, form.Owner, "#B3");
1017 [Category ("NotWorking")]
1018 public void ShowDialog_Owner_Circular ()
1020 Form main = new Form ();
1021 Form child = new Form ();
1024 main.ShowDialog (child);
1026 } catch (ArgumentException ex) {
1027 // A circular control reference has been made. A control cannot
1028 // be owned or parented to itself
1029 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
1030 Assert.IsNull (ex.InnerException, "#3");
1031 Assert.IsNotNull (ex.Message, "#4");
1032 Assert.IsNull (ex.ParamName, "#5");
1034 Assert.IsNull (main.Owner, "#6");
1039 [Test] // bug #80773
1040 public void ShowDialog_Owner_Self ()
1042 Form form = new Form ();
1044 form.ShowDialog (form);
1045 Assert.Fail ("#A1");
1046 } catch (ArgumentException ex) {
1047 // Forms cannot own themselves or their owners
1048 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
1049 Assert.IsNull (ex.InnerException, "#A3");
1050 Assert.IsNotNull (ex.Message, "#A4");
1051 Assert.IsNotNull (ex.ParamName, "#A5");
1052 Assert.AreEqual ("owner", ex.ParamName, "#A6");
1054 Assert.IsNull (form.Owner, "#A7");
1057 Form main = new Form ();
1061 form.ShowDialog (form);
1062 Assert.Fail ("#B1");
1063 } catch (ArgumentException) {
1065 Assert.IsNotNull (form.Owner);
1066 Assert.AreSame (main, form.Owner, "#B2");
1072 public void ShowDialog_Visible ()
1074 Form form = new Form ();
1075 form.ShowInTaskbar = false;
1076 form.Visible = true;
1079 Assert.Fail ("#A1");
1080 } catch (InvalidOperationException ex) {
1081 // Forms that are already visible cannot be displayed as a modal
1082 // dialog. Set the form's visible property to false before
1083 // calling ShowDialog.
1084 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
1085 Assert.IsNull (ex.InnerException, "#A3");
1086 Assert.IsNotNull (ex.Message, "#A4");
1088 Assert.IsNull (form.Owner, "#A5");
1091 Form main = new Form ();
1094 form.Visible = true;
1097 Assert.Fail ("#B1");
1098 } catch (InvalidOperationException) {
1100 Assert.IsNotNull (form.Owner, "#B2");
1101 Assert.AreSame (main, form.Owner, "#B3");
1106 [Test] // bug #80604
1107 public void VisibleOnLoad ()
1109 MockForm form = new MockForm ();
1110 form.CloseOnLoad = true;
1111 Application.Run (form);
1112 Assert.IsTrue (form.VisibleOnLoad, "#1");
1115 form = new MockForm ();
1116 form.ShowInTaskbar = false;
1118 Assert.IsTrue (form.VisibleOnLoad, "#2");
1122 [Test] // bug #80052
1123 [Category ("NotWorking")]
1124 public void Location ()
1130 Form formA = new Form ();
1131 formA.ShowInTaskbar = false;
1132 formA.StartPosition = FormStartPosition.CenterParent;
1133 formA.Location = new Point (151, 251);
1136 Assert.AreEqual (FormStartPosition.CenterParent, formA.StartPosition, "#A1");
1137 Assert.IsFalse (formA.Location.X == 151, "#A2");
1138 Assert.IsFalse (formA.Location.Y == 251, "#A3");
1140 formA.Location = new Point (311, 221);
1142 Assert.AreEqual (FormStartPosition.CenterParent, formA.StartPosition, "#A4");
1143 Assert.AreEqual (311, formA.Location.X, "#A5");
1144 Assert.AreEqual (221, formA.Location.Y, "#A6");
1152 Form formB = new Form ();
1153 formB.ShowInTaskbar = false;
1154 formB.StartPosition = FormStartPosition.CenterScreen;
1155 formB.Location = new Point (151, 251);
1158 Assert.AreEqual (FormStartPosition.CenterScreen, formB.StartPosition, "#B1");
1159 Assert.IsFalse (formB.Location.X == 151, "#B2");
1160 Assert.IsFalse (formB.Location.Y == 251, "#B3");
1162 formB.Location = new Point (311, 221);
1164 Assert.AreEqual (FormStartPosition.CenterScreen, formB.StartPosition, "#B4");
1165 Assert.AreEqual (311, formB.Location.X, "#B5");
1166 Assert.AreEqual (221, formB.Location.Y, "#B6");
1174 Form formC = new Form ();
1175 formC.ShowInTaskbar = false;
1176 formC.StartPosition = FormStartPosition.Manual;
1177 formC.Location = new Point (151, 251);
1180 Assert.AreEqual (FormStartPosition.Manual, formC.StartPosition, "#C1");
1181 Assert.AreEqual (151, formC.Location.X, "#C2");
1182 Assert.AreEqual (251, formC.Location.Y, "#C3");
1184 formC.Location = new Point (311, 221);
1186 Assert.AreEqual (FormStartPosition.Manual, formC.StartPosition, "#C4");
1187 Assert.AreEqual (311, formC.Location.X, "#C5");
1188 Assert.AreEqual (221, formC.Location.Y, "#C6");
1193 // WindowsDefaultBounds
1196 Form formD = new Form ();
1197 formD.ShowInTaskbar = false;
1198 formD.StartPosition = FormStartPosition.WindowsDefaultBounds;
1199 formD.Location = new Point (151, 251);
1202 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, formD.StartPosition, "#D1");
1203 Assert.IsFalse (formD.Location.X == 151, "#D2");
1204 Assert.IsFalse (formD.Location.Y == 251, "#D3");
1206 formD.Location = new Point (311, 221);
1208 Assert.AreEqual (FormStartPosition.WindowsDefaultBounds, formD.StartPosition, "#D4");
1209 Assert.AreEqual (311, formD.Location.X, "#D5");
1210 Assert.AreEqual (221, formD.Location.Y, "#D6");
1215 // WindowsDefaultLocation
1218 Form formE = new Form ();
1219 formE.ShowInTaskbar = false;
1220 formE.Location = new Point (151, 251);
1223 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, formE.StartPosition, "#E1");
1224 Assert.IsFalse (formE.Location.X == 151, "#E2");
1225 Assert.IsFalse (formE.Location.Y == 251, "#E3");
1227 formE.Location = new Point (311, 221);
1229 Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, formE.StartPosition, "#E4");
1230 Assert.AreEqual (311, formE.Location.X, "#E5");
1231 Assert.AreEqual (221, formE.Location.Y, "#E6");
1237 public void DisposeOwnerTest ()
1239 Form f1 = new Form ();
1240 Form f2 = new Form ();
1246 Assert.IsNull (f2.Owner, "1");
1247 Assert.AreEqual (0, f1.OwnedForms.Length, "2");
1251 [ExpectedException (typeof (ObjectDisposedException))]
1252 public void AccessDisposedForm ()
1254 Form myform = new Form ();
1255 myform.ShowInTaskbar = false;
1258 myform.Close (); // this should result in the form being disposed
1259 myform.Show (); // and this line should result in the ODE being thrown
1264 public void DoDestroyHandle ()
1268 public void DoRecreateHandle ()
1274 int handle_destroyed_count;
1275 void handle_destroyed (object sender, EventArgs e)
1277 handle_destroyed_count++;
1281 public void DestroyHandleTest ()
1283 handle_destroyed_count = 0;
1285 MyForm f1 = new MyForm ();
1286 f1.HandleDestroyed += new EventHandler (handle_destroyed);
1288 f1.DoDestroyHandle ();
1289 Assert.AreEqual (1, handle_destroyed_count, "1");
1291 MyForm f2 = new MyForm ();
1292 f2.HandleDestroyed += new EventHandler (handle_destroyed);
1294 f2.DoRecreateHandle ();
1295 Assert.AreEqual (2, handle_destroyed_count, "2");
1302 public void FormClose ()
1304 Form myform = new Form ();
1305 myform.ShowInTaskbar = false;
1307 Assert.IsFalse (myform.Visible, "A1");
1308 Assert.IsFalse (myform.IsDisposed, "A2");
1312 Assert.IsFalse (myform.Visible, "A3");
1313 Assert.IsFalse (myform.IsDisposed, "A4");
1317 Assert.IsTrue (myform.Visible, "A5");
1318 Assert.IsFalse (myform.IsDisposed, "A6");
1322 Assert.IsFalse (myform.Visible, "A7");
1323 Assert.IsTrue (myform.IsDisposed, "A8");
1327 public void FormClose2 ()
1329 WMCloseWatcher f = new WMCloseWatcher ();
1330 f.ShowInTaskbar = false;
1333 Assert.IsFalse (f.Visible, "A1");
1335 Assert.AreEqual (0, f.close_count, "A2");
1340 Assert.AreEqual (1, f.close_count, "A3");
1343 class WMCloseWatcher : Form {
1344 public int close_count;
1346 protected override void WndProc (ref Message msg) {
1347 if (msg.Msg == 0x0010 /* WM_CLOSE */) {
1351 base.WndProc (ref msg);
1355 class SwallowOnActivated : Form {
1356 protected override void OnActivated (EventArgs e)
1361 protected override void OnCreateControl () {
1362 base.OnCreateControl ();
1366 class EnterTest : Button {
1367 protected override void OnEnter (EventArgs e)
1373 public bool on_enter;
1377 public void OnActivateEventHandlingTest1 ()
1379 if (TestHelper.RunningOnUnix) {
1380 Assert.Ignore ("Relies on form.Show() synchronously generating WM_ACTIVATE");
1383 SwallowOnActivated f = new SwallowOnActivated ();
1385 f.ShowInTaskbar = false;
1387 EnterTest c = new EnterTest ();
1392 Assert.IsTrue (c.on_enter, "1");
1399 public void FormClosingEvents ()
1402 Form f = new Form ();
1403 string events = string.Empty;
1405 f.Closing += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { events += ("Closing;"); });
1406 f.FormClosing += new FormClosingEventHandler (delegate (Object obj, FormClosingEventArgs e) { events += string.Format ("FormClosing [Reason:{0} - Cancel:{1}]", e.CloseReason, e.Cancel); });
1411 Assert.AreEqual ("Closing;FormClosing [Reason:UserClosing - Cancel:False]", events, "A1");
1415 public void FormClosingEventsCancel ()
1417 // Shows that setting Cancel in Closing flows through to FormClosing
1418 Form f = new Form ();
1419 string events = string.Empty;
1421 f.Closing += new CancelEventHandler (delegate (Object obj, CancelEventArgs e) { events += ("Closing;"); e.Cancel = true; });
1422 f.FormClosing += new FormClosingEventHandler (delegate (Object obj, FormClosingEventArgs e) { events += string.Format("FormClosing [Reason:{0} - Cancel:{1}]", e.CloseReason, e.Cancel); e.Cancel = false; });
1427 Assert.AreEqual ("Closing;FormClosing [Reason:UserClosing - Cancel:True]", events, "A1");
1431 public void FormClosedEvents ()
1434 Form f = new Form ();
1435 string events = string.Empty;
1437 f.Closed += new EventHandler (delegate (Object obj, EventArgs e) { events += ("Closed;"); });
1438 f.FormClosed += new FormClosedEventHandler (delegate (Object obj, FormClosedEventArgs e) { events += string.Format ("FormClosed [Reason:{0}]", e.CloseReason); });
1443 Assert.AreEqual ("Closed;FormClosed [Reason:UserClosing]", events, "A1");
1447 public void ShowWithOwner ()
1449 Form f = new Form ();
1450 Button b = new Button ();
1453 Form f2 = new Form ();
1457 Assert.AreSame (f, f2.Owner, "A1");
1463 Assert.AreSame (f, f2.Owner, "A2");
1466 Button b2 = new Button ();
1470 Assert.AreEqual (null, f2.Owner, "A3");
1475 Assert.AreEqual (null, f2.Owner, "A4");
1482 [ExpectedException (typeof (InvalidOperationException))]
1483 public void ShowWithOwnerIOE ()
1485 using (Form f = new Form ()) {
1490 [Test] // Bug #79959, #80574, #80791
1491 [Category ("NotWorking")]
1492 public void BehaviorResizeOnBorderStyleChanged ()
1494 // Marked NotWorking because the ClientSize is dependent on the WM.
1495 // The values below match XP Luna to make sure our behavior is the same.
1496 Form f = new Form ();
1497 f.ShowInTaskbar = false;
1500 Assert.AreEqual (true, f.IsHandleCreated, "A0");
1502 Assert.AreEqual (new Size (300, 300), f.Size, "A1");
1503 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A2");
1505 f.FormBorderStyle = FormBorderStyle.Fixed3D;
1506 Assert.AreEqual (new Size (302, 302), f.Size, "A3");
1507 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A4");
1509 f.FormBorderStyle = FormBorderStyle.FixedDialog;
1510 Assert.AreEqual (new Size (298, 298), f.Size, "A5");
1511 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A6");
1513 f.FormBorderStyle = FormBorderStyle.FixedSingle;
1514 Assert.AreEqual (new Size (298, 298), f.Size, "A7");
1515 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A8");
1517 f.FormBorderStyle = FormBorderStyle.FixedToolWindow;
1518 Assert.AreEqual (new Size (298, 290), f.Size, "A9");
1519 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A0");
1521 f.FormBorderStyle = FormBorderStyle.None;
1522 Assert.AreEqual (new Size (292, 266), f.Size, "A11");
1523 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A12");
1525 f.FormBorderStyle = FormBorderStyle.SizableToolWindow;
1526 Assert.AreEqual (new Size (300, 292), f.Size, "A13");
1527 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A14");
1529 f.FormBorderStyle = FormBorderStyle.Sizable;
1530 Assert.AreEqual (new Size (300, 300), f.Size, "A15");
1531 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A16");
1536 [Test] // Bug #80574, #80791
1537 [Category ("NotWorking")]
1538 public void BehaviorResizeOnBorderStyleChangedNotVisible ()
1540 // Marked NotWorking because the ClientSize is dependent on the WM.
1541 // The values below match XP Luna to make sure our behavior is the same.
1542 Form f = new Form ();
1543 f.ShowInTaskbar = false;
1545 Assert.AreEqual (false, f.IsHandleCreated, "A0");
1547 Assert.AreEqual (new Size (300, 300), f.Size, "A1");
1548 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A2");
1550 f.FormBorderStyle = FormBorderStyle.Fixed3D;
1551 Assert.AreEqual (new Size (300, 300), f.Size, "A3");
1552 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A4");
1554 f.FormBorderStyle = FormBorderStyle.FixedDialog;
1555 Assert.AreEqual (new Size (300, 300), f.Size, "A5");
1556 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A6");
1558 f.FormBorderStyle = FormBorderStyle.FixedSingle;
1559 Assert.AreEqual (new Size (300, 300), f.Size, "A7");
1560 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A8");
1562 f.FormBorderStyle = FormBorderStyle.FixedToolWindow;
1563 Assert.AreEqual (new Size (300, 300), f.Size, "A9");
1564 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A0");
1566 f.FormBorderStyle = FormBorderStyle.None;
1567 Assert.AreEqual (new Size (300, 300), f.Size, "A11");
1568 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A12");
1570 f.FormBorderStyle = FormBorderStyle.SizableToolWindow;
1571 Assert.AreEqual (new Size (300, 300), f.Size, "A13");
1572 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A14");
1574 f.FormBorderStyle = FormBorderStyle.Sizable;
1575 Assert.AreEqual (new Size (300, 300), f.Size, "A15");
1576 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A16");
1579 [Test] // Bug #80574, #80791
1580 [Category ("NotWorking")]
1581 public void MoreBehaviorResizeOnBorderStyleChangedNotVisible ()
1583 // Marked NotWorking because the ClientSize is dependent on the WM.
1584 // The values below match XP Luna to make sure our behavior is the same.
1585 Form f = new Form ();
1586 f.ShowInTaskbar = false;
1591 Assert.AreEqual (true, f.IsHandleCreated, "A0");
1593 f.FormBorderStyle = FormBorderStyle.Sizable;
1594 Assert.AreEqual (new Size (300, 300), f.Size, "A1");
1595 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A2");
1596 f.FormBorderStyle = FormBorderStyle.None;
1597 Assert.AreEqual (new Size (292, 266), f.Size, "A3");
1598 Assert.AreEqual (new Size (292, 266), f.ClientSize, "A4");
1602 [Test] // Bug #80773
1603 public void DontSetOwnerOnShowDialogException ()
1605 Form f = new Form ();
1606 f.ShowInTaskbar = false;
1608 try { f.ShowDialog (f); }
1611 Assert.AreEqual (null, f.Owner, "H1");
1616 private class MockForm : Form
1618 public bool CloseOnLoad {
1619 get { return _closeOnLoad; }
1620 set { _closeOnLoad = value; }
1623 public bool VisibleOnLoad {
1624 get { return _visibleOnLoad; }
1627 protected override void OnLoad(EventArgs e) {
1629 _visibleOnLoad = Visible;
1634 private bool _closeOnLoad;
1635 private bool _visibleOnLoad;
1638 private class TimeBombedForm : Form
1641 public TimeBombedForm ()
1643 timer = new Timer ();
1644 timer.Interval = 100;
1645 timer.Tick += new EventHandler (timer_Tick);
1649 void timer_Tick (object sender, EventArgs e)