TreeViewTest.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. using System;
  2. using System.Collections;
  3. using System.Drawing;
  4. using System.Globalization;
  5. using System.Windows.Forms;
  6. using NUnit.Framework;
  7. namespace MonoTests.System.Windows.Forms
  8. {
  9. [TestFixture]
  10. public class TreeViewTest
  11. {
  12. [Test]
  13. public void DefaultCtor ()
  14. {
  15. TreeView tv = new TreeView ();
  16. Assert.AreEqual (121, tv.Width, "#1");
  17. Assert.AreEqual (97, tv.Height, "#2");
  18. Assert.IsTrue (tv.Scrollable, "#3");
  19. Assert.AreEqual (tv.SelectedNode, null, "#4");
  20. }
  21. [Test]
  22. public void SimpleShowTest ()
  23. {
  24. Form f = new Form ();
  25. f.ShowInTaskbar = false;
  26. TreeView tv = new TreeView ();
  27. //tv.BorderStyle = BorderStyle.FixedSingle;
  28. tv.Location = new Point (20, 20);
  29. //tv.Text = "adssssss";
  30. f.Controls.Add (tv);
  31. f.Show ();
  32. f.Dispose ();
  33. }
  34. [Test]
  35. public void NodesCopyToTest ()
  36. {
  37. TreeView tv = new TreeView();
  38. TreeNode one = new TreeNode ("one");
  39. TreeNode two = new TreeNode ("two");
  40. TreeNode three = new TreeNode ("three");
  41. tv.Nodes.Add (one);
  42. tv.Nodes.Add (two);
  43. tv.Nodes.Add (three);
  44. ArrayList al = new ArrayList (tv.Nodes);
  45. Assert.AreEqual (al [0], tv.Nodes [0], "A1");
  46. Assert.AreEqual (al [1], tv.Nodes [1], "A2");
  47. Assert.AreEqual (al [2], tv.Nodes [2], "A3");
  48. }
  49. [Test]
  50. [Category ("NotWorking")] // #B2 fails (and more)
  51. public void ExpandAll_Flat_Created ()
  52. {
  53. TreeView tv = new TreeView ();
  54. tv.Size = new Size (300, 100);
  55. for (int i = 0; i <= 100; i++)
  56. tv.Nodes.Add (i.ToString (CultureInfo.InvariantCulture));
  57. Form form = new Form ();
  58. form.ShowInTaskbar = false;
  59. form.Controls.Add (tv);
  60. form.Show ();
  61. Assert.IsFalse (tv.Nodes [0].IsExpanded, "#A1");
  62. Assert.IsFalse (tv.Nodes [99].IsExpanded, "#A2");
  63. Assert.IsTrue (tv.Nodes [0].IsVisible, "#B1");
  64. Assert.IsFalse (tv.Nodes [99].IsVisible, "#B2");
  65. tv.ExpandAll ();
  66. Assert.IsFalse (tv.Nodes [0].IsExpanded, "#C1");
  67. Assert.IsFalse (tv.Nodes [99].IsExpanded, "#C2");
  68. Assert.IsTrue (tv.Nodes [0].IsVisible, "#D1");
  69. Assert.IsFalse (tv.Nodes [99].IsVisible, "#D2");
  70. }
  71. [Test]
  72. [Category ("NotWorking")] // #B2 fails (and more)
  73. public void ExpandAll_Tree_Created ()
  74. {
  75. TreeView tv = new TreeView ();
  76. tv.Size = new Size (300, 100);
  77. for (int i = 0; i <= 100; i++) {
  78. TreeNode node = tv.Nodes.Add (i.ToString (CultureInfo.InvariantCulture));
  79. node.Nodes.Add ("child");
  80. }
  81. Form form = new Form ();
  82. form.ShowInTaskbar = false;
  83. form.Controls.Add (tv);
  84. form.Show ();
  85. Assert.IsFalse (tv.Nodes [0].IsExpanded, "#A1");
  86. Assert.IsFalse (tv.Nodes [99].IsExpanded, "#A2");
  87. Assert.IsTrue (tv.Nodes [0].IsVisible, "#B1");
  88. Assert.IsFalse (tv.Nodes [99].IsVisible, "#B2");
  89. tv.ExpandAll ();
  90. Assert.IsTrue (tv.Nodes [0].IsExpanded, "#C1");
  91. Assert.IsTrue (tv.Nodes [99].IsExpanded, "#C2");
  92. Assert.IsFalse (tv.Nodes [0].IsVisible, "#D1");
  93. Assert.IsTrue (tv.Nodes [99].IsVisible, "#D2");
  94. }
  95. [Test]
  96. [Category ("NotWorking")] // #B1 fails (and more)
  97. public void ExpandAll_Flat_NotCreated ()
  98. {
  99. TreeView tv = new TreeView ();
  100. tv.Size = new Size (300, 100);
  101. for (int i = 0; i <= 100; i++)
  102. tv.Nodes.Add (i.ToString (CultureInfo.InvariantCulture));
  103. Assert.IsFalse (tv.Nodes [0].IsExpanded, "#A1");
  104. Assert.IsFalse (tv.Nodes [99].IsExpanded, "#A2");
  105. Assert.IsFalse (tv.Nodes [0].IsVisible, "#B1");
  106. Assert.IsFalse (tv.Nodes [99].IsVisible, "#B2");
  107. tv.ExpandAll ();
  108. Assert.IsTrue (tv.Nodes [0].IsExpanded, "#C1");
  109. Assert.IsTrue (tv.Nodes [99].IsExpanded, "#C2");
  110. Assert.IsFalse (tv.Nodes [0].IsVisible, "#D1");
  111. Assert.IsFalse (tv.Nodes [99].IsVisible, "#D2");
  112. Form form = new Form ();
  113. form.ShowInTaskbar = false;
  114. form.Controls.Add (tv);
  115. form.Show ();
  116. Assert.IsFalse (tv.Nodes [0].IsExpanded, "#E1");
  117. Assert.IsFalse (tv.Nodes [99].IsExpanded, "#E2");
  118. Assert.IsTrue (tv.Nodes [0].IsVisible, "#F1");
  119. Assert.IsFalse (tv.Nodes [99].IsVisible, "#F2");
  120. form.Dispose ();
  121. }
  122. [Test] // bug #80284
  123. [Category ("NotWorking")]
  124. public void ExpandAll_Tree_NotCreated ()
  125. {
  126. TreeView tv = new TreeView ();
  127. tv.Size = new Size (300, 100);
  128. for (int i = 0; i <= 100; i++) {
  129. TreeNode node = tv.Nodes.Add (i.ToString (CultureInfo.InvariantCulture));
  130. node.Nodes.Add ("child");
  131. }
  132. Assert.IsFalse (tv.Nodes [0].IsExpanded, "#A1");
  133. Assert.IsFalse (tv.Nodes [99].IsExpanded, "#A2");
  134. Assert.IsFalse (tv.Nodes [0].IsVisible, "#B1");
  135. Assert.IsFalse (tv.Nodes [99].IsVisible, "#B2");
  136. tv.ExpandAll ();
  137. Assert.IsTrue (tv.Nodes [0].IsExpanded, "#C1");
  138. Assert.IsTrue (tv.Nodes [99].IsExpanded, "#C2");
  139. Assert.IsFalse (tv.Nodes [0].IsVisible, "#D1");
  140. Assert.IsFalse (tv.Nodes [99].IsVisible, "#D2");
  141. Form form = new Form ();
  142. form.ShowInTaskbar = false;
  143. form.Controls.Add (tv);
  144. form.Show ();
  145. Assert.IsTrue (tv.Nodes [0].IsExpanded, "#E1");
  146. Assert.IsTrue (tv.Nodes [99].IsExpanded, "#E2");
  147. #if NET_2_0
  148. Assert.IsTrue (tv.Nodes [0].IsVisible, "#F1");
  149. Assert.IsFalse (tv.Nodes [99].IsVisible, "#F2");
  150. #else
  151. Assert.IsFalse (tv.Nodes [0].IsVisible, "#F1");
  152. Assert.IsTrue (tv.Nodes [99].IsVisible, "#F2");
  153. #endif
  154. form.Dispose ();
  155. }
  156. }
  157. [TestFixture]
  158. public class BeforeSelectEvent
  159. {
  160. int beforeSelect;
  161. TreeViewCancelEventArgs cancelEventArgs;
  162. bool cancel;
  163. public void TreeView_BeforeSelect (object sender, TreeViewCancelEventArgs e)
  164. {
  165. beforeSelect++;
  166. cancelEventArgs = e;
  167. if (cancel)
  168. e.Cancel = true;
  169. }
  170. [SetUp]
  171. public void SetUp ()
  172. {
  173. beforeSelect = 0;
  174. cancelEventArgs = null;
  175. cancel = false;
  176. }
  177. [Test]
  178. [Category ("NotWorking")]
  179. public void CancelBeforeCreationOfHandle ()
  180. {
  181. TreeView tvw = new TreeView ();
  182. tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
  183. cancel = true;
  184. TreeNode nodeA = tvw.Nodes.Add ("A");
  185. Assert.AreEqual (0, beforeSelect, "#A1");
  186. tvw.SelectedNode = nodeA;
  187. Assert.AreEqual (0, beforeSelect, "#A2");
  188. Assert.IsNull (cancelEventArgs, "#A3");
  189. Assert.IsFalse (nodeA.IsSelected, "#A4");
  190. Assert.AreSame (nodeA, tvw.SelectedNode, "#A5");
  191. TreeNode nodeB = tvw.Nodes.Add ("B");
  192. Assert.AreEqual (0, beforeSelect, "#B1");
  193. tvw.SelectedNode = nodeB;
  194. Assert.AreEqual (0, beforeSelect, "#B2");
  195. Assert.IsNull (cancelEventArgs, "#B3");
  196. Assert.IsFalse (nodeB.IsSelected, "#B4");
  197. Assert.AreSame (nodeB, tvw.SelectedNode, "#B5");
  198. Form form = new Form ();
  199. form.ShowInTaskbar = false;
  200. form.Controls.Add (tvw);
  201. form.Show ();
  202. Assert.AreEqual (2, beforeSelect, "#C1");
  203. Assert.IsNotNull (cancelEventArgs, "#C2");
  204. Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#C3");
  205. Assert.AreSame (nodeA, cancelEventArgs.Node, "#C4");
  206. Assert.IsFalse (nodeA.IsSelected, "#C5");
  207. Assert.IsFalse (nodeB.IsSelected, "#C6");
  208. Assert.IsNull (tvw.SelectedNode, "#C7");
  209. }
  210. [Test]
  211. [Category ("NotWorking")]
  212. public void SelectBeforeCreationOfHandle ()
  213. {
  214. TreeView tvw = new TreeView ();
  215. tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
  216. TreeNode nodeA = tvw.Nodes.Add ("A");
  217. Assert.AreEqual (0, beforeSelect, "#A1");
  218. tvw.SelectedNode = nodeA;
  219. Assert.AreEqual (0, beforeSelect, "#A2");
  220. Assert.IsNull (cancelEventArgs, "#A3");
  221. Assert.IsFalse (nodeA.IsSelected, "#A4");
  222. Assert.AreSame (nodeA, tvw.SelectedNode, "#A5");
  223. TreeNode nodeB = tvw.Nodes.Add ("B");
  224. Assert.AreEqual (0, beforeSelect, "#B1");
  225. tvw.SelectedNode = nodeB;
  226. Assert.AreEqual (0, beforeSelect, "#B2");
  227. Assert.IsNull (cancelEventArgs, "#B3");
  228. Assert.IsFalse (nodeB.IsSelected, "#B4");
  229. Assert.AreSame (nodeB, tvw.SelectedNode, "#B5");
  230. Form form = new Form ();
  231. form.ShowInTaskbar = false;
  232. form.Controls.Add (tvw);
  233. form.Show ();
  234. Assert.AreEqual (1, beforeSelect, "#C1");
  235. Assert.IsNotNull (cancelEventArgs, "#C2");
  236. Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#C3");
  237. Assert.AreSame (nodeB, cancelEventArgs.Node, "#C4");
  238. Assert.IsFalse (nodeA.IsSelected, "#C5");
  239. Assert.IsTrue (nodeB.IsSelected, "#C6");
  240. Assert.AreSame (nodeB, tvw.SelectedNode, "#C7");
  241. }
  242. [Test]
  243. [Category ("NotWorking")]
  244. public void CancelAfterCreationOfHandle ()
  245. {
  246. TreeView tvw = new TreeView ();
  247. tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
  248. cancel = true;
  249. Form form = new Form ();
  250. form.ShowInTaskbar = false;
  251. form.Controls.Add (tvw);
  252. form.Show ();
  253. TreeNode nodeA = tvw.Nodes.Add ("A");
  254. Assert.AreEqual (0, beforeSelect, "#A1");
  255. tvw.SelectedNode = nodeA;
  256. Assert.AreEqual (1, beforeSelect, "#A2");
  257. Assert.IsNotNull (cancelEventArgs, "#A3");
  258. Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#A4");
  259. Assert.AreSame (nodeA, cancelEventArgs.Node, "#A5");
  260. Assert.IsFalse (nodeA.IsSelected, "#A6");
  261. Assert.IsNull (tvw.SelectedNode, "#A7");
  262. TreeNode nodeB = tvw.Nodes.Add ("B");
  263. Assert.AreEqual (1, beforeSelect, "#B1");
  264. tvw.SelectedNode = nodeB;
  265. Assert.AreEqual (2, beforeSelect, "#B2");
  266. Assert.IsNotNull (cancelEventArgs, "#B3");
  267. Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#B4");
  268. Assert.AreSame (nodeB, cancelEventArgs.Node, "#B5");
  269. Assert.IsFalse (nodeB.IsSelected, "#B6");
  270. Assert.IsNull (tvw.SelectedNode, "#B7");
  271. }
  272. [Test]
  273. [Category ("NotWorking")]
  274. public void SelectAfterCreationOfHandle ()
  275. {
  276. TreeView tvw = new TreeView ();
  277. tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
  278. Form form = new Form ();
  279. form.ShowInTaskbar = false;
  280. form.Controls.Add (tvw);
  281. form.Show ();
  282. TreeNode nodeA = tvw.Nodes.Add ("A");
  283. Assert.AreEqual (0, beforeSelect, "#A1");
  284. tvw.SelectedNode = nodeA;
  285. Assert.AreEqual (1, beforeSelect, "#A2");
  286. Assert.IsNotNull (cancelEventArgs, "#A3");
  287. Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#A4");
  288. Assert.AreSame (nodeA, cancelEventArgs.Node, "#A5");
  289. Assert.IsTrue (nodeA.IsSelected, "#A6");
  290. Assert.AreSame (nodeA, tvw.SelectedNode, "#A7");
  291. TreeNode nodeB = tvw.Nodes.Add ("B");
  292. Assert.AreEqual (1, beforeSelect, "#B1");
  293. tvw.SelectedNode = nodeB;
  294. Assert.AreEqual (2, beforeSelect, "#B2");
  295. Assert.IsNotNull (cancelEventArgs, "#B3");
  296. Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#B4");
  297. Assert.AreSame (nodeB, cancelEventArgs.Node, "#B5");
  298. Assert.IsTrue (nodeB.IsSelected, "#B6");
  299. Assert.AreSame (nodeB, tvw.SelectedNode, "#B7");
  300. }
  301. }
  302. }