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;
15 using NUnit.Framework;
17 namespace MonoTests.System.Windows.Forms
20 public class MdiFormTest
25 Form main = null, child1 = null, child2 = null, child3 = null;
28 main.IsMdiContainer = true;
30 main.Text = main.Name;
33 Assert.AreEqual ("main", main.Text, "#1");
36 child1.Name = "child1";
37 child1.MdiParent = main;
38 child1.Text = child1.Name;
39 child1.WindowState = FormWindowState.Maximized;
42 Assert.AreEqual ("main - [child1]", main.Text, "#2");
45 child2.Name = "child2";
46 child1.MdiParent = main;
47 child2.Text = string.Empty;
48 child2.WindowState = FormWindowState.Maximized;
51 Assert.AreEqual ("main - [child1]", main.Text, "#3");
54 Assert.AreEqual ("main - [child1]", main.Text, "#4");
56 child1.WindowState = FormWindowState.Minimized;
57 Assert.AreEqual ("main", main.Text, "#5");
60 Assert.AreEqual ("main", main.Text, "#6");
62 child2.WindowState = FormWindowState.Maximized;
63 Assert.AreEqual ("main", main.Text, "#7");
66 child3.Name = "child3";
67 child3.MdiParent = main;
68 child3.Text = child3.Name;
69 child3.WindowState = FormWindowState.Maximized;
72 Assert.AreEqual ("main - [child3]", main.Text, "#8");
73 child3.WindowState = FormWindowState.Normal;
74 Assert.AreEqual ("main", main.Text, "#9");
76 main.Text = string.Empty;
77 child3.WindowState = FormWindowState.Maximized;
78 Assert.AreEqual (" - [child3]", main.Text, "#10");
80 child3.Text = string.Empty;
81 Assert.AreEqual (string.Empty, main.Text, "#11");
89 // Setting Text of the MDI containiner before setting IsMdiContainer to
90 // true causes #2 to fail on Mono
92 [Category ("NotWorking")]
93 public void Text_MdiContainer ()
95 Form main = new Form ();
96 main.ShowInTaskbar = false;
98 main.IsMdiContainer = true;
101 Assert.AreEqual ("main", main.Text, "#1");
103 Form child = new Form ();
104 child.Name = "child";
105 child.MdiParent = main;
106 child.Text = child.Name;
107 child.WindowState = FormWindowState.Maximized;
110 Assert.AreEqual ("main - [child]", main.Text, "#2");
114 [Category ("NotWorking")]
115 public void Text_ChildClose ()
117 Form main = new Form ();
118 main.ShowInTaskbar = false;
119 main.IsMdiContainer = true;
123 Assert.AreEqual ("main", main.Text, "#1");
125 Form child = new Form ();
126 child.Name = "child";
127 child.MdiParent = main;
128 child.Text = child.Name;
129 child.WindowState = FormWindowState.Maximized;
132 Assert.AreEqual ("main - [child]", main.Text, "#2");
135 Assert.AreEqual ("main", main.Text, "#3");
138 // Setting WindowState to Maximized of a form, of which the handle is
139 // already created, does not make it ActiveMdiChild
141 [Category ("NotWorking")]
142 public void Text_Maximized ()
144 Form main = new Form ();
145 main.IsMdiContainer = true;
147 main.Text = main.Name;
150 Assert.AreEqual ("main", main.Text, "#1");
152 Form child1 = new Form ();
153 child1.Name = "child1";
154 child1.MdiParent = main;
155 child1.Text = child1.Name;
156 child1.WindowState = FormWindowState.Maximized;
159 Assert.AreEqual ("main - [child1]", main.Text, "#2");
161 Form child2 = new Form ();
162 child2.Name = "child2";
163 child2.MdiParent = main;
164 child2.Text = child2.Name;
165 child2.WindowState = FormWindowState.Maximized;
168 Assert.AreEqual ("main - [child2]", main.Text, "#3");
170 child1.WindowState = FormWindowState.Maximized;
172 Assert.AreEqual ("main - [child1]", main.Text, "#4");
175 // Form.ActiveMdiChild should return null if handle is not yet created
176 // Depends on fix for bug #80020
178 [Category("NotWorking")]
179 public void ActiveMdiChild ()
181 Form main, child1, child2;
184 main.IsMdiContainer = true;
187 child1 = new Form ();
188 child1.Name = "child1";
189 child1.MdiParent = main;
190 child1.WindowState = FormWindowState.Maximized;
193 child2 = new Form ();
194 child2.Name = "child2";
195 child2.MdiParent = main;
198 Assert.IsNull (main.ActiveMdiChild, "#1");
201 Assert.AreSame (child2, main.ActiveMdiChild, "#2");
203 child1.WindowState = FormWindowState.Maximized;
204 Assert.AreSame (child1, main.ActiveMdiChild, "#3");
206 child2.WindowState = FormWindowState.Maximized;
207 Assert.AreSame (child2, main.ActiveMdiChild, "#4");
209 main.Visible = false;
211 Assert.IsNull (main.ActiveMdiChild, "#5");
213 Assert.AreSame (child2, main.ActiveMdiChild, "#5");
223 public void MdiChild_WindowState1 ()
225 Form main = null, child1 = null, child2 = null;
229 main.IsMdiContainer = true;
232 child1 = new Form ();
233 child1.Name = "child1";
234 child1.MdiParent = main;
235 child1.WindowState = FormWindowState.Maximized;
238 child2 = new Form ();
239 child2.Name = "child2";
240 child2.MdiParent = main;
243 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
244 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#2");
246 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
247 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
257 public void MdiChild_WindowState2 ()
259 Form main = null, child1 = null, child2 = null;
264 main.IsMdiContainer = true;
267 child1 = new Form ();
268 child1.Name = "child1";
269 child1.MdiParent = main;
270 child1.WindowState = FormWindowState.Maximized;
273 child2 = new Form ();
274 child2.Name = "child2";
275 child2.MdiParent = main;
279 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
280 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
291 public void MdiChild_WindowState3 ()
293 Form main = null, child1 = null, child2 = null;
296 main.IsMdiContainer = true;
299 child1 = new Form ();
300 child1.MdiParent = main;
303 child2 = new Form ();
304 child2.MdiParent = main;
305 child2.WindowState = FormWindowState.Maximized;
308 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
309 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
320 public void MdiChild_WindowState4 ()
322 Form main = null, child1 = null, child2 = null;
325 main.IsMdiContainer = true;
328 child1 = new Form ();
329 child1.MdiParent = main;
330 child1.WindowState = FormWindowState.Maximized;
333 child2 = new Form ();
334 child2.MdiParent = main;
335 child2.WindowState = FormWindowState.Maximized;
337 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
338 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
342 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
343 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
345 child2.WindowState = FormWindowState.Normal;
347 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#5");
348 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
358 public void MdiChild_WindowState5 ()
360 Form main = null, child1 = null, child2 = null;
364 main.IsMdiContainer = true;
367 child1 = new Form ();
368 child1.Name = "child1";
369 child1.MdiParent = main;
370 child1.WindowState = FormWindowState.Maximized;
373 child2 = new Form ();
374 child2.Name = "child2";
375 child2.MdiParent = main;
376 child2.WindowState = FormWindowState.Maximized;
378 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
379 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
383 Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
384 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
388 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
389 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
399 public void MdiChild_WindowState6 ()
401 Form main = null, child1 = null, child2 = null;
406 main.IsMdiContainer = true;
409 child1 = new Form ();
410 child1.Name = "child1";
411 child1.MdiParent = main;
412 child1.WindowState = FormWindowState.Minimized;
415 child2 = new Form ();
416 child2.Name = "child2";
417 child2.MdiParent = main;
418 child2.WindowState = FormWindowState.Maximized;
420 Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#1");
421 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
425 Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#3");
426 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
430 Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
431 Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
435 Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#7");
436 Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#8");