MdiFormTest.cs 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126
  1. //
  2. // MdiFormTest.cs: Test cases for MDI Forms.
  3. //
  4. // Author:
  5. // Rolf Bjarne Kvinge ([email protected])
  6. //
  7. // (C) 2006 Novell, Inc. (http://www.novell.com)
  8. //
  9. using System;
  10. using System.Drawing;
  11. using System.Reflection;
  12. using System.Windows.Forms;
  13. using NUnit.Framework;
  14. namespace MonoTests.System.Windows.Forms
  15. {
  16. [TestFixture]
  17. public class MdiFormTest
  18. {
  19. private Form main;
  20. private Form child1;
  21. private Form child2;
  22. private Form child3;
  23. [TearDown]
  24. public void TearDown ()
  25. {
  26. if (main != null)
  27. main.Dispose ();
  28. if (child1 != null)
  29. child1.Dispose ();
  30. if (child2 != null)
  31. child2.Dispose ();
  32. if (child3 != null)
  33. child3.Dispose ();
  34. main = null;
  35. child1 = null;
  36. child2 = null;
  37. child3 = null;
  38. }
  39. // No attribute here since this is supposed to be called from
  40. // each test directly, not by nunit.
  41. public void SetUp (bool only_create, bool only_text)
  42. {
  43. TearDown ();
  44. main = new Form ();
  45. child1 = new Form ();
  46. child2 = new Form ();
  47. child3 = new Form ();
  48. if (only_create)
  49. return;
  50. main.Text = main.Name = "main";
  51. child1.Text = child1.Name = "child1";
  52. child2.Text = child2.Name = "child2";
  53. child3.Text = child3.Name = "child3";
  54. if (only_text)
  55. return;
  56. main.IsMdiContainer = true;
  57. }
  58. [Category("NotWorking")]
  59. [Test]
  60. public void StartLocationTest1 ()
  61. {
  62. SetUp (false, false);
  63. child1.MdiParent = main;
  64. child2.MdiParent = main;
  65. child1.Visible = true;
  66. child2.Visible = true;
  67. main.Show ();
  68. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  69. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  70. TearDown ();
  71. }
  72. [Category("NotWorking")]
  73. [Test]
  74. public void StartLocationTest2 ()
  75. {
  76. SetUp (false, false);
  77. child1.MdiParent = main;
  78. child2.MdiParent = main;
  79. child1.StartPosition = FormStartPosition.Manual;
  80. child1.Visible = true;
  81. child2.Visible = true;
  82. main.Show ();
  83. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  84. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  85. TearDown ();
  86. }
  87. [Category("NotWorking")]
  88. [Test]
  89. public void StartLocationTest3 ()
  90. {
  91. SetUp (false, false);
  92. child1.MdiParent = main;
  93. child2.MdiParent = main;
  94. child2.StartPosition = FormStartPosition.Manual;
  95. child1.Visible = true;
  96. child2.Visible = true;
  97. main.Show ();
  98. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  99. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  100. TearDown ();
  101. }
  102. [Category("NotWorking")]
  103. [Test]
  104. public void StartLocationTest4 ()
  105. {
  106. SetUp (false, false);
  107. child1.MdiParent = main;
  108. child2.MdiParent = main;
  109. child1.StartPosition = FormStartPosition.Manual;
  110. child2.StartPosition = FormStartPosition.Manual;
  111. child1.Visible = true;
  112. child2.Visible = true;
  113. main.Show ();
  114. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  115. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  116. TearDown ();
  117. }
  118. [Category("NotWorking")]
  119. [Test]
  120. public void StartLocationTest5 ()
  121. {
  122. SetUp (false, false);
  123. child1.MdiParent = main;
  124. child2.MdiParent = main;
  125. child3.MdiParent = main;
  126. child2.StartPosition = FormStartPosition.Manual;
  127. child1.Visible = true;
  128. child2.Visible = true;
  129. child3.Visible = true;
  130. main.Show ();
  131. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  132. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  133. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  134. TearDown ();
  135. }
  136. [Category("NotWorking")]
  137. [Test]
  138. public void StartLocationTest6 ()
  139. {
  140. SetUp (false, false);
  141. child1.MdiParent = main;
  142. child2.MdiParent = main;
  143. child3.MdiParent = main;
  144. child2.StartPosition = FormStartPosition.CenterParent;
  145. child1.Visible = true;
  146. child2.Visible = true;
  147. child3.Visible = true;
  148. main.Show ();
  149. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  150. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  151. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  152. TearDown ();
  153. }
  154. [Category("NotWorking")]
  155. [Test]
  156. public void StartLocationTest7 ()
  157. {
  158. SetUp (false, false);
  159. child1.MdiParent = main;
  160. child2.MdiParent = main;
  161. child3.MdiParent = main;
  162. child2.StartPosition = FormStartPosition.CenterScreen;
  163. child1.Visible = true;
  164. child2.Visible = true;
  165. child3.Visible = true;
  166. main.Show ();
  167. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  168. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  169. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  170. TearDown ();
  171. }
  172. [Category("NotWorking")]
  173. [Test]
  174. public void StartLocationTest8 ()
  175. {
  176. SetUp (false, false);
  177. child1.MdiParent = main;
  178. child2.MdiParent = main;
  179. child3.MdiParent = main;
  180. child2.StartPosition = FormStartPosition.WindowsDefaultBounds;
  181. child1.Visible = true;
  182. child2.Visible = true;
  183. child3.Visible = true;
  184. main.Show ();
  185. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  186. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  187. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  188. TearDown ();
  189. }
  190. [Category("NotWorking")]
  191. [Test]
  192. public void StartLocationTest9 ()
  193. {
  194. SetUp (false, false);
  195. child1.MdiParent = main;
  196. child2.MdiParent = main;
  197. child3.MdiParent = main;
  198. child2.StartPosition = FormStartPosition.WindowsDefaultLocation;
  199. child1.Visible = true;
  200. child2.Visible = true;
  201. child3.Visible = true;
  202. main.Show ();
  203. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  204. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  205. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  206. TearDown ();
  207. }
  208. [Category("NotWorking")]
  209. [Test]
  210. public void StartLocationTest10 ()
  211. {
  212. SetUp (false, false);
  213. child1.MdiParent = main;
  214. child2.MdiParent = main;
  215. child3.MdiParent = main;
  216. child2.StartPosition = FormStartPosition.Manual;
  217. child2.Location = new Point (123, 123);
  218. child1.Visible = true;
  219. child2.Visible = true;
  220. child3.Visible = true;
  221. main.Show ();
  222. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  223. Assert.AreEqual ("{X=123,Y=123}", child2.Location.ToString (), "#2");
  224. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  225. TearDown ();
  226. }
  227. [Category("NotWorking")]
  228. [Test]
  229. public void StartLocationTest11 ()
  230. {
  231. SetUp (false, false);
  232. child1.MdiParent = main;
  233. child2.MdiParent = main;
  234. child3.MdiParent = main;
  235. child2.Location = new Point (123, 123);
  236. Assert.AreEqual ("{X=123,Y=123}", child2.Location.ToString (), "#0");
  237. child1.Visible = true;
  238. child2.Visible = true;
  239. child3.Visible = true;
  240. Assert.AreEqual ("{X=123,Y=123}", child2.Location.ToString (), "#0");
  241. main.Show ();
  242. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  243. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  244. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  245. TearDown ();
  246. }
  247. [Category("NotWorking")]
  248. [Test]
  249. public void StartLocationTest12 ()
  250. {
  251. SetUp (false, false);
  252. child1.MdiParent = main;
  253. child2.MdiParent = main;
  254. child3.MdiParent = main;
  255. child1.Visible = true;
  256. //child2.Visible = true;
  257. child3.Visible = true;
  258. main.Show ();
  259. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  260. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  261. Assert.AreEqual ("{X=22,Y=22}", child3.Location.ToString (), "#3");
  262. child2.Visible = true;
  263. Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#4");
  264. child1.Visible = false;
  265. child1.Visible = true;
  266. Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#1");
  267. TearDown ();
  268. }
  269. [Category("NotWorking")]
  270. [Test]
  271. public void StartLocationTest13 ()
  272. {
  273. SetUp (false, false);
  274. child1.MdiParent = main;
  275. child2.MdiParent = main;
  276. child3.MdiParent = main;
  277. child1.Visible = true;
  278. //child2.Visible = true;
  279. child3.Visible = true;
  280. main.Show ();
  281. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  282. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  283. Assert.AreEqual ("{X=22,Y=22}", child3.Location.ToString (), "#3");
  284. child2.Visible = true;
  285. Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#4");
  286. child1.Visible = false;
  287. child1.Visible = true;
  288. Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#5");
  289. child3.Visible = true;
  290. Assert.AreEqual ("{X=22,Y=22}", child3.Location.ToString (), "#6");
  291. // MDI Child size does not seem to affect layout.
  292. // Size 500,500
  293. child2.Visible = false;
  294. child2.Size = new Size (500, 500);
  295. child2.Visible = true;
  296. Assert.AreEqual ("{X=88,Y=88}", child2.Location.ToString (), "#7");
  297. child2.Visible = false;
  298. child2.Visible = true;
  299. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#8");
  300. child2.Visible = false;
  301. child2.Visible = true;
  302. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#9");
  303. // Size 5,5
  304. child2.Visible = false;
  305. child2.Size = new Size (5, 5);
  306. child2.Visible = true;
  307. Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#10");
  308. child2.Visible = false;
  309. child2.Visible = true;
  310. Assert.AreEqual ("{X=66,Y=66}", child2.Location.ToString (), "#11");
  311. child2.Visible = false;
  312. child2.Visible = true;
  313. Assert.AreEqual ("{X=88,Y=88}", child2.Location.ToString (), "#12");
  314. child2.Visible = false;
  315. child2.Visible = true;
  316. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#13");
  317. TearDown ();
  318. }
  319. [Category("NotWorking")]
  320. [Test]
  321. public void StartLocationTest14 ()
  322. {
  323. SetUp (false, false);
  324. child1.MdiParent = main;
  325. child2.MdiParent = main;
  326. child3.MdiParent = main;
  327. child2.StartPosition = FormStartPosition.Manual;
  328. child2.Location = new Point (44, 44);
  329. child1.Visible = true;
  330. child2.Visible = true;
  331. child3.Visible = true;
  332. main.Show ();
  333. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  334. Assert.AreEqual ("{X=44,Y=44}", child2.Location.ToString (), "#2");
  335. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  336. child1.Visible = false;
  337. child1.Visible = true;
  338. Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#4");
  339. TearDown ();
  340. }
  341. [Category("NotWorking")]
  342. [Test]
  343. public void StartLocationTest15 ()
  344. {
  345. SetUp (false, false);
  346. child1.MdiParent = main;
  347. child2.MdiParent = main;
  348. child3.MdiParent = main;
  349. main.Show ();
  350. child1.Visible = true;
  351. child2.Visible = true;
  352. child2.Location = new Point (22, 44);
  353. child3.Visible = true;
  354. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  355. Assert.AreEqual ("{X=22,Y=44}", child2.Location.ToString (), "#2");
  356. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  357. child1.Visible = false;
  358. child1.Visible = true;
  359. Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#4");
  360. TearDown ();
  361. }
  362. [Category("NotWorking")]
  363. [Test]
  364. public void StartLocationTest16 ()
  365. {
  366. SetUp (false, false);
  367. child1.MdiParent = main;
  368. child2.MdiParent = main;
  369. child3.MdiParent = main;
  370. child1.Visible = true;
  371. child2.Visible = true;
  372. child2.Location = new Point (22, 44);
  373. child3.Visible = true;
  374. main.Show ();
  375. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  376. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  377. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#3");
  378. child1.Visible = false;
  379. child1.Visible = true;
  380. Assert.AreEqual ("{X=66,Y=66}", child1.Location.ToString (), "#4");
  381. TearDown ();
  382. }
  383. [Category("NotWorking")]
  384. [Test]
  385. public void StartLocationTest17 ()
  386. {
  387. SetUp (false, false);
  388. child1.MdiParent = main;
  389. child2.MdiParent = main;
  390. child3.MdiParent = main;
  391. child1.Visible = true;
  392. child2.Visible = true;
  393. main.Show ();
  394. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  395. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  396. Assert.AreEqual ("{X=0,Y=0}", child3.Location.ToString (), "#3");
  397. child2.Visible = false;
  398. child3.Visible = true;
  399. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#4");
  400. TearDown ();
  401. }
  402. [Category("NotWorking")]
  403. [Test]
  404. public void StartLocationTest18 ()
  405. {
  406. SetUp (false, false);
  407. child1.MdiParent = main;
  408. child2.MdiParent = main;
  409. child3.MdiParent = main;
  410. child1.Visible = true;
  411. child2.Visible = true;
  412. main.Show ();
  413. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  414. Assert.AreEqual ("{X=22,Y=22}", child2.Location.ToString (), "#2");
  415. Assert.AreEqual ("{X=0,Y=0}", child3.Location.ToString (), "#3");
  416. child2.Visible = false;
  417. child2.Close ();
  418. child2.Dispose ();
  419. child2 = null;
  420. child3.Visible = true;
  421. Assert.AreEqual ("{X=44,Y=44}", child3.Location.ToString (), "#4");
  422. TearDown ();
  423. }
  424. [Category("NotWorking")]
  425. [Test]
  426. public void StartLocationTest19 ()
  427. {
  428. SetUp (false, false);
  429. child1.MdiParent = main;
  430. child2.MdiParent = main;
  431. child3.MdiParent = main;
  432. child1.Visible = true;
  433. child2.Visible = true;
  434. child3.Visible = true;
  435. child1.StartPosition = FormStartPosition.Manual;
  436. child2.StartPosition = FormStartPosition.Manual;
  437. child3.StartPosition = FormStartPosition.Manual;
  438. main.Show ();
  439. Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
  440. Assert.AreEqual ("{X=0,Y=0}", child2.Location.ToString (), "#2");
  441. Assert.AreEqual ("{X=0,Y=0}", child3.Location.ToString (), "#3");
  442. TearDown ();
  443. }
  444. [Test]
  445. public void StartSizeTest1 ()
  446. {
  447. SetUp (false, false);
  448. child1.MdiParent = main;
  449. child2.MdiParent = main;
  450. child3.MdiParent = main;
  451. main.Show ();
  452. Assert.AreEqual ("{Width=300, Height=300}", main.Size.ToString (), "#1");
  453. Assert.AreEqual ("{Width=300, Height=300}", child1.Size.ToString (), "#2");
  454. Assert.AreEqual ("{Width=300, Height=300}", child2.Size.ToString (), "#3");
  455. Assert.AreEqual ("{Width=300, Height=300}", child3.Size.ToString (), "#4");
  456. child1.Visible = true;
  457. child2.Visible = true;
  458. child3.Visible = true;
  459. Assert.AreEqual ("{Width=300, Height=300}", main.Size.ToString (), "#1");
  460. Assert.AreEqual ("{Width=300, Height=300}", child1.Size.ToString (), "#2");
  461. Assert.AreEqual ("{Width=300, Height=300}", child2.Size.ToString (), "#3");
  462. Assert.AreEqual ("{Width=300, Height=300}", child3.Size.ToString (), "#4");
  463. TearDown ();
  464. }
  465. [Test]
  466. public void IsMdiContainerTest ()
  467. {
  468. SetUp (false, true);
  469. main.Visible = true;
  470. main.Visible = false;
  471. main.IsMdiContainer = true;
  472. child1.MdiParent = main;
  473. main.IsMdiContainer = false;
  474. Assert.AreSame (null, main.ActiveMdiChild, "#1");
  475. main.Visible = true;
  476. Assert.AreSame (null, main.ActiveMdiChild, "#2");
  477. Assert.AreSame (null, main.MdiParent, "#3");
  478. TearDown ();
  479. }
  480. [Category("NotWorking")]
  481. [Test]
  482. [ExpectedException(typeof(ArgumentException), "Cannot add a top level control to a control.")]
  483. public void AddToControlsTest ()
  484. {
  485. SetUp (false, true);
  486. main.Visible = true;
  487. main.Visible = false;
  488. main.Controls.Add (child1);
  489. TearDown ();
  490. }
  491. [Test]
  492. public void Text ()
  493. {
  494. Form main = null, child1 = null, child2 = null, child3 = null;
  495. main = new Form ();
  496. main.IsMdiContainer = true;
  497. main.Name = "main";
  498. main.Text = main.Name;
  499. main.Show();
  500. Assert.AreEqual ("main", main.Text, "#1");
  501. child1 = new Form ();
  502. child1.Name = "child1";
  503. child1.MdiParent = main;
  504. child1.Text = child1.Name;
  505. child1.WindowState = FormWindowState.Maximized;
  506. child1.Show ();
  507. Assert.AreEqual ("main - [child1]", main.Text, "#2");
  508. child2 = new Form ();
  509. child2.Name = "child2";
  510. child1.MdiParent = main;
  511. child2.Text = string.Empty;
  512. child2.WindowState = FormWindowState.Maximized;
  513. child2.Show();
  514. Assert.AreEqual ("main - [child1]", main.Text, "#3");
  515. child1.Activate();
  516. Assert.AreEqual ("main - [child1]", main.Text, "#4");
  517. child1.WindowState = FormWindowState.Minimized;
  518. Assert.AreEqual ("main", main.Text, "#5");
  519. child2.Activate ();
  520. Assert.AreEqual ("main", main.Text, "#6");
  521. child2.WindowState = FormWindowState.Maximized;
  522. Assert.AreEqual ("main", main.Text, "#7");
  523. child3 = new Form ();
  524. child3.Name = "child3";
  525. child3.MdiParent = main;
  526. child3.Text = child3.Name;
  527. child3.WindowState = FormWindowState.Maximized;
  528. child3.Show ();
  529. Assert.AreEqual ("main - [child3]", main.Text, "#8");
  530. child3.WindowState = FormWindowState.Normal;
  531. Assert.AreEqual ("main", main.Text, "#9");
  532. main.Text = string.Empty;
  533. child3.WindowState = FormWindowState.Maximized;
  534. Assert.AreEqual (" - [child3]", main.Text, "#10");
  535. child3.Text = string.Empty;
  536. Assert.AreEqual (string.Empty, main.Text, "#11");
  537. child3.Dispose ();
  538. child2.Dispose ();
  539. child1.Dispose ();
  540. main.Dispose ();
  541. }
  542. [Test]
  543. public void Text_MdiContainer ()
  544. {
  545. Form main = new Form ();
  546. main.ShowInTaskbar = false;
  547. main.Text = "main";
  548. main.IsMdiContainer = true;
  549. main.Show ();
  550. Assert.AreEqual ("main", main.Text, "#1");
  551. Form child = new Form ();
  552. child.Name = "child";
  553. child.MdiParent = main;
  554. child.Text = child.Name;
  555. child.WindowState = FormWindowState.Maximized;
  556. child.Show ();
  557. Assert.AreEqual ("main - [child]", main.Text, "#2");
  558. main.Dispose ();
  559. }
  560. [Test] // bug 80038
  561. public void Text_ChildClose ()
  562. {
  563. Form main = new Form ();
  564. main.ShowInTaskbar = false;
  565. main.IsMdiContainer = true;
  566. main.Text = "main";
  567. main.Show ();
  568. Assert.AreEqual ("main", main.Text, "#1");
  569. Form child = new Form ();
  570. child.Name = "child";
  571. child.MdiParent = main;
  572. child.Text = child.Name;
  573. child.WindowState = FormWindowState.Maximized;
  574. child.Show ();
  575. Assert.AreEqual ("main - [child]", main.Text, "#2");
  576. child.Close ();
  577. Assert.AreEqual ("main", main.Text, "#3");
  578. main.Dispose ();
  579. }
  580. [Test]
  581. public void Text_Maximized ()
  582. {
  583. Form main = new Form ();
  584. main.IsMdiContainer = true;
  585. main.Name = "main";
  586. main.Text = main.Name;
  587. main.Show ();
  588. Assert.AreEqual ("main", main.Text, "#1");
  589. Form child1 = new Form ();
  590. child1.Name = "child1";
  591. child1.MdiParent = main;
  592. child1.Text = child1.Name;
  593. child1.WindowState = FormWindowState.Maximized;
  594. child1.Show ();
  595. Assert.AreEqual ("main - [child1]", main.Text, "#2");
  596. Form child2 = new Form ();
  597. child2.Name = "child2";
  598. child2.MdiParent = main;
  599. child2.Text = child2.Name;
  600. child2.WindowState = FormWindowState.Maximized;
  601. child2.Show ();
  602. Assert.AreEqual ("main - [child2]", main.Text, "#3");
  603. child1.WindowState = FormWindowState.Maximized;
  604. Assert.AreEqual ("main - [child1]", main.Text, "#4");
  605. main.Dispose ();
  606. }
  607. [Test]
  608. public void ActiveMdiChild ()
  609. {
  610. Form main, child1, child2;
  611. main = new Form ();
  612. main.IsMdiContainer = true;
  613. main.Name = "main";
  614. child1 = new Form ();
  615. child1.Name = "child1";
  616. child1.MdiParent = main;
  617. child1.WindowState = FormWindowState.Maximized;
  618. child1.Show ();
  619. child2 = new Form ();
  620. child2.Name = "child2";
  621. child2.MdiParent = main;
  622. child2.Show();
  623. Assert.IsNull (main.ActiveMdiChild, "#1");
  624. main.Show ();
  625. Assert.AreSame (child2, main.ActiveMdiChild, "#2");
  626. child1.WindowState = FormWindowState.Maximized;
  627. Assert.AreSame (child1, main.ActiveMdiChild, "#3");
  628. child2.WindowState = FormWindowState.Maximized;
  629. Assert.AreSame (child2, main.ActiveMdiChild, "#4");
  630. main.Visible = false;
  631. #if NET_2_0
  632. Assert.IsNull (main.ActiveMdiChild, "#5");
  633. #else
  634. Assert.AreSame (child2, main.ActiveMdiChild, "#5");
  635. #endif
  636. child2.Dispose ();
  637. child1.Dispose ();
  638. main.Dispose ();
  639. main.Close();
  640. }
  641. [Test]
  642. public void ActiveMdiChild2 ()
  643. {
  644. SetUp (false, false);
  645. child1.MdiParent = main;
  646. child2.MdiParent = main;
  647. main.Show ();
  648. child1.Show ();
  649. child2.Show ();
  650. child1.Activate ();
  651. child1.Visible = false;
  652. Assert.AreSame (child2, main.ActiveMdiChild, "#1");
  653. TearDown ();
  654. }
  655. [Test]
  656. public void ActiveMdiChild3 ()
  657. {
  658. SetUp (false, false);
  659. child1.MdiParent = main;
  660. child2.MdiParent = main;
  661. main.Visible = true;
  662. main.Visible = false;
  663. Assert.AreSame (null, main.ActiveMdiChild, "#1");
  664. //child2.Visible = true; This will cause StackOverflowException on MS.
  665. main.Visible = true;
  666. Assert.AreSame (null, main.ActiveMdiChild, "#2");
  667. TearDown ();
  668. }
  669. [Test]
  670. public void MdiChild_WindowState1 ()
  671. {
  672. Form main = null, child1 = null, child2 = null;
  673. try {
  674. main = new Form ();
  675. main.IsMdiContainer = true;
  676. main.Name = "main";
  677. child1 = new Form ();
  678. child1.Name = "child1";
  679. child1.MdiParent = main;
  680. child1.WindowState = FormWindowState.Maximized;
  681. child1.Show ();
  682. child2 = new Form ();
  683. child2.Name = "child2";
  684. child2.MdiParent = main;
  685. child2.Show();
  686. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
  687. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#2");
  688. main.Show ();
  689. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
  690. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  691. } finally {
  692. child2.Dispose ();
  693. child1.Dispose ();
  694. main.Dispose ();
  695. main.Close();
  696. }
  697. }
  698. [Test]
  699. public void MdiChild_WindowState2 ()
  700. {
  701. Form main = null, child1 = null, child2 = null;
  702. try{
  703. main = new Form ();
  704. main.Name = "main";
  705. main.IsMdiContainer = true;
  706. main.Show ();
  707. child1 = new Form ();
  708. child1.Name = "child1";
  709. child1.MdiParent = main;
  710. child1.WindowState = FormWindowState.Maximized;
  711. child1.Show ();
  712. child2 = new Form ();
  713. child2.Name = "child2";
  714. child2.MdiParent = main;
  715. child2.Show();
  716. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
  717. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  718. } finally {
  719. child2.Dispose ();
  720. child1.Dispose ();
  721. main.Dispose ();
  722. main.Close();
  723. }
  724. }
  725. [Test]
  726. public void MdiChild_WindowState3 ()
  727. {
  728. Form main = null, child1 = null, child2 = null;
  729. try {
  730. main = new Form ();
  731. main.IsMdiContainer = true;
  732. main.Show ();
  733. child1 = new Form ();
  734. child1.MdiParent = main;
  735. child1.Show ();
  736. child2 = new Form ();
  737. child2.MdiParent = main;
  738. child2.WindowState = FormWindowState.Maximized;
  739. child2.Show();
  740. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
  741. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  742. } finally {
  743. child2.Dispose ();
  744. child1.Dispose ();
  745. main.Dispose ();
  746. main.Close();
  747. }
  748. }
  749. [Test]
  750. public void MdiChild_WindowState4 ()
  751. {
  752. Form main = null, child1 = null, child2 = null;
  753. try {
  754. main = new Form ();
  755. main.IsMdiContainer = true;
  756. main.Show ();
  757. child1 = new Form ();
  758. child1.MdiParent = main;
  759. child1.WindowState = FormWindowState.Maximized;
  760. child1.Show ();
  761. child2 = new Form ();
  762. child2.MdiParent = main;
  763. child2.WindowState = FormWindowState.Maximized;
  764. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
  765. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  766. child2.Show();
  767. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
  768. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  769. child2.WindowState = FormWindowState.Normal;
  770. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#5");
  771. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
  772. } finally {
  773. child2.Dispose ();
  774. child1.Dispose ();
  775. main.Dispose ();
  776. main.Close();
  777. }
  778. }
  779. [Test]
  780. public void MdiChild_WindowState5 ()
  781. {
  782. Form main = null, child1 = null, child2 = null;
  783. try {
  784. main = new Form ();
  785. main.Name = "main";
  786. main.IsMdiContainer = true;
  787. main.Show ();
  788. child1 = new Form ();
  789. child1.Name = "child1";
  790. child1.MdiParent = main;
  791. child1.WindowState = FormWindowState.Maximized;
  792. child1.Show ();
  793. child2 = new Form ();
  794. child2.Name = "child2";
  795. child2.MdiParent = main;
  796. child2.WindowState = FormWindowState.Maximized;
  797. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
  798. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  799. child2.Show();
  800. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
  801. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  802. child1.Activate ();
  803. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
  804. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
  805. } finally {
  806. child2.Dispose ();
  807. child1.Dispose ();
  808. main.Dispose ();
  809. main.Close();
  810. }
  811. }
  812. [Test]
  813. public void MdiChild_WindowState6 ()
  814. {
  815. Form main = null, child1 = null, child2 = null;
  816. try {
  817. main = new Form ();
  818. main.Name = "main";
  819. main.IsMdiContainer = true;
  820. main.Show ();
  821. child1 = new Form ();
  822. child1.Name = "child1";
  823. child1.MdiParent = main;
  824. child1.WindowState = FormWindowState.Minimized;
  825. child1.Show ();
  826. child2 = new Form ();
  827. child2.Name = "child2";
  828. child2.MdiParent = main;
  829. child2.WindowState = FormWindowState.Maximized;
  830. Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#1");
  831. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  832. child2.Show();
  833. Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#3");
  834. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  835. child1.Activate ();
  836. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
  837. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
  838. child2.Activate ();
  839. Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#7");
  840. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#8");
  841. } finally {
  842. child2.Dispose ();
  843. child1.Dispose ();
  844. main.Dispose ();
  845. main.Close();
  846. }
  847. }
  848. }
  849. }