2010-04-06 Jb Evain <jbevain@novell.com>
[mcs.git] / class / Managed.Windows.Forms / Test / System.Windows.Forms / ListViewEventTest.cs
blob4428ace036f6bf99eed4c29a542284c1465cd713
1 //
2 // ListViewEventTest.cs: Test cases for ListView events.
3 //
4 // Author:
5 // Ritvik Mayank (mritvik@novell.com)
6 //
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
8 //
10 using System;
11 using NUnit.Framework;
12 using System.Windows.Forms;
13 using System.Drawing;
14 using System.Collections;
16 namespace MonoTests.System.Windows.Forms
18 [TestFixture]
19 [Ignore ("Needs Manual Intervention")]
20 public class LabelEditEvent : TestHelper
22 static bool eventhandled = false;
23 public void LabelEdit_EventHandler (object sender,LabelEditEventArgs e)
25 eventhandled = true;
28 [Test]
29 public void AfterLabelEditTest ()
31 Form myform = new Form ();
32 myform.ShowInTaskbar = false;
33 ListView mylistview = new ListView ();
34 mylistview.LabelEdit = true ;
35 mylistview.AfterLabelEdit += new LabelEditEventHandler (LabelEdit_EventHandler);
36 mylistview.View = View.Details;
37 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
38 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
39 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
40 ListViewItem item1 = new ListViewItem ("A", -1);
41 mylistview.Items.Add (item1);
42 myform.Controls.Add (mylistview);
43 myform.ShowDialog ();
44 Assert.AreEqual (true, eventhandled, "#A1");
46 myform.Dispose ();
49 [Test]
50 public void BeforeLabelEditTest ()
52 Form myform = new Form ();
53 myform.ShowInTaskbar = false;
54 ListView mylistview = new ListView ();
55 mylistview.LabelEdit = true ;
56 mylistview.BeforeLabelEdit += new LabelEditEventHandler (LabelEdit_EventHandler);
57 eventhandled = false;
58 mylistview.View = View.Details;
59 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
60 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
61 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
62 ListViewItem item1 = new ListViewItem ("A", -1);
63 mylistview.Items.Add (item1);
64 myform.Controls.Add (mylistview);
65 myform.ShowDialog ();
66 Assert.AreEqual (true, eventhandled, "#A2");
67 myform.Dispose ();
71 [TestFixture]
72 [Ignore ("Needs Manual Intervention")]
73 public class ColumnClickEvent : TestHelper
75 static bool eventhandled = false;
76 public void ColumnClickEventHandler (object sender, ColumnClickEventArgs e)
78 eventhandled = true;
81 [Test]
82 public void ColumnClickTest ()
84 Form myform = new Form ();
85 myform.ShowInTaskbar = false;
86 ListView mylistview = new ListView ();
88 mylistview.LabelEdit = true ;
89 mylistview.ColumnClick += new ColumnClickEventHandler (ColumnClickEventHandler);
90 mylistview.View = View.Details;
91 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
92 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
93 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
94 ListViewItem item1 = new ListViewItem ("A", -1);
95 mylistview.Items.Add (item1);
96 myform.Controls.Add (mylistview);
97 myform.ShowDialog ();
98 mylistview.Sort ();
99 Assert.AreEqual (true, eventhandled, "#A3");
100 myform.Dispose ();
104 [TestFixture]
105 [Ignore ("Needs Manual Intervention")]
106 public class MyEvent : TestHelper
108 static bool eventhandled = false;
109 public void New_EventHandler (object sender, EventArgs e)
111 eventhandled = true;
114 [Test]
115 public void ItemActivateTest ()
117 Form myform = new Form ();
118 myform.ShowInTaskbar = false;
119 ListView mylistview = new ListView ();
120 mylistview.Activation = ItemActivation.OneClick;
121 mylistview.LabelEdit = true ;
122 mylistview.ItemActivate += new EventHandler (New_EventHandler);
123 mylistview.View = View.Details;
124 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
125 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
126 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
127 ListViewItem item1 = new ListViewItem ("A", -1);
128 mylistview.Items.Add (item1);
129 myform.Controls.Add (mylistview);
130 myform.ShowDialog ();
131 Assert.AreEqual (true, eventhandled, "#A4");
132 myform.Dispose ();
135 [Test]
136 public void SelectedIndexChangedTest ()
138 Form myform = new Form ();
139 myform.ShowInTaskbar = false;
140 ListView mylistview = new ListView ();
141 mylistview.LabelEdit = true ;
142 mylistview.SelectedIndexChanged += new EventHandler (New_EventHandler);
143 eventhandled = false;
144 mylistview.View = View.Details;
145 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
146 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
147 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
148 ListViewItem item1 = new ListViewItem ("A", -1);
149 mylistview.Items.Add (item1);
150 myform.Controls.Add (mylistview);
151 myform.ShowDialog ();
152 Assert.AreEqual (true, eventhandled, "#A5");
153 myform.Dispose ();
157 [TestFixture]
158 [Ignore ("Needs Manual Intervention")]
159 public class ItemCheckEvent : TestHelper
161 static bool eventhandled = false;
162 public void ItemCheckEventHandler (object sender, ItemCheckEventArgs e)
165 eventhandled = true;
168 [Test]
169 public void ItemCheckTest ()
171 Form myform = new Form ();
172 myform.ShowInTaskbar = false;
173 ListView mylistview = new ListView ();
174 mylistview.CheckBoxes = true;
175 mylistview.LabelEdit = true ;
176 mylistview.ItemCheck += new ItemCheckEventHandler (ItemCheckEventHandler);
177 mylistview.View = View.Details;
178 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
179 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
180 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
181 ListViewItem item1 = new ListViewItem ("A", -1);
182 mylistview.Items.Add (item1);
183 myform.Controls.Add (mylistview);
184 myform.ShowDialog ();
185 mylistview.Visible = true;
186 Assert.AreEqual (true, eventhandled, "#A6");
187 myform.Dispose ();
191 [TestFixture]
192 [Ignore ("Needs Manual Intervention")]
193 public class ItemDragEvent : TestHelper
195 static bool eventhandled = false;
196 public void ItemDragEventHandler (object sender, ItemDragEventArgs e)
199 eventhandled = true;
202 [Test]
203 public void ItemDragTest ()
205 Form myform = new Form ();
206 myform.ShowInTaskbar = false;
207 ListView mylistview = new ListView ();
208 mylistview.ItemDrag += new ItemDragEventHandler (ItemDragEventHandler);
209 mylistview.View = View.Details;
210 mylistview.SetBounds (10, 10, 200, 200, BoundsSpecified.All);
211 mylistview.Columns.Add ("A", -2, HorizontalAlignment.Center);
212 mylistview.Columns.Add ("B", -2, HorizontalAlignment.Center);
213 ListViewItem item1 = new ListViewItem ("A", -1);
214 mylistview.Items.Add (item1);
215 myform.Controls.Add (mylistview);
216 myform.ShowDialog ();
217 mylistview.Visible = true;
218 mylistview.DoDragDrop (mylistview.SelectedItems, DragDropEffects.Link);
219 Assert.AreEqual (true, eventhandled, "#A7");
220 myform.Dispose ();
224 [TestFixture]
225 public class ListViewSelectedIndexChangedEvent : TestHelper
227 int selectedIndexChanged;
229 public void ListView_SelectedIndexChanged (object sender, EventArgs e)
231 selectedIndexChanged++;
234 [SetUp]
235 protected override void SetUp () {
236 selectedIndexChanged = 0;
237 base.SetUp ();
240 [Test] // bug #79849
241 public void SelectBeforeCreationOfHandle ()
243 Form form = new Form ();
244 form.ShowInTaskbar = false;
246 ListView lvw = new ListView ();
247 lvw.SelectedIndexChanged += new EventHandler (ListView_SelectedIndexChanged);
248 lvw.View = View.Details;
249 ListViewItem itemA = new ListViewItem ("A");
250 lvw.Items.Add (itemA);
251 Assert.AreEqual (0, selectedIndexChanged, "#A1");
252 itemA.Selected = true;
253 Assert.AreEqual (0, selectedIndexChanged, "A2");
255 ListViewItem itemB = new ListViewItem ("B");
256 lvw.Items.Add (itemB);
257 Assert.AreEqual (0, selectedIndexChanged, "#B1");
258 itemB.Selected = true;
259 Assert.AreEqual (0, selectedIndexChanged, "B2");
261 form.Controls.Add (lvw);
262 Assert.AreEqual (0, selectedIndexChanged, "#C1");
263 form.Show ();
264 Assert.AreEqual (2, selectedIndexChanged, "#C2");
265 form.Dispose ();
268 [Test]
269 public void RemoveSelectedItem ()
271 Form form = new Form ();
272 form.ShowInTaskbar = false;
274 ListView lvw = new ListView ();
275 lvw.SelectedIndexChanged += new EventHandler (ListView_SelectedIndexChanged);
276 lvw.View = View.Details;
277 ListViewItem itemA = new ListViewItem ("A");
278 lvw.Items.Add (itemA);
279 Assert.AreEqual (0, selectedIndexChanged, "#A1");
280 itemA.Selected = true;
281 Assert.AreEqual (0, selectedIndexChanged, "A2");
283 ListViewItem itemB = new ListViewItem ("B");
284 lvw.Items.Add (itemB);
285 Assert.AreEqual (0, selectedIndexChanged, "#B1");
286 itemB.Selected = true;
287 Assert.AreEqual (0, selectedIndexChanged, "B2");
288 lvw.Items.Remove (itemB);
289 Assert.IsTrue (itemB.Selected, "#B3");
291 form.Controls.Add (lvw);
292 Assert.AreEqual (0, selectedIndexChanged, "#C1");
293 form.Show ();
294 Assert.AreEqual (1, selectedIndexChanged, "#C2");
295 lvw.Items.Remove (itemA);
296 Assert.AreEqual (2, selectedIndexChanged, "#C3");
297 Assert.IsTrue (itemA.Selected, "#C4");
299 form.Close ();
302 [Test]
303 public void AddAndSelectItem ()
305 Form form = new Form ();
306 form.ShowInTaskbar = false;
308 ListView lvw = new ListView ();
309 lvw.SelectedIndexChanged += new EventHandler (ListView_SelectedIndexChanged);
310 lvw.View = View.Details;
311 form.Controls.Add (lvw);
312 form.Show ();
314 ListViewItem itemA = new ListViewItem ();
315 lvw.Items.Add (itemA);
316 Assert.AreEqual (0, selectedIndexChanged, "#A1");
317 itemA.Selected = true;
318 Assert.AreEqual (1, selectedIndexChanged, "#A2");
320 ListViewItem itemB = new ListViewItem ();
321 lvw.Items.Add (itemB);
322 Assert.AreEqual (1, selectedIndexChanged, "#B1");
323 itemB.Selected = true;
324 Assert.AreEqual (2, selectedIndexChanged, "#B2");
326 form.Close ();