2006-12-19 Daniel Nauck <dna@mono-project.de>
[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.ShowInTaskbar = false;
33                         myform.Activated += new EventHandler (New_EventHandler);
34                         myform.Activate ();
35                         myform.ShowDialog ();
36                         Assert.AreEqual (true, eventhandled, "#A1");
37                 }
38
39                 [Test, Ignore ("Manual Intervention")]
40                 public void ClosedTest ()
41                 {
42                         Form myform = new Form ();
43                         myform.ShowInTaskbar = false;
44                         myform.Closed += new EventHandler (New_EventHandler);
45                         eventhandled = false;
46                         myform.Close ();
47                         myform.ShowDialog ();
48                         Assert.AreEqual (true, eventhandled, "#A2");
49                 }
50
51                 [Test, Ignore ("Manual Intervention")]
52                 public void DeactivateTest ()
53                 {
54                         Form myform = new Form ();
55                         myform.ShowInTaskbar = false;
56                         myform.Deactivate += new EventHandler (New_EventHandler);
57                         eventhandled = false;
58                         myform.Close ();
59                         myform.Activate ();
60                         myform.ShowDialog ();
61                         Assert.AreEqual (true, eventhandled, "#A3");
62                 }
63
64                 [Test, Ignore ("Manual Intervention")]
65                 public void LoadTest ()
66                 {
67                         Form myform = new Form ();
68                         myform.ShowInTaskbar = false;
69                         myform.Load += new EventHandler (New_EventHandler);
70                         eventhandled = false;
71                         myform.ShowDialog ();
72                         Assert.AreEqual (true, eventhandled, "#A4");
73                         myform.Dispose ();
74                 }
75
76                 class MyForm : Form 
77                 {
78                         public void MaximizeBoundsTest ()
79                         {
80                                 this.MaximizedBounds = new Rectangle (10,10,100,100);
81                         }
82                 }
83
84                 [Test]
85                 public void MaximizedBoundsChangedTest ()
86                 {
87                         MyForm myform = new MyForm ();
88                         myform.MaximizedBoundsChanged += new EventHandler (New_EventHandler);
89                         eventhandled = false;
90                         myform.MaximizeBoundsTest ();
91                         Assert.AreEqual (true, eventhandled, "#A5");
92                         myform.Dispose ();
93                 }
94
95                 [Test]
96                 public void MaximumSizeChangedTest ()
97                 {
98                         Form myform = new Form ();
99                         myform.ShowInTaskbar = false;
100                         myform.MaximumSizeChanged += new EventHandler (New_EventHandler);
101                         eventhandled = false;
102                         myform.MaximumSize = new Size (500, 500);
103                         Assert.AreEqual (true, eventhandled, "#A6");
104                         myform.Dispose ();
105                 }
106
107                 [Test, Ignore ("Manual Intervention")]
108                 public void MdiChildActivateTest ()
109                 {
110                         Form parent = new Form ();
111                         parent.ShowInTaskbar = false;
112                         Form child = new Form ();
113                         parent.IsMdiContainer = true;
114                         child.IsMdiContainer = false;
115                         child.MdiParent = parent;
116                         parent.MdiChildActivate += new EventHandler (New_EventHandler);
117                         eventhandled = false;
118                         using (parent) 
119                         {
120                                 child.Visible = true;
121                                 parent.Show ();
122                                 Assert.AreEqual (true, eventhandled, "#A7");
123                                 eventhandled = false;
124                                 child.Close ();
125                                 Assert.AreEqual (true, eventhandled, "#A8");
126                         }
127                 }
128
129                 [Test]
130                 public void MinimumSizeChangedTest ()
131                 {
132                         Form myform = new Form ();
133                         myform.ShowInTaskbar = false;
134                         myform.MinimumSizeChanged += new EventHandler (New_EventHandler);
135                         eventhandled = false;
136                         myform.MinimumSize = new Size(100, 100);
137                         Assert.AreEqual (true, eventhandled, "#A10");
138                         myform.Dispose ();
139                 }
140         }
141
142         [TestFixture]
143         public class ClosingEvent
144         {       
145                 bool cancel = true;
146                 CancelEventArgs args = null;
147                 public void Closing_Handler (object sender, CancelEventArgs e)
148                 {
149                         e.Cancel = cancel;
150                         args = e;
151                 }
152
153                 [Test, Ignore ("visual test")]
154                 public void ClosingEventTest ()
155                 {
156                         Form myform = new Form ();
157                         myform.ShowInTaskbar = false;
158                         myform.Closing += new CancelEventHandler (Closing_Handler);
159                         myform.Show ();
160                         args = null;
161                         myform.Close ();
162                         Assert.AreEqual (true, args != null, "#A11");
163                         Assert.AreEqual (true, myform.Visible, "#A12");
164                         cancel = false;
165                         args = null;
166                         myform.Close ();
167                         Assert.AreEqual (true, args != null, "#A13");
168                         Assert.AreEqual (false, myform.Visible, "#A14");
169                 }
170         }
171
172         [TestFixture,Ignore ("Test Breaks")]
173         public class InputLanguageChangedEvent
174         {       
175                 static bool eventhandled = false;
176                 public void InputLanguage_Handler (object sender,InputLanguageChangedEventArgs e)
177                 {
178                         eventhandled = true;
179                 }
180
181                 [Test]
182                 public void InputLanguageChangedEventTest ()
183                 {
184                         Form myform = new Form ();
185                         myform.ShowInTaskbar = false;
186                         CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
187                         CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
188                         InputLanguage oldil = InputLanguage.CurrentInputLanguage;
189                         try 
190                         {
191                                 if (InputLanguage.InstalledInputLanguages.Count > 1) 
192                                 {
193                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
194                                         myform.InputLanguageChanged += new InputLanguageChangedEventHandler (InputLanguage_Handler);
195                                         Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
196                                         Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
197                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
198                                         Assert.AreEqual (true, eventhandled, "#A15");
199                                 }
200                         }
201                         finally 
202                         {
203                                 Thread.CurrentThread.CurrentCulture = oldci;
204                                 Thread.CurrentThread.CurrentUICulture = oldcui;
205                                 InputLanguage.CurrentInputLanguage = oldil;
206                         }
207                         myform.Dispose ();
208                 }
209         }
210
211         [TestFixture,Ignore ("Test Breaks")]
212         public class InputLanguageChangingdEvent
213         {       
214                 static bool eventhandled = false;
215                 public void InputLangChanging_Handler(object sender,InputLanguageChangingEventArgs e)
216                 {
217                         eventhandled = true;
218                 }
219
220                 [Test]
221                 public void InputLanguageChangingEventTest ()           
222                 {
223                         Form myform = new Form ();
224                         myform.ShowInTaskbar = false;
225                         CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
226                         CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
227                         InputLanguage oldil = InputLanguage.CurrentInputLanguage;
228                         try 
229                         {
230                                 if (InputLanguage.InstalledInputLanguages.Count > 1) 
231                                 {
232                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
233                                         myform.InputLanguageChanging += new InputLanguageChangingEventHandler (InputLangChanging_Handler);
234                                         Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
235                                         Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
236                                         InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
237                                         Assert.AreEqual (true, eventhandled, "#A16");
238                                 }
239                         }
240                         finally 
241                         {
242                                 Thread.CurrentThread.CurrentCulture = oldci;
243                                 Thread.CurrentThread.CurrentUICulture = oldcui;
244                                 InputLanguage.CurrentInputLanguage = oldil;
245                         }
246                         myform.Dispose ();
247                 }
248         }
249 }