2006-02-28 Matt Hergett <matt@use.net>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / FormEventTest.cs
1 //
2 // Copyright (c) 2005 Novell, Inc.
3 //
4 // Authors:
5 //      Ritvik Mayank (mritvik@novell.com)
6 //
7
8 using System;
9 using NUnit.Framework;
10 using System.Windows.Forms;
11 using System.Drawing;
12 using System.Collections;
13 using System.ComponentModel;
14 using System.Threading;
15 using System.Globalization;
16
17 namespace MonoTests.System.Windows.Forms
18 {
19         [TestFixture]
20         public class FormEvent
21         {       
22                 static bool eventhandled = false;
23                 public void New_EventHandler (object sender, EventArgs e)
24                 {
25                         eventhandled = true;
26                 }
27
28                 [Test, Ignore ("Manual Intervention")]
29                 public void ActivatedTest ()
30                 {
31                         Form myform = new Form ();
32                         myform.Activated += new EventHandler (New_EventHandler);
33                         myform.Activate ();
34                         myform.ShowDialog ();
35                         Assert.AreEqual (true, eventhandled, "#A1");
36                 }
37
38                 [Test, Ignore ("Manual Intervention")]
39                 public void ClosedTest ()
40                 {
41                         Form myform = new Form ();
42                         myform.Closed += new EventHandler (New_EventHandler);
43                         eventhandled = false;
44                         myform.Close ();
45                         myform.ShowDialog ();
46                         Assert.AreEqual (true, eventhandled, "#A2");
47                 }
48
49                 [Test, Ignore ("Manual Intervention")]
50                 public void DeactivateTest ()
51                 {
52                         Form myform = new Form ();
53                         myform.Deactivate += new EventHandler (New_EventHandler);
54                         eventhandled = false;
55                         myform.Close ();
56                         myform.Activate ();
57                         myform.ShowDialog ();
58                         Assert.AreEqual (true, eventhandled, "#A3");
59                 }
60
61                 [Test, Ignore ("Manual Intervention")]
62                 public void LoadTest ()
63                 {
64                         Form myform = new Form ();
65                         myform.Load += new EventHandler (New_EventHandler);
66                         eventhandled = false;
67                         myform.ShowDialog ();
68                         Assert.AreEqual (true, eventhandled, "#A4");
69                         myform.Dispose ();
70                 }
71
72                 class MyForm : Form 
73                 {
74                         public void MaximizeBoundsTest ()
75                         {
76                                 this.MaximizedBounds = new Rectangle (10,10,100,100);
77                         }
78                 }
79
80                 [Test]
81                 public void MaximizedBoundsChangedTest ()
82                 {
83                         MyForm myform = new MyForm ();
84                         myform.MaximizedBoundsChanged += new EventHandler (New_EventHandler);
85                         eventhandled = false;
86                         myform.MaximizeBoundsTest ();
87                         Assert.AreEqual (true, eventhandled, "#A5");
88                         myform.Dispose ();
89                 }
90
91                 [Test]
92                 public void MaximumSizeChangedTest ()
93                 {
94                         Form myform = new Form ();
95                         myform.MaximumSizeChanged += new EventHandler (New_EventHandler);
96                         eventhandled = false;
97                         myform.MaximumSize = new Size (500, 500);
98                         Assert.AreEqual (true, eventhandled, "#A6");
99                         myform.Dispose ();
100                 }
101
102                 [Test, Ignore ("Manual Intervention")]
103                 public void MdiChildActivateTest ()
104                 {
105                         Form parent = new Form ();
106                         Form child = new Form ();
107                         parent.IsMdiContainer = true;
108                         child.IsMdiContainer = false;
109                         child.MdiParent = parent;
110                         parent.MdiChildActivate += new EventHandler (New_EventHandler);
111                         eventhandled = false;
112                         using (parent) 
113                         {
114                                 child.Visible = true;
115                                 parent.Show ();
116                                 Assert.AreEqual (true, eventhandled, "#A7");
117                                 eventhandled = false;
118                                 child.Close ();
119                                 Assert.AreEqual (true, eventhandled, "#A8");
120                         }
121                 }
122
123                 [Test]
124                 public void MinimumSizeChangedTest ()
125                 {
126                         Form myform = new Form ();
127                         myform.MinimumSizeChanged += new EventHandler (New_EventHandler);
128                         eventhandled = false;
129                         myform.MinimumSize = new Size(100, 100);
130                         Assert.AreEqual (true, eventhandled, "#A10");
131                         myform.Dispose ();
132                 }
133         }
134
135         [TestFixture]
136         public class ClosingEvent
137         {       
138                 bool cancel = true;
139                 CancelEventArgs args = null;
140                 public void Closing_Handler (object sender, CancelEventArgs e)
141                 {
142                         e.Cancel = cancel;
143                         args = e;
144                 }
145
146                 [Test, Ignore ("visual test")]
147                 public void ClosingEventTest ()
148                 {
149                         Form myform = new Form ();
150                         myform.Closing += new CancelEventHandler (Closing_Handler);
151                         myform.Show ();
152                         args = null;
153                         myform.Close ();
154                         Assert.AreEqual (true, args != null, "#A11");
155                         Assert.AreEqual (true, myform.Visible, "#A12");
156                         cancel = false;
157                         args = null;
158                         myform.Close ();
159                         Assert.AreEqual (true, args != null, "#A13");
160                         Assert.AreEqual (false, myform.Visible, "#A14");
161                 }
162         }
163
164         [TestFixture,Ignore ("Test Breaks")]
165         public class InputLanguageChangedEvent
166         {       
167                 static bool eventhandled = false;
168                 public void InputLanguage_Handler (object sender,InputLanguageChangedEventArgs e)
169                 {
170                         eventhandled = true;
171                 }
172
173                 [Test]
174                 public void InputLanguageChangedEventTest ()
175                 {
176                         Form myform = new Form ();
177                         CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
178                         CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
179                         InputLanguage oldil = InputLanguage.CurrentInputLanguage;
180                         try 
181                         {
182                                 if (InputLanguage.InstalledInputLanguages.Count > 1) 
183                                 {
184                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
185                                         myform.InputLanguageChanged += new InputLanguageChangedEventHandler (InputLanguage_Handler);
186                                         Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
187                                         Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
188                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
189                                         Assert.AreEqual (true, eventhandled, "#A15");
190                                 }
191                         }
192                         finally 
193                         {
194                                 Thread.CurrentThread.CurrentCulture = oldci;
195                                 Thread.CurrentThread.CurrentUICulture = oldcui;
196                                 InputLanguage.CurrentInputLanguage = oldil;
197                         }
198                 }
199         }
200
201         [TestFixture,Ignore ("Test Breaks")]
202         public class InputLanguageChangingdEvent
203         {       
204                 static bool eventhandled = false;
205                 public void InputLangChanging_Handler(object sender,InputLanguageChangingEventArgs e)
206                 {
207                         eventhandled = true;
208                 }
209
210                 [Test]
211                 public void InputLanguageChangingEventTest ()           
212                 {
213                         Form myform = new Form ();
214                         CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
215                         CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
216                         InputLanguage oldil = InputLanguage.CurrentInputLanguage;
217                         try 
218                         {
219                                 if (InputLanguage.InstalledInputLanguages.Count > 1) 
220                                 {
221                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
222                                         myform.InputLanguageChanging += new InputLanguageChangingEventHandler (InputLangChanging_Handler);
223                                         Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
224                                         Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
225                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
226                                         Assert.AreEqual (true, eventhandled, "#A16");
227                                 }
228                         }
229                         finally 
230                         {
231                                 Thread.CurrentThread.CurrentCulture = oldci;
232                                 Thread.CurrentThread.CurrentUICulture = oldcui;
233                                 InputLanguage.CurrentInputLanguage = oldil;
234                         }
235                 }
236         }
237 }