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