2 // MdiFormTest.cs: Test cases for MDI Forms.
5 // Rolf Bjarne Kvinge (RKvinge@novell.com)
7 // (C) 2006 Novell, Inc. (http://www.novell.com)
12 using System.Reflection;
13 using System.Windows.Forms;
14 using System.ComponentModel;
15 using NUnit.Framework;
16 using CategoryAttribute = NUnit.Framework.CategoryAttribute;
18 namespace MonoTests.System.Windows.Forms
21 public class MdiFormTest
29 public void TearDown ()
45 // No attribute here since this is supposed to be called from
46 // each test directly, not by nunit.
47 public void SetUp (bool only_create, bool only_text)
49 SetUp (only_create, only_text, false);
52 // No attribute here since this is supposed to be called from
53 // each test directly, not by nunit.
54 public void SetUp (bool only_create, bool only_text, bool set_parent)
66 main.Text = main.Name = "main";
67 main.ShowInTaskbar = false;
68 child1.Text = child1.Name = "child1";
69 child2.Text = child2.Name = "child2";
70 child3.Text = child3.Name = "child3";
75 main.IsMdiContainer = true;
78 child1.MdiParent = main;
79 child2.MdiParent = main;
80 child3.MdiParent = main;
85 public void ActiveControlTest ()
87 SetUp (false, false, true);
91 Assert.IsNull (main.ActiveControl, "#01");
92 child1.Visible = true;
93 Assert.AreSame (child1, main.ActiveControl, "#02");
94 child2.Visible = true;
95 Assert.AreSame (child2, main.ActiveControl, "#03");
96 child3.Visible = true;
97 Assert.AreSame (child3, main.ActiveControl, "#04");
102 public void SelectNextControlTest ()
104 SetUp (false, false, true);
108 child1.Visible = true;
109 child2.Visible = true;
110 child3.Visible = true;
112 main.SelectNextControl (main.ActiveControl, true, false, true, true);
113 Assert.AreSame (child1, main.ActiveControl, "#01");
114 main.SelectNextControl (main.ActiveControl, true, false, true, true);
115 Assert.AreSame (child2, main.ActiveControl, "#02");
116 main.SelectNextControl (main.ActiveControl, true, false, true, true);
117 Assert.AreSame (child3, main.ActiveControl, "#03");
123 public void SelectPreviousControlTest ()
125 SetUp (false, false, true);
129 child1.Visible = true;
130 child2.Visible = true;
131 child3.Visible = true;
133 main.SelectNextControl (main.ActiveControl, false, false, true, true);
134 Assert.AreSame (child2, main.ActiveControl, "#01");
135 main.SelectNextControl (main.ActiveControl, false, false, true, true);
136 Assert.AreSame (child1, main.ActiveControl, "#02");
137 main.SelectNextControl (main.ActiveControl, false, false, true, true);
138 Assert.AreSame (child3, main.ActiveControl, "#03");
144 public class CloseTest
146 class ChildForm : Form
150 Closed += new EventHandler (ChildForm_Closed);
151 Closing += new CancelEventHandler (ChildForm_Closing);
153 FormClosed += new FormClosedEventHandler (ChildForm_FormClosed);
154 FormClosing += new FormClosingEventHandler (ChildForm_FormClosing);
158 void ChildForm_FormClosing (object sender, FormClosingEventArgs e)
160 Assert.IsNotNull (MdiParent, "ChildForm_FormClosing");
163 void ChildForm_FormClosed (object sender, FormClosedEventArgs e)
165 Assert.IsNotNull (MdiParent, "ChildForm_FormClosed");
168 void ChildForm_Closing (object sender, CancelEventArgs e)
170 Assert.IsNotNull (MdiParent, "ChildForm_Closing");
173 void ChildForm_Closed (object sender, EventArgs e)
175 Assert.IsNotNull (MdiParent, "ChildForm_Closed");
178 protected override void OnClosed (EventArgs e)
180 Assert.IsNotNull (MdiParent, "OnClosed 1");
182 Assert.IsNotNull (MdiParent, "OnClosed 2");
185 protected override void OnClosing (CancelEventArgs e)
187 Assert.IsNotNull (MdiParent, "OnClosing 1");
189 Assert.IsNotNull (MdiParent, "OnClosing 2");
194 public void Test () {
195 using (Form main = new Form ()) {
196 main.IsMdiContainer = true;
197 main.ShowInTaskbar = false;
200 ChildForm child = new ChildForm ();
201 EventLogger log = new EventLogger (child);
202 child.MdiParent = main;
203 child.Visible = true;
206 Assert.AreEqual (1, log.CountEvents ("Closed"), "#01");
207 Assert.AreEqual (1, log.CountEvents ("Closing"), "#02");
208 Assert.IsNull (child.MdiParent, "#03");
209 Assert.AreEqual (0, main.MdiChildren.Length, "#04");
210 Assert.AreEqual (false, child.IsMdiChild, "#05");
215 [Category ("NotWorking")]
216 public void StartLocationTest ()
218 SetUp (false, false);
220 child1.MdiParent = main;
221 child2.MdiParent = main;
223 child1.Visible = true;
224 child2.Visible = true;
228 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
229 Assert.AreEqual (true, "{X=0,Y=0}" != child2.Location.ToString (), "#2");
234 /* These tests are all failing on WinXP with XP Theme.
235 * offset seems to be 22,22 normally, and 22,29 with XP theme.
236 * Find a way to test this reliably.
238 [Category("NotWorking")]
240 public void StartLocationTest1 ()
242 SetUp (false, false);
244 child1.MdiParent = main;
245 child2.MdiParent = main;
247 child1.Visible = true;
248 child2.Visible = true;
252 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
253 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
258 [Category("NotWorking")]
260 public void StartLocationTest2 ()
262 SetUp (false, false);
264 child1.MdiParent = main;
265 child2.MdiParent = main;
267 child1.StartPosition = FormStartPosition.Manual;
269 child1.Visible = true;
270 child2.Visible = true;
274 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
275 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
281 [Category("NotWorking")]
283 public void StartLocationTest3 ()
285 SetUp (false, false);
287 child1.MdiParent = main;
288 child2.MdiParent = main;
290 child2.StartPosition = FormStartPosition.Manual;
292 child1.Visible = true;
293 child2.Visible = true;
297 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
298 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
303 [Category("NotWorking")]
305 public void StartLocationTest4 ()
307 SetUp (false, false);
309 child1.MdiParent = main;
310 child2.MdiParent = main;
312 child1.StartPosition = FormStartPosition.Manual;
313 child2.StartPosition = FormStartPosition.Manual;
315 child1.Visible = true;
316 child2.Visible = true;
320 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
321 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
326 [Category("NotWorking")]
328 public void StartLocationTest5 ()
330 SetUp (false, false);
332 child1.MdiParent = main;
333 child2.MdiParent = main;
334 child3.MdiParent = main;
336 child2.StartPosition = FormStartPosition.Manual;
338 child1.Visible = true;
339 child2.Visible = true;
340 child3.Visible = true;
344 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
345 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
346 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
351 [Category("NotWorking")]
353 public void StartLocationTest6 ()
355 SetUp (false, false);
357 child1.MdiParent = main;
358 child2.MdiParent = main;
359 child3.MdiParent = main;
361 child2.StartPosition = FormStartPosition.CenterParent;
363 child1.Visible = true;
364 child2.Visible = true;
365 child3.Visible = true;
369 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
370 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
371 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
376 [Category("NotWorking")]
378 public void StartLocationTest7 ()
380 SetUp (false, false);
382 child1.MdiParent = main;
383 child2.MdiParent = main;
384 child3.MdiParent = main;
386 child2.StartPosition = FormStartPosition.CenterScreen;
388 child1.Visible = true;
389 child2.Visible = true;
390 child3.Visible = true;
394 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
395 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
396 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
401 [Category("NotWorking")]
403 public void StartLocationTest8 ()
405 SetUp (false, false);
407 child1.MdiParent = main;
408 child2.MdiParent = main;
409 child3.MdiParent = main;
411 child2.StartPosition = FormStartPosition.WindowsDefaultBounds;
413 child1.Visible = true;
414 child2.Visible = true;
415 child3.Visible = true;
419 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
420 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
421 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
426 [Category("NotWorking")]
428 public void StartLocationTest9 ()
430 SetUp (false, false);
432 child1.MdiParent = main;
433 child2.MdiParent = main;
434 child3.MdiParent = main;
436 child2.StartPosition = FormStartPosition.WindowsDefaultLocation;
438 child1.Visible = true;
439 child2.Visible = true;
440 child3.Visible = true;
444 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
445 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
446 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
451 [Category("NotWorking")]
453 public void StartLocationTest10 ()
455 SetUp (false, false);
457 child1.MdiParent = main;
458 child2.MdiParent = main;
459 child3.MdiParent = main;
461 child2.StartPosition = FormStartPosition.Manual;
462 child2.Location = new Point (123, 123);
464 child1.Visible = true;
465 child2.Visible = true;
466 child3.Visible = true;
470 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
471 Assert.AreEqual ("{X=123,Y=123}", child2.Location.ToString (), "#2");
472 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
477 [Category("NotWorking")]
479 public void StartLocationTest11 ()
481 SetUp (false, false);
483 child1.MdiParent = main;
484 child2.MdiParent = main;
485 child3.MdiParent = main;
487 child2.Location = new Point (123, 123);
489 Assert.AreEqual ("{X=123,Y=123}", child2.Location.ToString (), "#0");
491 child1.Visible = true;
492 child2.Visible = true;
493 child3.Visible = true;
495 Assert.AreEqual ("{X=123,Y=123}", child2.Location.ToString (), "#0");
499 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
500 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
501 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
506 [Category("NotWorking")]
508 public void StartLocationTest12 ()
510 SetUp (false, false);
512 child1.MdiParent = main;
513 child2.MdiParent = main;
514 child3.MdiParent = main;
516 child1.Visible = true;
517 //child2.Visible = true;
518 child3.Visible = true;
522 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
523 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
524 Assert.AreEqual ("{X=22,Y=22}", child3.Location.ToString (), "#3");
526 child2.Visible = true;
527 Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#4");
529 child1.Visible = false;
530 child1.Visible = true;
531 Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#1");
536 [Category("NotWorking")]
538 public void StartLocationTest13 ()
540 SetUp (false, false);
542 child1.MdiParent = main;
543 child2.MdiParent = main;
544 child3.MdiParent = main;
546 child1.Visible = true;
547 //child2.Visible = true;
548 child3.Visible = true;
552 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
553 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
554 Assert.AreEqual ("{X=22,Y=22}", child3.Location.ToString (), "#3");
556 child2.Visible = true;
557 Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#4");
559 child1.Visible = false;
560 child1.Visible = true;
561 Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#5");
563 child3.Visible = true;
564 Assert.AreEqual ("{X=22,Y=22}", child3.Location.ToString (), "#6");
566 // MDI Child size does not seem to affect layout.
568 child2.Visible = false;
569 child2.Size = new Size (500, 500);
570 child2.Visible = true;
571 Assert.AreEqual ("{X=88,Y=88}", child2.Location.ToString (), "#7");
573 child2.Visible = false;
574 child2.Visible = true;
575 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#8");
577 child2.Visible = false;
578 child2.Visible = true;
579 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#9");
582 child2.Visible = false;
583 child2.Size = new Size (5, 5);
584 child2.Visible = true;
585 Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#10");
587 child2.Visible = false;
588 child2.Visible = true;
589 Assert.AreEqual ("{X=66,Y=66}", child2.Location.ToString (), "#11");
591 child2.Visible = false;
592 child2.Visible = true;
593 Assert.AreEqual ("{X=88,Y=88}", child2.Location.ToString (), "#12");
595 child2.Visible = false;
596 child2.Visible = true;
597 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#13");
602 [Category("NotWorking")]
604 public void StartLocationTest14 ()
606 SetUp (false, false);
608 child1.MdiParent = main;
609 child2.MdiParent = main;
610 child3.MdiParent = main;
612 child2.StartPosition = FormStartPosition.Manual;
613 child2.Location = new Point (44, 44);
614 child1.Visible = true;
615 child2.Visible = true;
616 child3.Visible = true;
620 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
621 Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#2");
622 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
624 child1.Visible = false;
625 child1.Visible = true;
626 Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#4");
631 [Category("NotWorking")]
633 public void StartLocationTest15 ()
635 SetUp (false, false);
637 child1.MdiParent = main;
638 child2.MdiParent = main;
639 child3.MdiParent = main;
643 child1.Visible = true;
644 child2.Visible = true;
645 child2.Location = new Point (22, 44);
646 child3.Visible = true;
648 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
649 Assert.AreEqual ("{X=22,Y=44}", child2.Location.ToString (), "#2");
650 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
652 child1.Visible = false;
653 child1.Visible = true;
654 Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#4");
659 [Category("NotWorking")]
661 public void StartLocationTest16 ()
663 SetUp (false, false);
665 child1.MdiParent = main;
666 child2.MdiParent = main;
667 child3.MdiParent = main;
669 child1.Visible = true;
670 child2.Visible = true;
671 child2.Location = new Point (22, 44);
672 child3.Visible = true;
676 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
677 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
678 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
680 child1.Visible = false;
681 child1.Visible = true;
682 Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#4");
687 [Category("NotWorking")]
689 public void StartLocationTest17 ()
691 SetUp (false, false);
693 child1.MdiParent = main;
694 child2.MdiParent = main;
695 child3.MdiParent = main;
697 child1.Visible = true;
698 child2.Visible = true;
702 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
703 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
704 Assert.AreEqual ("{X=0,Y=0}", child3.Location.ToString (), "#3");
706 child2.Visible = false;
707 child3.Visible = true;
709 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#4");
714 [Category("NotWorking")]
716 public void StartLocationTest18 ()
718 SetUp (false, false);
720 child1.MdiParent = main;
721 child2.MdiParent = main;
722 child3.MdiParent = main;
724 child1.Visible = true;
725 child2.Visible = true;
729 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
730 Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
731 Assert.AreEqual ("{X=0,Y=0}", child3.Location.ToString (), "#3");
733 child2.Visible = false;
738 child3.Visible = true;
740 Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#4");
745 [Category("NotWorking")]
747 public void StartLocationTest19 ()
749 SetUp (false, false);
751 child1.MdiParent = main;
752 child2.MdiParent = main;
753 child3.MdiParent = main;
755 child1.Visible = true;
756 child2.Visible = true;
757 child3.Visible = true;
759 child1.StartPosition = FormStartPosition.Manual;
760 child2.StartPosition = FormStartPosition.Manual;
761 child3.StartPosition = FormStartPosition.Manual;
765 Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
766 Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
767 Assert.AreEqual ("{X=0,Y=0}", child3.Location.ToString (), "#3");
773 public void StartSizeTest1 ()
775 SetUp (false, false);
777 child1.MdiParent = main;
778 child2.MdiParent = main;
779 child3.MdiParent = main;
783 Assert.AreEqual ("{Width=300, Height=300}", main.Size.ToString (), "#1");
784 Assert.AreEqual ("{Width=300, Height=300}", child1.Size.ToString (), "#2");
785 Assert.AreEqual ("{Width=300, Height=300}", child2.Size.ToString (), "#3");
786 Assert.AreEqual ("{Width=300, Height=300}", child3.Size.ToString (), "#4");
788 child1.Visible = true;
789 child2.Visible = true;
790 child3.Visible = true;
792 Assert.AreEqual ("{Width=300, Height=300}", main.Size.ToString (), "#1");
793 Assert.AreEqual ("{Width=300, Height=300}", child1.Size.ToString (), "#2");
794 Assert.AreEqual ("{Width=300, Height=300}", child2.Size.ToString (), "#3");
795 Assert.AreEqual ("{Width=300, Height=300}", child3.Size.ToString (), "#4");
801 public void IsMdiContainerTest ()
806 main.Visible = false;
808 main.IsMdiContainer = true;
810 child1.MdiParent = main;
812 main.IsMdiContainer = false;
814 Assert.AreSame (null, main.ActiveMdiChild, "#1");
817 Assert.AreSame (null, main.ActiveMdiChild, "#2");
819 Assert.AreSame (null, main.MdiParent, "#3");
824 [Category("NotWorking")]
826 [ExpectedException(typeof(ArgumentException), "Cannot add a top level control to a control.")]
827 public void AddToControlsTest ()
832 main.Visible = false;
834 main.Controls.Add (child1);
842 Form main = null, child1 = null, child2 = null, child3 = null;
845 main.IsMdiContainer = true;
847 main.Text = main.Name;
850 Assert.AreEqual ("main", main.Text, "#1");
852 child1 = new Form ();
853 child1.Name = "child1";
854 child1.MdiParent = main;
855 child1.Text = child1.Name;
856 child1.WindowState = FormWindowState.Maximized;
859 Assert.AreEqual ("main - [child1]", main.Text, "#2");
861 child2 = new Form ();
862 child2.Name = "child2";
863 child1.MdiParent = main;
864 child2.Text = string.Empty;
865 child2.WindowState = FormWindowState.Maximized;
868 Assert.AreEqual ("main - [child1]", main.Text, "#3");
871 Assert.AreEqual ("main - [child1]", main.Text, "#4");
873 child1.WindowState = FormWindowState.Minimized;
874 Assert.AreEqual ("main", main.Text, "#5");
877 Assert.AreEqual ("main", main.Text, "#6");
879 child2.WindowState = FormWindowState.Maximized;
880 Assert.AreEqual ("main", main.Text, "#7");
882 child3 = new Form ();
883 child3.Name = "child3";
884 child3.MdiParent = main;
885 child3.Text = child3.Name;
886 child3.WindowState = FormWindowState.Maximized;
889 Assert.AreEqual ("main - [child3]", main.Text, "#8");
890 child3.WindowState = FormWindowState.Normal;
891 Assert.AreEqual ("main", main.Text, "#9");
893 main.Text = string.Empty;
894 child3.WindowState = FormWindowState.Maximized;
895 Assert.AreEqual (" - [child3]", main.Text, "#10");
897 child3.Text = string.Empty;
898 Assert.AreEqual (string.Empty, main.Text, "#11");
907 public void Text_MdiContainer ()
909 Form main = new Form ();
910 main.ShowInTaskbar = false;
912 main.IsMdiContainer = true;
915 Assert.AreEqual ("main", main.Text, "#1");
917 Form child = new Form ();
918 child.Name = "child";
919 child.MdiParent = main;
920 child.Text = child.Name;
921 child.WindowState = FormWindowState.Maximized;
924 Assert.AreEqual ("main - [child]", main.Text, "#2");
930 public void Text_ChildClose ()
932 Form main = new Form ();
933 main.ShowInTaskbar = false;
934 main.IsMdiContainer = true;
938 Assert.AreEqual ("main", main.Text, "#1");
940 Form child = new Form ();
941 child.Name = "child";
942 child.MdiParent = main;
943 child.Text = child.Name;
944 child.WindowState = FormWindowState.Maximized;
947 Assert.AreEqual ("main - [child]", main.Text, "#2");
950 Assert.AreEqual ("main", main.Text, "#3");
956 public void Text_Maximized ()
958 Form main = new Form ();
959 main.IsMdiContainer = true;
961 main.Text = main.Name;
964 Assert.AreEqual ("main", main.Text, "#1");
966 Form child1 = new Form ();
967 child1.Name = "child1";
968 child1.MdiParent = main;
969 child1.Text = child1.Name;
970 child1.WindowState = FormWindowState.Maximized;
973 Assert.AreEqual ("main - [child1]", main.Text, "#2");
975 Form child2 = new Form ();
976 child2.Name = "child2";
977 child2.MdiParent = main;
978 child2.Text = child2.Name;
979 child2.WindowState = FormWindowState.Maximized;
982 Assert.AreEqual ("main - [child2]", main.Text, "#3");
984 child1.WindowState = FormWindowState.Maximized;
986 Assert.AreEqual ("main - [child1]", main.Text, "#4");
992 [Category ("NotWorking")]
993 public void TopLevelTest ()
998 main.IsMdiContainer = true;
1001 child1 = new Form ();
1002 child1.Name = "child1";
1003 Assert.AreEqual (true, child1.TopLevel, "#01");
1004 child1.MdiParent = main;
1005 Assert.AreEqual (false, child1.TopLevel, "#02");
1011 public void ActiveMdiChild ()
1013 Form main, child1, child2;
1016 main.IsMdiContainer = true;
1019 child1 = new Form ();
1020 child1.Name = "child1";
1021 child1.MdiParent = main;
1022 child1.WindowState = FormWindowState.Maximized;
1025 child2 = new Form ();
1026 child2.Name = "child2";
1027 child2.MdiParent = main;
1030 Assert.IsNull (main.ActiveMdiChild, "#1");
1033 Assert.AreSame (child2, main.ActiveMdiChild, "#2");
1035 child1.WindowState = FormWindowState.Maximized;
1036 Assert.AreSame (child1, main.ActiveMdiChild, "#3");
1038 child2.WindowState = FormWindowState.Maximized;
1039 Assert.AreSame (child2, main.ActiveMdiChild, "#4");
1041 main.Visible = false;
1043 Assert.IsNull (main.ActiveMdiChild, "#5");
1045 Assert.AreSame (child2, main.ActiveMdiChild, "#5");
1055 public void ActiveMdiChild2 ()
1057 SetUp (false, false);
1059 child1.MdiParent = main;
1060 child2.MdiParent = main;
1067 child1.Visible = false;
1069 Assert.AreSame (child2, main.ActiveMdiChild, "#1");
1075 public void ActiveMdiChild3 ()
1077 SetUp (false, false);
1079 child1.MdiParent = main;
1080 child2.MdiParent = main;
1082 main.Visible = true;
1083 main.Visible = false;
1085 Assert.AreSame (null, main.ActiveMdiChild, "#1");
1086 //child2.Visible = true; This will cause StackOverflowException on MS.
1087 main.Visible = true;
1088 Assert.AreSame (null, main.ActiveMdiChild, "#2");
1093 public void MdiChild_WindowState1 ()
1095 Form main = null, child1 = null, child2 = null;
1099 main.IsMdiContainer = true;
1102 child1 = new Form ();
1103 child1.Name = "child1";
1104 child1.Text = "child1";
1105 child1.MdiParent = main;
1106 child1.WindowState = FormWindowState.Maximized;
1109 child2 = new Form ();
1110 child2.Name = "child2";
1111 child2.Text = "child2";
1112 child2.MdiParent = main;
1115 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
1116 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#2");
1118 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
1119 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
1129 public void MdiChild_WindowState2 ()
1131 Form main = null, child1 = null, child2 = null;
1136 main.IsMdiContainer = true;
1139 child1 = new Form ();
1140 child1.Name = "child1";
1141 child1.MdiParent = main;
1142 child1.WindowState = FormWindowState.Maximized;
1145 child2 = new Form ();
1146 child2.Name = "child2";
1147 child2.MdiParent = main;
1151 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
1152 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
1163 public void MdiChild_WindowState3 ()
1165 Form main = null, child1 = null, child2 = null;
1168 main.IsMdiContainer = true;
1171 child1 = new Form ();
1172 child1.MdiParent = main;
1175 child2 = new Form ();
1176 child2.MdiParent = main;
1177 child2.WindowState = FormWindowState.Maximized;
1180 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
1181 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
1192 public void MdiChild_WindowState4 ()
1194 Form main = null, child1 = null, child2 = null;
1197 main.IsMdiContainer = true;
1200 child1 = new Form ();
1201 child1.MdiParent = main;
1202 child1.WindowState = FormWindowState.Maximized;
1205 child2 = new Form ();
1206 child2.MdiParent = main;
1207 child2.WindowState = FormWindowState.Maximized;
1209 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
1210 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
1214 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
1215 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
1217 child2.WindowState = FormWindowState.Normal;
1219 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#5");
1220 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
1230 public void MdiChild_WindowState5 ()
1232 Form main = null, child1 = null, child2 = null;
1236 main.IsMdiContainer = true;
1239 child1 = new Form ();
1240 child1.Name = "child1";
1241 child1.MdiParent = main;
1242 child1.WindowState = FormWindowState.Maximized;
1245 child2 = new Form ();
1246 child2.Name = "child2";
1247 child2.MdiParent = main;
1248 child2.WindowState = FormWindowState.Maximized;
1250 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
1251 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
1255 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
1256 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
1260 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
1261 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
1271 public void MdiChild_WindowState6 ()
1273 Form main = null, child1 = null, child2 = null;
1278 main.IsMdiContainer = true;
1281 child1 = new Form ();
1282 child1.Name = "child1";
1283 child1.MdiParent = main;
1284 child1.WindowState = FormWindowState.Minimized;
1287 child2 = new Form ();
1288 child2.Name = "child2";
1289 child2.MdiParent = main;
1290 child2.WindowState = FormWindowState.Maximized;
1292 Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#1");
1293 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
1297 Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#3");
1298 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
1302 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
1303 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
1307 Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#7");
1308 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#8");