MdiFormTest.cs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  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.Windows.Forms;
  11. using System.Drawing;
  12. using System.Reflection;
  13. using NUnit.Framework;
  14. namespace MonoTests.System.Windows.Forms
  15. {
  16. [TestFixture]
  17. public class MdiFormTest
  18. {
  19. [Test]
  20. public void Text ()
  21. {
  22. Form main = null, child1 = null, child2 = null, child3 = null;
  23. main = new Form ();
  24. main.IsMdiContainer = true;
  25. main.Name = "main";
  26. main.Text = main.Name;
  27. main.Show();
  28. Assert.AreEqual ("main", main.Text, "#1");
  29. child1 = new Form ();
  30. child1.Name = "child1";
  31. child1.MdiParent = main;
  32. child1.Text = child1.Name;
  33. child1.WindowState = FormWindowState.Maximized;
  34. child1.Show ();
  35. Assert.AreEqual ("main - [child1]", main.Text, "#2");
  36. child2 = new Form ();
  37. child2.Name = "child2";
  38. child1.MdiParent = main;
  39. child2.Text = string.Empty;
  40. child2.WindowState = FormWindowState.Maximized;
  41. child2.Show();
  42. Assert.AreEqual ("main - [child1]", main.Text, "#3");
  43. child1.Activate();
  44. Assert.AreEqual ("main - [child1]", main.Text, "#4");
  45. child1.WindowState = FormWindowState.Minimized;
  46. Assert.AreEqual ("main", main.Text, "#5");
  47. child2.Activate ();
  48. Assert.AreEqual ("main", main.Text, "#6");
  49. child2.WindowState = FormWindowState.Maximized;
  50. Assert.AreEqual ("main", main.Text, "#7");
  51. child3 = new Form ();
  52. child3.Name = "child3";
  53. child3.MdiParent = main;
  54. child3.Text = child3.Name;
  55. child3.WindowState = FormWindowState.Maximized;
  56. child3.Show ();
  57. Assert.AreEqual ("main - [child3]", main.Text, "#8");
  58. child3.WindowState = FormWindowState.Normal;
  59. Assert.AreEqual ("main", main.Text, "#9");
  60. main.Text = string.Empty;
  61. child3.WindowState = FormWindowState.Maximized;
  62. Assert.AreEqual (" - [child3]", main.Text, "#10");
  63. child3.Text = string.Empty;
  64. Assert.AreEqual (string.Empty, main.Text, "#11");
  65. child3.Dispose ();
  66. child2.Dispose ();
  67. child1.Dispose ();
  68. main.Dispose ();
  69. }
  70. // Setting WindowState to Maximized of a form, of which the handle is
  71. // already created, does not make it ActiveMdiChild
  72. [Test]
  73. [Category ("NotWorking")]
  74. public void Text_Maximized ()
  75. {
  76. Form main = new Form ();
  77. main.IsMdiContainer = true;
  78. main.Name = "main";
  79. main.Text = main.Name;
  80. main.Show ();
  81. Assert.AreEqual ("main", main.Text, "#1");
  82. Form child1 = new Form ();
  83. child1.Name = "child1";
  84. child1.MdiParent = main;
  85. child1.Text = child1.Name;
  86. child1.WindowState = FormWindowState.Maximized;
  87. child1.Show ();
  88. Assert.AreEqual ("main - [child1]", main.Text, "#2");
  89. Form child2 = new Form ();
  90. child2.Name = "child2";
  91. child2.MdiParent = main;
  92. child2.Text = child2.Name;
  93. child2.WindowState = FormWindowState.Maximized;
  94. child2.Show ();
  95. Assert.AreEqual ("main - [child2]", main.Text, "#3");
  96. child1.WindowState = FormWindowState.Maximized;
  97. Assert.AreEqual ("main - [child1]", main.Text, "#4");
  98. }
  99. // Form.ActiveMdiChild should return null if handle is not yet created
  100. [Test]
  101. [Category("NotWorking")]
  102. public void ActiveMdiChild ()
  103. {
  104. Form main, child1, child2;
  105. main = new Form ();
  106. main.IsMdiContainer = true;
  107. main.Name = "main";
  108. child1 = new Form ();
  109. child1.Name = "child1";
  110. child1.MdiParent = main;
  111. child1.WindowState = FormWindowState.Maximized;
  112. child1.Show ();
  113. child2 = new Form ();
  114. child2.Name = "child2";
  115. child2.MdiParent = main;
  116. child2.Show();
  117. Assert.IsNull (main.ActiveMdiChild, "#1");
  118. main.Show ();
  119. Assert.AreSame (child2, main.ActiveMdiChild, "#2");
  120. child1.WindowState = FormWindowState.Maximized;
  121. Assert.AreSame (child1, main.ActiveMdiChild, "#3");
  122. child1.WindowState = FormWindowState.Maximized;
  123. Assert.AreSame (child2, main.ActiveMdiChild, "#4");
  124. main.Visible = false;
  125. Assert.AreSame (child2, main.ActiveMdiChild, "#5");
  126. child2.Dispose ();
  127. child1.Dispose ();
  128. main.Dispose ();
  129. main.Close();
  130. }
  131. [Test]
  132. public void MdiChild_WindowState1 ()
  133. {
  134. Form main = null, child1 = null, child2 = null;
  135. try {
  136. main = new Form ();
  137. main.IsMdiContainer = true;
  138. main.Name = "main";
  139. child1 = new Form ();
  140. child1.Name = "child1";
  141. child1.MdiParent = main;
  142. child1.WindowState = FormWindowState.Maximized;
  143. child1.Show ();
  144. child2 = new Form ();
  145. child2.Name = "child2";
  146. child2.MdiParent = main;
  147. child2.Show();
  148. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
  149. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#2");
  150. main.Show ();
  151. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
  152. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  153. } finally {
  154. child2.Dispose ();
  155. child1.Dispose ();
  156. main.Dispose ();
  157. main.Close();
  158. }
  159. }
  160. [Test]
  161. public void MdiChild_WindowState2 ()
  162. {
  163. Form main = null, child1 = null, child2 = null;
  164. try{
  165. main = new Form ();
  166. main.Name = "main";
  167. main.IsMdiContainer = true;
  168. main.Show ();
  169. child1 = new Form ();
  170. child1.Name = "child1";
  171. child1.MdiParent = main;
  172. child1.WindowState = FormWindowState.Maximized;
  173. child1.Show ();
  174. child2 = new Form ();
  175. child2.Name = "child2";
  176. child2.MdiParent = main;
  177. child2.Show();
  178. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
  179. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  180. } finally {
  181. child2.Dispose ();
  182. child1.Dispose ();
  183. main.Dispose ();
  184. main.Close();
  185. }
  186. }
  187. [Test]
  188. public void MdiChild_WindowState3 ()
  189. {
  190. Form main = null, child1 = null, child2 = null;
  191. try {
  192. main = new Form ();
  193. main.IsMdiContainer = true;
  194. main.Show ();
  195. child1 = new Form ();
  196. child1.MdiParent = main;
  197. child1.Show ();
  198. child2 = new Form ();
  199. child2.MdiParent = main;
  200. child2.WindowState = FormWindowState.Maximized;
  201. child2.Show();
  202. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#1");
  203. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  204. } finally {
  205. child2.Dispose ();
  206. child1.Dispose ();
  207. main.Dispose ();
  208. main.Close();
  209. }
  210. }
  211. [Test]
  212. public void MdiChild_WindowState4 ()
  213. {
  214. Form main = null, child1 = null, child2 = null;
  215. try {
  216. main = new Form ();
  217. main.IsMdiContainer = true;
  218. main.Show ();
  219. child1 = new Form ();
  220. child1.MdiParent = main;
  221. child1.WindowState = FormWindowState.Maximized;
  222. child1.Show ();
  223. child2 = new Form ();
  224. child2.MdiParent = main;
  225. child2.WindowState = FormWindowState.Maximized;
  226. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
  227. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  228. child2.Show();
  229. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
  230. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  231. child2.WindowState = FormWindowState.Normal;
  232. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#5");
  233. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
  234. } finally {
  235. child2.Dispose ();
  236. child1.Dispose ();
  237. main.Dispose ();
  238. main.Close();
  239. }
  240. }
  241. [Test]
  242. public void MdiChild_WindowState5 ()
  243. {
  244. Form main = null, child1 = null, child2 = null;
  245. try {
  246. main = new Form ();
  247. main.Name = "main";
  248. main.IsMdiContainer = true;
  249. main.Show ();
  250. child1 = new Form ();
  251. child1.Name = "child1";
  252. child1.MdiParent = main;
  253. child1.WindowState = FormWindowState.Maximized;
  254. child1.Show ();
  255. child2 = new Form ();
  256. child2.Name = "child2";
  257. child2.MdiParent = main;
  258. child2.WindowState = FormWindowState.Maximized;
  259. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#1");
  260. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  261. child2.Show();
  262. Assert.AreEqual (FormWindowState.Normal, child1.WindowState, "#3");
  263. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  264. child1.Activate ();
  265. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
  266. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
  267. } finally {
  268. child2.Dispose ();
  269. child1.Dispose ();
  270. main.Dispose ();
  271. main.Close();
  272. }
  273. }
  274. [Test]
  275. public void MdiChild_WindowState6 ()
  276. {
  277. Form main = null, child1 = null, child2 = null;
  278. try {
  279. main = new Form ();
  280. main.Name = "main";
  281. main.IsMdiContainer = true;
  282. main.Show ();
  283. child1 = new Form ();
  284. child1.Name = "child1";
  285. child1.MdiParent = main;
  286. child1.WindowState = FormWindowState.Minimized;
  287. child1.Show ();
  288. child2 = new Form ();
  289. child2.Name = "child2";
  290. child2.MdiParent = main;
  291. child2.WindowState = FormWindowState.Maximized;
  292. Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#1");
  293. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#2");
  294. child2.Show();
  295. Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#3");
  296. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#4");
  297. child1.Activate ();
  298. Assert.AreEqual (FormWindowState.Maximized, child1.WindowState, "#5");
  299. Assert.AreEqual (FormWindowState.Normal, child2.WindowState, "#6");
  300. child2.Activate ();
  301. Assert.AreEqual (FormWindowState.Minimized, child1.WindowState, "#7");
  302. Assert.AreEqual (FormWindowState.Maximized, child2.WindowState, "#8");
  303. } finally {
  304. child2.Dispose ();
  305. child1.Dispose ();
  306. main.Dispose ();
  307. main.Close();
  308. }
  309. }
  310. }
  311. }