ListViewEventTest.cs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. //
  2. // ListViewEventTest.cs: Test cases for ListView events.
  3. //
  4. // Author:
  5. // Ritvik Mayank ([email protected])
  6. //
  7. // (C) 2005 Novell, Inc. (http://www.novell.com)
  8. //
  9. using System;
  10. using NUnit.Framework;
  11. using System.Windows.Forms;
  12. using System.Drawing;
  13. using System.Collections;
  14. namespace MonoTests.System.Windows.Forms
  15. {
  16. [TestFixture]
  17. [Ignore ("Needs Manual Intervention")]
  18. public class LabelEditEvent
  19. {
  20. static bool eventhandled = false;
  21. public void LabelEdit_EventHandler (object sender,LabelEditEventArgs e)
  22. {
  23. eventhandled = true;
  24. }
  25. [Test]
  26. public void AfterLabelEditTest ()
  27. {
  28. Form myform = new Form ();
  29. myform.ShowInTaskbar = false;
  30. ListView mylistview = new ListView ();
  31. mylistview.LabelEdit = true ;
  32. mylistview.AfterLabelEdit += new LabelEditEventHandler (LabelEdit_EventHandler);
  33. mylistview.View = View.Details;
  34. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  35. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  36. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  37. ListViewItem item1 = new ListViewItem ("A", -1);
  38. mylistview.Items.Add (item1);
  39. myform.Controls.Add (mylistview);
  40. myform.ShowDialog ();
  41. Assert.AreEqual (true, eventhandled, "#A1");
  42. myform.Dispose ();
  43. }
  44. [Test]
  45. public void BeforeLabelEditTest ()
  46. {
  47. Form myform = new Form ();
  48. myform.ShowInTaskbar = false;
  49. ListView mylistview = new ListView ();
  50. mylistview.LabelEdit = true ;
  51. mylistview.BeforeLabelEdit += new LabelEditEventHandler (LabelEdit_EventHandler);
  52. eventhandled = false;
  53. mylistview.View = View.Details;
  54. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  55. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  56. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  57. ListViewItem item1 = new ListViewItem ("A", -1);
  58. mylistview.Items.Add (item1);
  59. myform.Controls.Add (mylistview);
  60. myform.ShowDialog ();
  61. Assert.AreEqual (true, eventhandled, "#A2");
  62. myform.Dispose ();
  63. }
  64. }
  65. [TestFixture]
  66. [Ignore ("Needs Manual Intervention")]
  67. public class ColumnClickEvent
  68. {
  69. static bool eventhandled = false;
  70. public void ColumnClickEventHandler (object sender, ColumnClickEventArgs e)
  71. {
  72. eventhandled = true;
  73. }
  74. [Test]
  75. public void ColumnClickTest ()
  76. {
  77. Form myform = new Form ();
  78. myform.ShowInTaskbar = false;
  79. ListView mylistview = new ListView ();
  80. mylistview.LabelEdit = true ;
  81. mylistview.ColumnClick += new ColumnClickEventHandler (ColumnClickEventHandler);
  82. mylistview.View = View.Details;
  83. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  84. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  85. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  86. ListViewItem item1 = new ListViewItem ("A", -1);
  87. mylistview.Items.Add (item1);
  88. myform.Controls.Add (mylistview);
  89. myform.ShowDialog ();
  90. mylistview.Sort ();
  91. Assert.AreEqual (true, eventhandled, "#A3");
  92. myform.Dispose ();
  93. }
  94. }
  95. [TestFixture]
  96. [Ignore ("Needs Manual Intervention")]
  97. public class MyEvent
  98. {
  99. static bool eventhandled = false;
  100. public void New_EventHandler (object sender, EventArgs e)
  101. {
  102. eventhandled = true;
  103. }
  104. [Test]
  105. public void ItemActivateTest ()
  106. {
  107. Form myform = new Form ();
  108. myform.ShowInTaskbar = false;
  109. ListView mylistview = new ListView ();
  110. mylistview.Activation = ItemActivation.OneClick;
  111. mylistview.LabelEdit = true ;
  112. mylistview.ItemActivate += new EventHandler (New_EventHandler);
  113. mylistview.View = View.Details;
  114. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  115. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  116. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  117. ListViewItem item1 = new ListViewItem ("A", -1);
  118. mylistview.Items.Add (item1);
  119. myform.Controls.Add (mylistview);
  120. myform.ShowDialog ();
  121. Assert.AreEqual (true, eventhandled, "#A4");
  122. myform.Dispose ();
  123. }
  124. [Test]
  125. public void SelectedIndexChangedTest ()
  126. {
  127. Form myform = new Form ();
  128. myform.ShowInTaskbar = false;
  129. ListView mylistview = new ListView ();
  130. mylistview.LabelEdit = true ;
  131. mylistview.SelectedIndexChanged += new EventHandler (New_EventHandler);
  132. eventhandled = false;
  133. mylistview.View = View.Details;
  134. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  135. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  136. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  137. ListViewItem item1 = new ListViewItem ("A", -1);
  138. mylistview.Items.Add (item1);
  139. myform.Controls.Add (mylistview);
  140. myform.ShowDialog ();
  141. Assert.AreEqual (true, eventhandled, "#A5");
  142. myform.Dispose ();
  143. }
  144. }
  145. [TestFixture]
  146. [Ignore ("Needs Manual Intervention")]
  147. public class ItemCheckEvent
  148. {
  149. static bool eventhandled = false;
  150. public void ItemCheckEventHandler (object sender, ItemCheckEventArgs e)
  151. {
  152. eventhandled = true;
  153. }
  154. [Test]
  155. public void ItemCheckTest ()
  156. {
  157. Form myform = new Form ();
  158. myform.ShowInTaskbar = false;
  159. ListView mylistview = new ListView ();
  160. mylistview.CheckBoxes = true;
  161. mylistview.LabelEdit = true ;
  162. mylistview.ItemCheck += new ItemCheckEventHandler (ItemCheckEventHandler);
  163. mylistview.View = View.Details;
  164. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  165. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  166. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  167. ListViewItem item1 = new ListViewItem ("A", -1);
  168. mylistview.Items.Add (item1);
  169. myform.Controls.Add (mylistview);
  170. myform.ShowDialog ();
  171. mylistview.Visible = true;
  172. Assert.AreEqual (true, eventhandled, "#A6");
  173. myform.Dispose ();
  174. }
  175. }
  176. [TestFixture]
  177. [Ignore ("Needs Manual Intervention")]
  178. public class ItemDragEvent
  179. {
  180. static bool eventhandled = false;
  181. public void ItemDragEventHandler (object sender, ItemDragEventArgs e)
  182. {
  183. eventhandled = true;
  184. }
  185. [Test]
  186. public void ItemDragTest ()
  187. {
  188. Form myform = new Form ();
  189. myform.ShowInTaskbar = false;
  190. ListView mylistview = new ListView ();
  191. mylistview.ItemDrag += new ItemDragEventHandler (ItemDragEventHandler);
  192. mylistview.View = View.Details;
  193. mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
  194. mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
  195. mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
  196. ListViewItem item1 = new ListViewItem ("A", -1);
  197. mylistview.Items.Add (item1);
  198. myform.Controls.Add (mylistview);
  199. myform.ShowDialog ();
  200. mylistview.Visible = true;
  201. mylistview.DoDragDrop (mylistview.SelectedItems, DragDropEffects.Link);
  202. Assert.AreEqual (true, eventhandled, "#A7");
  203. myform.Dispose ();
  204. }
  205. }
  206. [TestFixture]
  207. public class ListViewSelectedIndexChangedEvent
  208. {
  209. int selectedIndexChanged;
  210. public void ListView_SelectedIndexChanged (object sender, EventArgs e)
  211. {
  212. selectedIndexChanged++;
  213. }
  214. [SetUp]
  215. public void SetUp ()
  216. {
  217. selectedIndexChanged = 0;
  218. }
  219. [Test] // bug #79849
  220. public void SelectBeforeCreationOfHandle ()
  221. {
  222. Form form = new Form ();
  223. form.ShowInTaskbar = false;
  224. ListView lvw = new ListView ();
  225. lvw.SelectedIndexChanged += new EventHandler (ListView_SelectedIndexChanged);
  226. lvw.View = View.Details;
  227. ListViewItem itemA = new ListViewItem ("A");
  228. lvw.Items.Add (itemA);
  229. Assert.AreEqual (0, selectedIndexChanged, "#A1");
  230. itemA.Selected = true;
  231. Assert.AreEqual (0, selectedIndexChanged, "A2");
  232. ListViewItem itemB = new ListViewItem ("B");
  233. lvw.Items.Add (itemB);
  234. Assert.AreEqual (0, selectedIndexChanged, "#B1");
  235. itemB.Selected = true;
  236. Assert.AreEqual (0, selectedIndexChanged, "B2");
  237. form.Controls.Add (lvw);
  238. Assert.AreEqual (0, selectedIndexChanged, "#C1");
  239. form.Show ();
  240. Assert.AreEqual (2, selectedIndexChanged, "#C2");
  241. form.Dispose ();
  242. }
  243. [Test]
  244. public void RemoveSelectedItem ()
  245. {
  246. Form form = new Form ();
  247. form.ShowInTaskbar = false;
  248. ListView lvw = new ListView ();
  249. lvw.SelectedIndexChanged += new EventHandler (ListView_SelectedIndexChanged);
  250. lvw.View = View.Details;
  251. ListViewItem itemA = new ListViewItem ("A");
  252. lvw.Items.Add (itemA);
  253. Assert.AreEqual (0, selectedIndexChanged, "#A1");
  254. itemA.Selected = true;
  255. Assert.AreEqual (0, selectedIndexChanged, "A2");
  256. ListViewItem itemB = new ListViewItem ("B");
  257. lvw.Items.Add (itemB);
  258. Assert.AreEqual (0, selectedIndexChanged, "#B1");
  259. itemB.Selected = true;
  260. Assert.AreEqual (0, selectedIndexChanged, "B2");
  261. lvw.Items.Remove (itemB);
  262. Assert.IsTrue (itemB.Selected, "#B3");
  263. form.Controls.Add (lvw);
  264. Assert.AreEqual (0, selectedIndexChanged, "#C1");
  265. form.Show ();
  266. Assert.AreEqual (1, selectedIndexChanged, "#C2");
  267. lvw.Items.Remove (itemA);
  268. Assert.AreEqual (2, selectedIndexChanged, "#C3");
  269. Assert.IsTrue (itemA.Selected, "#C4");
  270. }
  271. [Test]
  272. public void AddAndSelectItem ()
  273. {
  274. Form form = new Form ();
  275. form.ShowInTaskbar = false;
  276. ListView lvw = new ListView ();
  277. lvw.SelectedIndexChanged += new EventHandler (ListView_SelectedIndexChanged);
  278. lvw.View = View.Details;
  279. form.Controls.Add (lvw);
  280. form.Show ();
  281. ListViewItem itemA = new ListViewItem ();
  282. lvw.Items.Add (itemA);
  283. Assert.AreEqual (0, selectedIndexChanged, "#A1");
  284. itemA.Selected = true;
  285. Assert.AreEqual (1, selectedIndexChanged, "#A2");
  286. ListViewItem itemB = new ListViewItem ();
  287. lvw.Items.Add (itemB);
  288. Assert.AreEqual (1, selectedIndexChanged, "#B1");
  289. itemB.Selected = true;
  290. Assert.AreEqual (2, selectedIndexChanged, "#B2");
  291. }
  292. }
  293. }