FormEventTest.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676
  1. //
  2. // Copyright (c) 2005 Novell, Inc.
  3. //
  4. // Authors:
  5. // Ritvik Mayank ([email protected])
  6. //
  7. using System;
  8. using NUnit.Framework;
  9. using System.Windows.Forms;
  10. using System.Drawing;
  11. using System.Collections;
  12. using System.ComponentModel;
  13. using System.Threading;
  14. using Timer = System.Windows.Forms.Timer;
  15. using System.Globalization;
  16. namespace MonoTests.System.Windows.Forms
  17. {
  18. [TestFixture]
  19. public class FormEvent : TestHelper
  20. {
  21. static bool eventhandled = false;
  22. public void New_EventHandler (object sender, EventArgs e)
  23. {
  24. eventhandled = true;
  25. }
  26. private Form _form;
  27. [TearDown]
  28. protected override void TearDown ()
  29. {
  30. if (_form != null)
  31. _form.Dispose ();
  32. base.TearDown ();
  33. }
  34. [Test]
  35. public void Activated ()
  36. {
  37. if (TestHelper.RunningOnUnix)
  38. Assert.Ignore ("#3 fails");
  39. _form = new Form ();
  40. EventLogger logger = new EventLogger (_form);
  41. _form.ShowInTaskbar = false;
  42. Assert.AreEqual (0, logger.CountEvents ("Activated"), "#1");
  43. _form.Activate ();
  44. Application.DoEvents ();
  45. Assert.AreEqual (0, logger.CountEvents ("Activated"), "#2");
  46. _form.Show ();
  47. Application.DoEvents ();
  48. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#3");
  49. _form.Show ();
  50. Application.DoEvents ();
  51. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#4");
  52. _form.Activate ();
  53. Application.DoEvents ();
  54. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#5");
  55. _form.Hide ();
  56. Application.DoEvents ();
  57. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#6");
  58. _form.Show ();
  59. Application.DoEvents ();
  60. Assert.AreEqual (2, logger.CountEvents ("Activated"), "#7");
  61. }
  62. [Test]
  63. public void Activated_Dialog ()
  64. {
  65. if (TestHelper.RunningOnUnix)
  66. Assert.Ignore ("#4 fails");
  67. _form = new DelayedCloseForm ();
  68. EventLogger logger = new EventLogger (_form);
  69. _form.ShowInTaskbar = false;
  70. Assert.AreEqual (0, logger.CountEvents ("Activated"), "#1");
  71. _form.Activate ();
  72. Assert.AreEqual (0, logger.CountEvents ("Activated"), "#2");
  73. _form.ShowDialog ();
  74. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#3");
  75. _form.ShowDialog ();
  76. Assert.AreEqual (2, logger.CountEvents ("Activated"), "#4");
  77. }
  78. [Test]
  79. public void Closed ()
  80. {
  81. _form = new Form ();
  82. EventLogger logger = new EventLogger (_form);
  83. _form.ShowInTaskbar = false;
  84. _form.Show ();
  85. Application.DoEvents ();
  86. Assert.AreEqual (0, logger.CountEvents ("Closed"), "#1");
  87. _form.Close ();
  88. Application.DoEvents ();
  89. Assert.AreEqual (1, logger.CountEvents ("Closed"), "#2");
  90. _form.Close ();
  91. Application.DoEvents ();
  92. Assert.AreEqual (1, logger.CountEvents ("Closed"), "#3");
  93. }
  94. [Test]
  95. public void Closed_Dialog ()
  96. {
  97. _form = new DelayedCloseForm ();
  98. EventLogger logger = new EventLogger (_form);
  99. _form.ShowInTaskbar = false;
  100. _form.ShowDialog ();
  101. Assert.AreEqual (1, logger.CountEvents ("Closed"), "#1");
  102. _form.ShowDialog ();
  103. Assert.AreEqual (2, logger.CountEvents ("Closed"), "#2");
  104. _form.Close ();
  105. Application.DoEvents ();
  106. Assert.AreEqual (2, logger.CountEvents ("Closed"), "#3");
  107. }
  108. [Test]
  109. public void Closing ()
  110. {
  111. _form = new Form ();
  112. EventLogger logger = new EventLogger (_form);
  113. _form.ShowInTaskbar = false;
  114. _form.Show ();
  115. Application.DoEvents ();
  116. Assert.AreEqual (0, logger.CountEvents ("Closing"), "#1");
  117. _form.Close ();
  118. Application.DoEvents ();
  119. Assert.AreEqual (1, logger.CountEvents ("Closing"), "#2");
  120. }
  121. [Test]
  122. public void Closing_Dialog ()
  123. {
  124. _form = new DelayedCloseForm ();
  125. EventLogger logger = new EventLogger (_form);
  126. _form.ShowInTaskbar = false;
  127. _form.ShowDialog ();
  128. Assert.AreEqual (1, logger.CountEvents ("Closing"), "#1");
  129. _form.ShowDialog ();
  130. Assert.AreEqual (2, logger.CountEvents ("Closing"), "#2");
  131. _form.Close ();
  132. Application.DoEvents ();
  133. Assert.AreEqual (2, logger.CountEvents ("Closing"), "#3");
  134. }
  135. [Test]
  136. public void Deactivate ()
  137. {
  138. if (TestHelper.RunningOnUnix)
  139. Assert.Ignore ("#3 or #5 fail");
  140. _form = new Form ();
  141. EventLogger logger = new EventLogger (_form);
  142. _form.ShowInTaskbar = false;
  143. _form.Activate ();
  144. Application.DoEvents ();
  145. Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#1");
  146. _form.Show ();
  147. Application.DoEvents ();
  148. Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#2");
  149. _form.Hide ();
  150. Application.DoEvents ();
  151. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#3");
  152. _form.Show ();
  153. Application.DoEvents ();
  154. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#4");
  155. _form.Hide ();
  156. Application.DoEvents ();
  157. Assert.AreEqual (2, logger.CountEvents ("Deactivate"), "#5");
  158. _form.Close ();
  159. Application.DoEvents ();
  160. Assert.AreEqual (2, logger.CountEvents ("Deactivate"), "#6");
  161. _form.Close ();
  162. Application.DoEvents ();
  163. Assert.AreEqual (2, logger.CountEvents ("Deactivate"), "#7");
  164. }
  165. [Test]
  166. public void Deactivate_Dialog ()
  167. {
  168. // if (TestHelper.RunningOnUnix)
  169. // Assert.Ignore ("#2 sometimes fails");
  170. _form = new DelayedCloseForm ();
  171. EventLogger logger = new EventLogger (_form);
  172. _form.ShowInTaskbar = false;
  173. _form.Activate ();
  174. Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#1");
  175. _form.ShowDialog ();
  176. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#2");
  177. _form.Close ();
  178. Application.DoEvents ();
  179. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#3");
  180. }
  181. [Test] // bug #413898
  182. public void EventOrder ()
  183. {
  184. if (TestHelper.RunningOnUnix)
  185. Assert.Ignore ("#A3 fails");
  186. string [] expectedEvents_Show = {
  187. "Load",
  188. "VisibleChanged",
  189. "GotFocus",
  190. "Activated" };
  191. string [] expectedEvents_Close = {
  192. "Closing",
  193. #if NET_2_0
  194. "FormClosing",
  195. #endif
  196. "Closed",
  197. #if NET_2_0
  198. "FormClosed",
  199. #endif
  200. "Deactivate",
  201. "LostFocus",
  202. "HandleDestroyed",
  203. "Disposed" };
  204. _form = new Form ();
  205. EventLogger logger = new EventLogger (_form);
  206. _form.Show ();
  207. Application.DoEvents ();
  208. Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents_Show), "#A1:" + logger.EventsJoined());
  209. Assert.AreEqual (1, logger.CountEvents ("Load"), "#A2");
  210. Assert.AreEqual (1, logger.CountEvents ("VisibleChanged"), "#A3");
  211. Assert.AreEqual (1, logger.CountEvents ("GotFocus"), "#A4");
  212. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#A5");
  213. Assert.AreEqual (0, logger.CountEvents ("Closing"), "#A6");
  214. #if NET_2_0
  215. Assert.AreEqual (0, logger.CountEvents ("FormClosing"), "#A7");
  216. #endif
  217. Assert.AreEqual (0, logger.CountEvents ("Closed"), "#A8");
  218. #if NET_2_0
  219. Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#A9");
  220. #endif
  221. Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#A10");
  222. Assert.AreEqual (0, logger.CountEvents ("LostFocus"), "#A11");
  223. Assert.AreEqual (0, logger.CountEvents ("HandleDestroyed"), "#A12");
  224. Assert.AreEqual (0, logger.CountEvents ("Disposed"), "#A13");
  225. logger.Clear ();
  226. _form.Close ();
  227. Application.DoEvents ();
  228. Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents_Close), "#B1:" + logger.EventsJoined ());
  229. Assert.AreEqual (0, logger.CountEvents ("Load"), "#B2");
  230. Assert.AreEqual (0, logger.CountEvents ("VisibleChanged"), "#B3");
  231. Assert.AreEqual (0, logger.CountEvents ("GotFocus"), "#B4");
  232. Assert.AreEqual (0, logger.CountEvents ("Activated"), "#B5");
  233. Assert.AreEqual (1, logger.CountEvents ("Closing"), "#B6");
  234. #if NET_2_0
  235. Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#B7");
  236. #endif
  237. Assert.AreEqual (1, logger.CountEvents ("Closed"), "#B8");
  238. #if NET_2_0
  239. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#B9");
  240. #endif
  241. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#B10");
  242. Assert.AreEqual (1, logger.CountEvents ("LostFocus"), "#B11");
  243. Assert.AreEqual (1, logger.CountEvents ("HandleDestroyed"), "#B12");
  244. Assert.AreEqual (1, logger.CountEvents ("Disposed"), "#B13");
  245. }
  246. [Test] // bug #413898
  247. public void EventOrder_Dialog ()
  248. {
  249. if (TestHelper.RunningOnUnix)
  250. Assert.Ignore ("#A3 fails");
  251. string [] expectedEvents = {
  252. "Load",
  253. "VisibleChanged",
  254. "GotFocus",
  255. "Activated",
  256. "Closing",
  257. #if NET_2_0
  258. "FormClosing",
  259. #endif
  260. "Closed",
  261. #if NET_2_0
  262. "FormClosed",
  263. #endif
  264. "VisibleChanged",
  265. "Deactivate",
  266. "LostFocus",
  267. "HandleDestroyed" };
  268. _form = new DelayedCloseForm ();
  269. EventLogger logger = new EventLogger (_form);
  270. _form.ShowDialog ();
  271. Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents), "#A1:" + logger.EventsJoined ());
  272. Assert.AreEqual (1, logger.CountEvents ("Load"), "#A2");
  273. Assert.AreEqual (2, logger.CountEvents ("VisibleChanged"), "#A3");
  274. Assert.AreEqual (1, logger.CountEvents ("GotFocus"), "#A4");
  275. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#A5");
  276. Assert.AreEqual (1, logger.CountEvents ("Closing"), "#A6");
  277. #if NET_2_0
  278. Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#A7");
  279. #endif
  280. Assert.AreEqual (1, logger.CountEvents ("Closed"), "#A8");
  281. #if NET_2_0
  282. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#A9");
  283. #endif
  284. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#A10");
  285. Assert.AreEqual (1, logger.CountEvents ("LostFocus"), "#A11");
  286. Assert.AreEqual (1, logger.CountEvents ("HandleDestroyed"), "#A12");
  287. Assert.AreEqual (0, logger.CountEvents ("Disposed"), "#A13");
  288. logger.Clear ();
  289. _form.ShowDialog ();
  290. Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents), "#B1:" + logger.EventsJoined ());
  291. Assert.AreEqual (1, logger.CountEvents ("Load"), "#B2");
  292. Assert.AreEqual (2, logger.CountEvents ("VisibleChanged"), "#B3");
  293. Assert.AreEqual (1, logger.CountEvents ("GotFocus"), "#B4");
  294. Assert.AreEqual (1, logger.CountEvents ("Activated"), "#B5");
  295. Assert.AreEqual (1, logger.CountEvents ("Closing"), "#B6");
  296. #if NET_2_0
  297. Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#B7");
  298. #endif
  299. Assert.AreEqual (1, logger.CountEvents ("Closed"), "#B8");
  300. #if NET_2_0
  301. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#B9");
  302. #endif
  303. Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#B10");
  304. Assert.AreEqual (1, logger.CountEvents ("LostFocus"), "#B11");
  305. Assert.AreEqual (1, logger.CountEvents ("HandleDestroyed"), "#B12");
  306. Assert.AreEqual (0, logger.CountEvents ("Disposed"), "#B13");
  307. }
  308. #if NET_2_0
  309. [Test]
  310. public void FormClosed ()
  311. {
  312. _form = new Form ();
  313. EventLogger logger = new EventLogger (_form);
  314. _form.ShowInTaskbar = false;
  315. Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#1");
  316. _form.Show ();
  317. Application.DoEvents ();
  318. Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#2");
  319. _form.Close ();
  320. Application.DoEvents ();
  321. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#3");
  322. _form.Close ();
  323. Application.DoEvents ();
  324. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#4");
  325. _form.Close ();
  326. Application.DoEvents ();
  327. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#5");
  328. }
  329. [Test]
  330. public void FormClosed_Dialog ()
  331. {
  332. _form = new DelayedCloseForm ();
  333. EventLogger logger = new EventLogger (_form);
  334. _form.ShowInTaskbar = false;
  335. Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#1");
  336. _form.ShowDialog ();
  337. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#2");
  338. _form.Close ();
  339. Application.DoEvents ();
  340. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#3");
  341. _form.Close ();
  342. Application.DoEvents ();
  343. Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#4");
  344. }
  345. [Test]
  346. public void FormClosing ()
  347. {
  348. _form = new Form ();
  349. EventLogger logger = new EventLogger (_form);
  350. _form.ShowInTaskbar = false;
  351. Assert.AreEqual (0, logger.CountEvents ("FormClosing"), "#1");
  352. _form.Show ();
  353. Application.DoEvents ();
  354. Assert.AreEqual (0, logger.CountEvents ("FormClosing"), "#2");
  355. _form.Close ();
  356. Application.DoEvents ();
  357. Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#3");
  358. _form.Close ();
  359. Application.DoEvents ();
  360. Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#4");
  361. _form.Close ();
  362. Application.DoEvents ();
  363. Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#5");
  364. }
  365. [Test]
  366. public void FormClosing_Dialog ()
  367. {
  368. _form = new DelayedCloseForm ();
  369. EventLogger logger = new EventLogger (_form);
  370. _form.ShowInTaskbar = false;
  371. Assert.AreEqual (0, logger.CountEvents ("FormClosing"));
  372. _form.ShowDialog ();
  373. Assert.AreEqual (1, logger.CountEvents ("FormClosing"));
  374. _form.ShowDialog ();
  375. Assert.AreEqual (2, logger.CountEvents ("FormClosing"));
  376. }
  377. #endif
  378. [Test]
  379. public void Load ()
  380. {
  381. _form = new Form ();
  382. EventLogger logger = new EventLogger (_form);
  383. _form.ShowInTaskbar = false;
  384. Assert.AreEqual (0, logger.CountEvents ("Load"), "#1");
  385. _form.Show ();
  386. Assert.AreEqual (1, logger.CountEvents ("Load"), "#2");
  387. _form.Show ();
  388. Assert.AreEqual (1, logger.CountEvents ("Load"), "#3");
  389. _form.Hide ();
  390. Assert.AreEqual (1, logger.CountEvents ("Load"), "#4");
  391. _form.Show ();
  392. Assert.AreEqual (1, logger.CountEvents ("Load"), "#5");
  393. }
  394. [Test]
  395. public void Load_Dialog ()
  396. {
  397. _form = new DelayedCloseForm ();
  398. EventLogger logger = new EventLogger (_form);
  399. _form.ShowInTaskbar = false;
  400. Assert.AreEqual (0, logger.CountEvents ("Load"), "#1");
  401. _form.ShowDialog ();
  402. Assert.AreEqual (1, logger.CountEvents ("Load"), "#2");
  403. _form.ShowDialog ();
  404. Assert.AreEqual (2, logger.CountEvents ("Load"), "#3");
  405. }
  406. #if NET_2_0
  407. [Test]
  408. public void Shown ()
  409. {
  410. _form = new Form ();
  411. EventLogger logger = new EventLogger (_form);
  412. //_form.ShowInTaskbar = false;
  413. Assert.AreEqual (0, logger.CountEvents ("Shown"), "#1");
  414. _form.Show ();
  415. Application.DoEvents ();
  416. Assert.AreEqual (1, logger.CountEvents ("Shown"), "#2");
  417. _form.Show ();
  418. Application.DoEvents ();
  419. Assert.AreEqual (1, logger.CountEvents ("Shown"), "#3");
  420. _form.Hide ();
  421. Application.DoEvents ();
  422. Assert.AreEqual (1, logger.CountEvents ("Shown"), "#4");
  423. _form.Show ();
  424. Application.DoEvents ();
  425. Assert.AreEqual (1, logger.CountEvents ("Shown"), "#5");
  426. _form.Close ();
  427. Application.DoEvents ();
  428. Assert.AreEqual (1, logger.CountEvents ("Shown"), "#6");
  429. }
  430. [Test]
  431. public void Shown_Dialog ()
  432. {
  433. _form = new DelayedCloseForm ();
  434. EventLogger logger = new EventLogger (_form);
  435. _form.ShowInTaskbar = false;
  436. Assert.AreEqual (0, logger.CountEvents ("Shown"), "#1");
  437. _form.ShowDialog ();
  438. Assert.AreEqual (1, logger.CountEvents ("Shown"), "#2");
  439. _form.ShowDialog ();
  440. Assert.AreEqual (2, logger.CountEvents ("Shown"), "#3");
  441. }
  442. #endif
  443. class DelayedCloseForm : Form
  444. {
  445. private Timer _timer;
  446. public DelayedCloseForm ()
  447. {
  448. _timer = new Timer ();
  449. _timer.Tick += new EventHandler (OnTick);
  450. _timer.Interval = 50;
  451. Closed += new EventHandler (OnClosed);
  452. Load += new EventHandler (OnLoad);
  453. }
  454. void OnClosed (object sender, EventArgs e)
  455. {
  456. _timer.Enabled = false;
  457. }
  458. void OnLoad (object sender, EventArgs e)
  459. {
  460. _timer.Enabled = true;
  461. }
  462. void OnTick (object sender, EventArgs e)
  463. {
  464. Close ();
  465. Application.DoEvents ();
  466. }
  467. }
  468. class MyForm : Form
  469. {
  470. public void MaximizeBoundsTest ()
  471. {
  472. this.MaximizedBounds = new Rectangle (10,10,100,100);
  473. }
  474. }
  475. [Test]
  476. public void MaximizedBoundsChangedTest ()
  477. {
  478. _form = new MyForm ();
  479. _form.MaximizedBoundsChanged += new EventHandler (New_EventHandler);
  480. eventhandled = false;
  481. ((MyForm) _form).MaximizeBoundsTest ();
  482. Assert.AreEqual (true, eventhandled, "#A5");
  483. }
  484. [Test]
  485. public void MaximumSizeChangedTest ()
  486. {
  487. _form = new Form ();
  488. _form.ShowInTaskbar = false;
  489. _form.MaximumSizeChanged += new EventHandler (New_EventHandler);
  490. eventhandled = false;
  491. _form.MaximumSize = new Size (500, 500);
  492. Assert.AreEqual (true, eventhandled, "#A6");
  493. }
  494. [Test, Ignore ("Manual Intervention")]
  495. public void MdiChildActivateTest ()
  496. {
  497. Form parent = new Form ();
  498. parent.ShowInTaskbar = false;
  499. Form child = new Form ();
  500. parent.IsMdiContainer = true;
  501. child.IsMdiContainer = false;
  502. child.MdiParent = parent;
  503. parent.MdiChildActivate += new EventHandler (New_EventHandler);
  504. eventhandled = false;
  505. using (parent)
  506. {
  507. child.Visible = true;
  508. parent.Show ();
  509. Assert.AreEqual (true, eventhandled, "#A7");
  510. eventhandled = false;
  511. child.Close ();
  512. Assert.AreEqual (true, eventhandled, "#A8");
  513. }
  514. }
  515. [Test]
  516. public void MinimumSizeChangedTest ()
  517. {
  518. _form = new Form ();
  519. _form.ShowInTaskbar = false;
  520. _form.MinimumSizeChanged += new EventHandler (New_EventHandler);
  521. eventhandled = false;
  522. _form.MinimumSize = new Size(100, 100);
  523. Assert.AreEqual (true, eventhandled, "#A10");
  524. }
  525. }
  526. [TestFixture]
  527. public class ClosingEvent
  528. {
  529. bool cancel = true;
  530. CancelEventArgs args = null;
  531. public void Closing_Handler (object sender, CancelEventArgs e)
  532. {
  533. e.Cancel = cancel;
  534. args = e;
  535. }
  536. [Test, Ignore ("visual test")]
  537. public void ClosingEventTest ()
  538. {
  539. Form myform = new Form ();
  540. myform.ShowInTaskbar = false;
  541. myform.Closing += new CancelEventHandler (Closing_Handler);
  542. myform.Show ();
  543. args = null;
  544. myform.Close ();
  545. Assert.AreEqual (true, args != null, "#A11");
  546. Assert.AreEqual (true, myform.Visible, "#A12");
  547. cancel = false;
  548. args = null;
  549. myform.Close ();
  550. Assert.AreEqual (true, args != null, "#A13");
  551. Assert.AreEqual (false, myform.Visible, "#A14");
  552. }
  553. }
  554. [TestFixture,Ignore ("Test Breaks")]
  555. public class InputLanguageChangedEvent
  556. {
  557. static bool eventhandled = false;
  558. public void InputLanguage_Handler (object sender,InputLanguageChangedEventArgs e)
  559. {
  560. eventhandled = true;
  561. }
  562. [Test]
  563. public void InputLanguageChangedEventTest ()
  564. {
  565. Form myform = new Form ();
  566. myform.ShowInTaskbar = false;
  567. CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
  568. CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
  569. InputLanguage oldil = InputLanguage.CurrentInputLanguage;
  570. try {
  571. if (InputLanguage.InstalledInputLanguages.Count > 1) {
  572. InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
  573. myform.InputLanguageChanged += new InputLanguageChangedEventHandler (InputLanguage_Handler);
  574. Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
  575. Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
  576. InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
  577. Assert.AreEqual (true, eventhandled, "#A15");
  578. }
  579. } finally {
  580. Thread.CurrentThread.CurrentCulture = oldci;
  581. Thread.CurrentThread.CurrentUICulture = oldcui;
  582. InputLanguage.CurrentInputLanguage = oldil;
  583. }
  584. myform.Dispose ();
  585. }
  586. }
  587. [TestFixture,Ignore ("Test Breaks")]
  588. public class InputLanguageChangingEvent
  589. {
  590. static bool eventhandled = false;
  591. public void InputLangChanging_Handler(object sender,InputLanguageChangingEventArgs e)
  592. {
  593. eventhandled = true;
  594. }
  595. [Test]
  596. public void InputLanguageChangingEventTest ()
  597. {
  598. Form myform = new Form ();
  599. myform.ShowInTaskbar = false;
  600. CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
  601. CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
  602. InputLanguage oldil = InputLanguage.CurrentInputLanguage;
  603. try {
  604. if (InputLanguage.InstalledInputLanguages.Count > 1)
  605. {
  606. InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
  607. myform.InputLanguageChanging += new InputLanguageChangingEventHandler (InputLangChanging_Handler);
  608. Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
  609. Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
  610. InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
  611. Assert.AreEqual (true, eventhandled, "#A16");
  612. }
  613. } finally {
  614. Thread.CurrentThread.CurrentCulture = oldci;
  615. Thread.CurrentThread.CurrentUICulture = oldcui;
  616. InputLanguage.CurrentInputLanguage = oldil;
  617. }
  618. myform.Dispose ();
  619. }
  620. }
  621. }