2006-02-28 Matt Hergett <matt@use.net>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / FormTest.cs
1 //
2 // FormTest.cs: Test cases for Form.
3 //
4 // Author:
5 //   Ritvik Mayank (mritvik@novell.com)
6 //
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
8 //
9
10 using System;
11 using System.Windows.Forms;
12 using System.Drawing;
13 using System.Reflection;
14 using NUnit.Framework;
15
16 namespace MonoTests.System.Windows.Forms
17 {
18         [TestFixture]
19         public class FormTest
20         {
21                 [Test]
22                 public void FormPropertyTest ()
23                 {
24                         Form myform = new Form ();
25                         myform.Visible = true;
26                         myform.Text = "NewForm";
27                         myform.Name = "FormTest";
28                         Assert.AreEqual (null, myform.AcceptButton, "#1");
29                         //Assert.AreEqual (null, myform.ActiveMdiChild, "#2"); 
30                         //System.NotImplementedException for ActiveMdiChild. Feature not implemented.
31                         Assert.AreEqual (false, myform.AutoScale, "#3");
32                         Assert.AreEqual (13, myform.AutoScaleBaseSize.Height, "#4");
33                         Assert.AreEqual (5, myform.AutoScaleBaseSize.Width, "#5");
34                         Assert.AreEqual (null, myform.CancelButton, "#6");
35                         Assert.AreEqual (273, myform.ClientSize.Height, "#7");
36                         Assert.AreEqual (292, myform.ClientSize.Width, "#8");
37                         Assert.AreEqual (true, myform.ControlBox, "#9");
38                         Assert.IsTrue (myform.DesktopBounds.X > 0, "#10a");
39                         Assert.IsTrue (myform.DesktopBounds.Y > 0, "#10b");
40                         Assert.AreEqual (300, myform.DesktopBounds.Height, "#10c");
41                         Assert.AreEqual (300, myform.DesktopBounds.Width, "#10d");
42                         Assert.IsTrue (myform.DesktopLocation.X > 0, "#11a");
43                         Assert.IsTrue (myform.DesktopLocation.Y > 0, "#11b");
44                         Assert.AreEqual (DialogResult.None, myform.DialogResult, "#12");
45                         Assert.AreEqual (FormBorderStyle.Sizable, myform.FormBorderStyle, "#13");
46                         Assert.AreEqual (false, myform.HelpButton, "#14");
47                         Assert.AreEqual ("System.Drawing.Icon", myform.Icon.GetType ().ToString (), "#15");
48                         Assert.AreEqual (false, myform.IsMdiChild, "#16");
49                         Assert.AreEqual (false, myform.IsMdiContainer, "#17");
50                         Assert.AreEqual (false, myform.KeyPreview, "#18");
51                         Assert.AreEqual (true, myform.MaximizeBox, "#19");
52                         Assert.AreEqual (0, myform.MaximumSize.Height, "#20a");
53                         Assert.AreEqual (0, myform.MaximumSize.Width, "#20b");
54                         Assert.AreEqual (0, myform.MdiChildren.Length, "#21a");
55                         Assert.AreEqual (1, myform.MdiChildren.Rank, "#21b");
56                         Assert.AreEqual (false, myform.MdiChildren.IsSynchronized, "#21c");
57                         Assert.AreEqual (null, myform.MdiParent, "#22");
58                         Assert.AreEqual (null, myform.Menu, "#23");
59                         //Assert.AreEqual (null, myform.MergedMenu, "#24");
60                         //System.NotImplementedException for MergedMenu. Feature not implemented.
61                         Assert.AreEqual (true, myform.MinimizeBox, "#25");
62                         Assert.AreEqual (0, myform.MinimumSize.Height, "#26a");
63                         Assert.AreEqual (0, myform.MinimumSize.Width, "#26b");
64                         Assert.AreEqual (true, myform.MinimumSize.IsEmpty, "#26c");
65                         Assert.AreEqual (false, myform.Modal, "#27");
66                         //Assert.AreEqual (1, myform.Opacity, "#28");
67                         //System.NotImplementedException for Opacity. Feature not implemented.
68                         Assert.AreEqual (0, myform.OwnedForms.Length, "#29a");
69                         Assert.AreEqual (1, myform.OwnedForms.Rank, "#29b");
70                         Assert.AreEqual (null, myform.Owner, "#30");
71                         Assert.AreEqual (true, myform.ShowInTaskbar, "#31");
72                         Assert.AreEqual (300, myform.Size.Height, "#32a");
73                         Assert.AreEqual (300, myform.Size.Width, "#32b");
74                         Assert.AreEqual (SizeGripStyle.Auto, myform.SizeGripStyle, "#33");
75                         Assert.AreEqual (FormStartPosition.WindowsDefaultLocation, myform.StartPosition, "#34");
76                         Assert.AreEqual (true, myform.TopLevel, "#35");
77                         Assert.AreEqual (false, myform.TopMost, "#36");
78                         Assert.AreEqual (Color.Empty, myform.TransparencyKey, "#37");
79                         Assert.AreEqual (FormWindowState.Normal, myform.WindowState, "#38");
80                 }
81
82                 [Test]
83                 public void ActivateTest ()
84                 {
85                         Form myform = new Form ();
86                         myform.Visible = true;
87                         myform.Text = "NewForm";
88                         myform.Name = "FormTest";
89                         myform.Activate ();
90                         Assert.AreEqual (true, myform.Focus (), "#40");
91                 }               
92
93                 [Test]
94                 public void AddOwnedFormTest ()
95                 {
96                         Form parent = new Form ();
97                         parent.Text = "NewParent";
98                         Form ownedForm = new Form ();
99                         ownedForm.Text = "Owned Form";
100                         parent.AddOwnedForm (ownedForm);
101                         ownedForm.Show ();
102                         Assert.AreEqual ("NewParent", ownedForm.Owner.Text, "#41");
103                 }
104
105                 [Test]
106                 public void CloseTest ()
107                 {
108                         Form myform = new Form ();
109                         myform.Visible = true;
110                         myform.Text = "NewForm";
111                         myform.Name = "FormTest";
112                         myform.Close ();
113                         Assert.IsTrue (myform.Size.Height > 0, "#42");
114                 }
115
116                 [Test]
117                 [Ignore ("System.NotImplementedException. LayoutMdi not implemented")]  
118                 public void LayoutMdiTest ()
119                 {
120                         Form parent = new Form ();
121                         Form child = new Form ();
122                         parent.IsMdiContainer = true;
123                         child.IsMdiContainer = false;
124                         child.MdiParent = parent;
125                         parent.LayoutMdi (MdiLayout.TileHorizontal);
126                         child.Visible = true;
127                         parent.Show ();
128                 }
129
130                 [Test]
131                 public void RemoveOwnedFormTest ()
132                 {
133                         Form myform = new Form ();
134                         myform.Text = "NewForm";
135                         myform.Name = "FormTest";
136                         myform.RemoveOwnedForm (myform);
137                         myform.Show ();
138                         Assert.AreEqual (null, myform.Owner, "#44");
139                 }
140
141                 [Test]
142                 public void SetDesktopBoundsTest ()
143                 {
144                         Form myform = new Form ();
145                         myform.Visible = true;
146                         myform.Text = "NewForm";
147                         myform.Name = "FormTest";
148                         myform.SetDesktopBounds (10, 10, 200 , 200);
149                         Assert.AreEqual (200, myform.DesktopBounds.Height, "#45");
150                 }
151
152                 [Test]
153                 public void SetDesktopLocationTest ()
154                 {
155                         Form myform = new Form ();
156                         myform.Visible = true;
157                         myform.Text = "NewForm";
158                         myform.Name = "FormTest";
159                         myform.SetDesktopLocation (10, 10);
160                         Assert.AreEqual (10, myform.DesktopLocation.X, "#46");
161                 }
162
163                 [Test, Ignore ("Needs Manual Intervention")]
164                 public void ShowDialogTest ()
165                 {
166                         Form myform = new Form ();
167                         myform.Visible = false;
168                         myform.Text = "NewForm";
169                         myform.Name = "FormTest";
170                         myform.ShowDialog ();
171                         Assert.AreEqual (DialogResult.Cancel, myform.DialogResult, "#47");
172                         myform.Dispose ();
173                 }
174         }
175 }