1 // Permission is hereby granted, free of charge, to any person obtaining
2 // a copy of this software and associated documentation files (the
3 // "Software"), to deal in the Software without restriction, including
4 // without limitation the rights to use, copy, modify, merge, publish,
5 // distribute, sublicense, and/or sell copies of the Software, and to
6 // permit persons to whom the Software is furnished to do so, subject to
7 // the following conditions:
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 // Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
23 // Jordi Mas i Hernandez <jordi@ximian.com>
28 using System.Windows.Forms;
30 using System.Reflection;
31 using NUnit.Framework;
33 namespace MonoTests.System.Windows.Forms
36 public class ListViewItemTest
39 public void ListViewItemConstructors ()
41 Font fnt = new Font ("Arial", 12);
42 ListViewItem item1 = new ListViewItem ("Hello folks");
43 Assert.AreEqual ("Hello folks", item1.Text, "Constructor#1");
45 ListViewItem item2 = new ListViewItem (new string [] {"Element1", "Element2"},
46 -1, Color.Blue, Color.Red, fnt);
48 Assert.AreEqual (item2.ForeColor, Color.Blue, "Constructor#2");
49 Assert.AreEqual (item2.BackColor, Color.Red, "Constructor#3");
51 Assert.AreEqual (2, item2.SubItems.Count,"Constructor#4");
52 Assert.AreEqual (Color.Blue, item2.SubItems[0].ForeColor,"Constructor#5");
53 Assert.AreEqual (Color.Red, item2.SubItems[0].BackColor, "Constructor#6");
54 Assert.AreEqual (fnt, item2.SubItems[0].Font, "Constructor#7");
55 Assert.AreEqual ("Element1", item2.SubItems[0].Text, "Constructor#8");
56 Assert.AreEqual ("Element2", item2.SubItems[1].Text, "Constructor#12");
58 ListViewItem item3 = new ListViewItem ((string)null);
59 Assert.AreEqual (String.Empty, item3.Text, "Constructor#13");
61 ListViewItem item4 = new ListViewItem ((string)null, -99);
62 Assert.AreEqual (String.Empty, item4.Text, "Constructor#14");
63 Assert.AreEqual (-99, item4.ImageIndex, "Constructor#15");
65 ListViewItem item5 = new ListViewItem (new string [2]);
66 Assert.AreEqual (2, item5.SubItems.Count, "Constructor#16");
67 Assert.IsNotNull (item5.SubItems [0], "Constructor#17");
68 Assert.IsNotNull (item5.SubItems [1], "Constructor#18");
70 ListViewItem item6 = new ListViewItem (new string [2], -1, Color.Blue, Color.Red,
72 Assert.AreEqual (2, item6.SubItems.Count, "Constructor#19");
73 Assert.IsNotNull (item6.SubItems [0], "Constructor#20");
74 Assert.IsNotNull (item6.SubItems [1], "Constructor#21");
75 Assert.AreEqual (Color.Blue, item6.ForeColor, "Constructor#22");
76 Assert.AreEqual (Color.Blue, item6.SubItems [0].ForeColor, "Constructor#23");
77 Assert.AreEqual (Color.Red, item6.BackColor, "Constructor#24");
78 Assert.AreEqual (Color.Red, item6.SubItems [0].BackColor, "Constructor#25");
79 Assert.AreEqual (fnt, item6.Font, "Constructor#26");
80 Assert.AreEqual (fnt, item6.SubItems [0].Font, "Constructor#27");
84 public void Constructor2_Text_Null ()
86 ListViewItem item = new ListViewItem ((string) null);
87 Assert.AreEqual (-1, item.ImageIndex, "#1");
88 Assert.AreEqual (1, item.SubItems.Count, "#2");
89 Assert.IsNotNull (item.SubItems [0].Text, "#3");
90 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#4");
94 public void Constructor3_Items_Empty ()
96 ListViewItem item = new ListViewItem (new string [3]);
97 Assert.AreEqual (-1, item.ImageIndex, "#1");
98 Assert.AreEqual (3, item.SubItems.Count, "#2");
99 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#3");
100 Assert.AreEqual (string.Empty, item.SubItems [1].Text, "#4");
101 Assert.AreEqual (string.Empty, item.SubItems [2].Text, "#5");
105 public void Constructor3_Items_Null ()
107 ListViewItem item = new ListViewItem ((string []) null);
108 Assert.AreEqual (-1, item.ImageIndex, "#1");
109 Assert.AreEqual (1, item.SubItems.Count, "#2");
110 Assert.IsNotNull (item.SubItems [0].Text, "#3");
111 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#4");
115 [ExpectedException (typeof (NullReferenceException))]
116 public void Constructor4_SubItems_Empty ()
118 new ListViewItem (new ListViewItem.ListViewSubItem [2], 3);
122 [ExpectedException (typeof (NullReferenceException))]
123 public void Constructor4_SubItems_Null ()
125 new ListViewItem ((ListViewItem.ListViewSubItem []) null, 3);
129 public void Constructor5_Text_Null ()
131 ListViewItem item = new ListViewItem ((string) null, 2);
132 Assert.AreEqual (2, item.ImageIndex, "#1");
133 Assert.AreEqual (1, item.SubItems.Count, "#2");
134 Assert.IsNotNull (item.SubItems [0].Text, "#3");
135 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#4");
139 public void Constructor6_Items_Empty ()
141 ListViewItem item = new ListViewItem (new string [3], 5);
142 Assert.AreEqual (5, item.ImageIndex, "#1");
143 Assert.AreEqual (3, item.SubItems.Count, "#2");
144 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#3");
145 Assert.AreEqual (string.Empty, item.SubItems [1].Text, "#4");
146 Assert.AreEqual (string.Empty, item.SubItems [2].Text, "#5");
150 public void Constructor6_Items_Null ()
152 ListViewItem item = new ListViewItem ((string []) null, 3);
153 Assert.AreEqual (3, item.ImageIndex, "#1");
154 Assert.AreEqual (1, item.SubItems.Count, "#2");
155 Assert.IsNotNull (item.SubItems [0].Text, "#3");
156 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#4");
160 public void Constructor7_Items_Empty ()
162 Font font = new Font (FontFamily.GenericSansSerif, 6);
164 ListViewItem item = new ListViewItem (new string [2], 3, Color.Red,
166 Assert.AreEqual (Color.Blue, item.BackColor, "#1");
167 Assert.AreEqual (Color.Red, item.ForeColor, "#2");
168 Assert.AreSame (font, item.Font, "#3");
169 Assert.AreEqual (3, item.ImageIndex, "#4");
170 Assert.AreEqual (2, item.SubItems.Count, "#5");
171 Assert.IsNotNull (item.SubItems [0].Text, "#6");
172 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#7");
173 Assert.IsNotNull (item.SubItems [1].Text, "#8");
174 Assert.AreEqual (string.Empty, item.SubItems [1].Text, "#9");
178 public void Constructor7_Items_Null ()
180 Font font = new Font (FontFamily.GenericSansSerif, 6);
182 ListViewItem item = new ListViewItem ((string []) null, 3, Color.Red,
184 Assert.AreEqual (Color.Blue, item.BackColor, "#1");
185 Assert.AreEqual (Color.Red, item.ForeColor, "#2");
186 Assert.AreSame (font, item.Font, "#3");
187 Assert.AreEqual (3, item.ImageIndex, "#4");
188 Assert.AreEqual (1, item.SubItems.Count, "#5");
189 Assert.IsNotNull (item.SubItems [0].Text, "#6");
190 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#7");
195 public void Constructor9_Text_Null ()
197 ListViewItem item = new ListViewItem ((string) null, "key");
198 Assert.AreEqual (-1, item.ImageIndex, "#1");
199 Assert.IsNotNull (item.ImageKey, "#2");
200 Assert.AreEqual ("key", item.ImageKey, "#3");
201 Assert.AreEqual (1, item.SubItems.Count, "#4");
202 Assert.IsNotNull (item.SubItems [0].Text, "#5");
203 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#6");
207 public void Constructor9_ImageKey_Null ()
209 ListViewItem item = new ListViewItem ("name", (string) null);
210 Assert.AreEqual (-1, item.ImageIndex, "#1");
211 Assert.IsNotNull (item.ImageKey, "#2");
212 Assert.AreEqual (string.Empty, item.ImageKey, "#3");
213 Assert.AreEqual (1, item.SubItems.Count, "#4");
214 Assert.IsNotNull (item.SubItems [0].Text, "#5");
215 Assert.AreEqual ("name", item.SubItems [0].Text, "#6");
219 [ExpectedException (typeof (NullReferenceException))]
220 public void Constructor10_SubItems_Null ()
222 new ListViewItem ((ListViewItem.ListViewSubItem []) null, "key");
226 [ExpectedException (typeof (NullReferenceException))]
227 public void Constructor10_SubItems_Empty ()
229 new ListViewItem (new ListViewItem.ListViewSubItem [2], "key");
233 public void Constructor10_ImageKey_Null ()
235 ListViewItem.ListViewSubItem subItemA = new ListViewItem.ListViewSubItem ();
237 ListViewItem.ListViewSubItem subItemB = new ListViewItem.ListViewSubItem ();
240 ListViewItem item = new ListViewItem (new ListViewItem.ListViewSubItem [] {
241 subItemA, subItemB }, (string) null);
242 Assert.AreEqual (-1, item.ImageIndex, "#1");
243 Assert.IsNotNull (item.ImageKey, "#2");
244 Assert.AreEqual (string.Empty, item.ImageKey, "#3");
245 Assert.AreEqual (2, item.SubItems.Count, "#4");
246 Assert.IsNotNull (item.SubItems [0].Text, "#5");
247 Assert.AreEqual ("A", item.SubItems [0].Text, "#6");
248 Assert.IsNotNull (item.SubItems [1].Text, "#7");
249 Assert.AreEqual ("B", item.SubItems [1].Text, "#8");
254 public void ListViewItemDefaultValues ()
256 ListViewItem item = new ListViewItem ();
258 Assert.IsFalse (item.Focused, "DefaultValues#3");
259 Assert.IsFalse (item.Checked, "DefaultValues#4");
260 Assert.AreEqual (string.Empty, item.Text, "DefaultValues#5");
261 Assert.IsTrue (item.UseItemStyleForSubItems, "DefaultValues#6");
262 Assert.AreEqual (-1, item.ImageIndex, "DefaultValues#7");
264 Assert.AreEqual (String.Empty, item.Name, "DefaultValues#8");
265 Assert.AreEqual(String.Empty, item.ImageKey, "DefaultValues#9");
266 Assert.AreEqual (String.Empty, item.ToolTipText, "DefaultValues#10");
271 public void ListViewItemBackColor ()
273 ListViewItem item = new ListViewItem ();
275 ListView lv = new ListView ();
277 lv.BackColor = Color.Orange;
278 Assert.AreEqual (lv.BackColor, item.BackColor, "BackColor#1");
279 Assert.AreEqual (lv.BackColor, item.SubItems [0].BackColor, "BackColor#2");
281 item.BackColor = Color.Navy;
282 Assert.AreEqual (Color.Navy, item.BackColor, "BackColor#3");
283 Assert.AreEqual (Color.Navy, item.SubItems [0].BackColor, "BackColor#4");
285 item.SubItems [0].BackColor = Color.Green;
286 Assert.AreEqual (Color.Green, item.BackColor, "BackColor#5");
287 Assert.AreEqual (Color.Green, item.SubItems [0].BackColor, "BackColor#6");
291 public void ListViewItemForeColor ()
293 ListViewItem item = new ListViewItem ();
295 ListView lv = new ListView ();
297 lv.ForeColor = Color.Orange;
298 Assert.AreEqual (lv.ForeColor, item.ForeColor, "ForeColor#1");
299 Assert.AreEqual (lv.ForeColor, item.SubItems [0].ForeColor, "ForeColor#2");
301 item.ForeColor = Color.Navy;
302 Assert.AreEqual (Color.Navy, item.ForeColor, "ForeColor#3");
303 Assert.AreEqual (Color.Navy, item.SubItems [0].ForeColor, "ForeColor#4");
305 item.SubItems [0].ForeColor = Color.Green;
306 Assert.AreEqual (Color.Green, item.ForeColor, "ForeColor#5");
307 Assert.AreEqual (Color.Green, item.SubItems [0].ForeColor, "ForeColor#6");
311 public void ListViewItemFocused ()
313 ListView lv = new ListView ();
314 ListViewItem item1 = lv.Items.Add ("A");
315 ListViewItem item2 = lv.Items.Add ("B");
316 ListViewItem item3 = lv.Items.Add ("C");
319 Form form = new Form ();
323 item1.Focused = true;
324 Assert.IsTrue (item1.Focused, "#A1");
325 Assert.IsFalse (item2.Focused, "#A2");
326 Assert.IsFalse (item3.Focused, "#A3");
327 Assert.AreEqual (item1, lv.FocusedItem, "#A4");
329 item2.Focused = true;
330 Assert.IsFalse (item1.Focused, "#B1");
331 Assert.IsTrue (item2.Focused, "#B2");
332 Assert.IsFalse (item3.Focused, "#B3");
333 Assert.AreEqual (item2, lv.FocusedItem, "#B4");
335 item3.Focused = true;
336 Assert.IsFalse (item1.Focused, "#C1");
337 Assert.IsFalse (item2.Focused, "#C2");
338 Assert.IsTrue (item3.Focused, "#C3");
339 Assert.AreEqual (item3, lv.FocusedItem, "#C4");
341 item3.Focused = false;
342 Assert.IsFalse (item1.Focused, "#D1");
343 Assert.IsFalse (item2.Focused, "#D2");
344 Assert.IsFalse (item3.Focused, "#D3");
345 Assert.IsNull (lv.FocusedItem, "#D4");
350 [Test] // bug #330415 and #331643
351 [Category ("NotWorking")]
352 public void RemoveFocusedItem ()
354 ListView lv = new ListView ();
355 ListViewItem itemA = lv.Items.Add ("ItemA");
356 ListViewItem itemB = lv.Items.Add ("ItemB");
357 ListViewItem itemC = lv.Items.Add ("ItemC");
358 ListViewItem itemD = lv.Items.Add ("ItemD");
360 Form form = new Form ();
361 form.ShowInTaskbar = false;
362 form.Controls.Add (lv);
365 Assert.IsTrue (itemA.Focused, "#A1");
366 Assert.IsFalse (itemB.Focused, "#A2");
367 Assert.IsFalse (itemC.Focused, "#A3");
368 Assert.IsFalse (itemD.Focused, "#A4");
370 itemB.Focused = true;
372 Assert.IsFalse (itemA.Focused, "#B1");
373 Assert.IsTrue (itemB.Focused, "#B2");
374 Assert.IsFalse (itemC.Focused, "#B3");
375 Assert.IsFalse (itemD.Focused, "#B4");
377 lv.Items.Remove (itemB);
379 Assert.IsFalse (itemA.Focused, "#C1");
380 Assert.IsFalse (itemB.Focused, "#C2");
381 Assert.IsTrue (itemC.Focused, "#C3");
382 Assert.IsFalse (itemD.Focused, "#C4");
384 itemD.Focused = true;
386 Assert.IsFalse (itemA.Focused, "#D1");
387 Assert.IsFalse (itemB.Focused, "#D2");
388 Assert.IsFalse (itemC.Focused, "#D3");
389 Assert.IsTrue (itemD.Focused, "#D4");
391 lv.Items.Remove (itemD);
393 Assert.IsFalse (itemA.Focused, "#E1");
394 Assert.IsFalse (itemB.Focused, "#E2");
395 Assert.IsTrue (itemC.Focused, "#E3");
396 Assert.IsFalse (itemD.Focused, "#E4");
398 lv.Items.Remove (itemC);
400 Assert.IsTrue (itemA.Focused, "#F1");
401 Assert.IsFalse (itemB.Focused, "#F2");
402 Assert.IsFalse (itemC.Focused, "#F3");
403 Assert.IsFalse (itemD.Focused, "#F4");
405 lv.Items.Remove (itemA);
407 Assert.IsFalse (itemA.Focused, "#G1");
408 Assert.IsFalse (itemB.Focused, "#G2");
409 Assert.IsFalse (itemC.Focused, "#G3");
410 Assert.IsFalse (itemD.Focused, "#G4");
412 ListViewItem itemE = lv.Items.Add ("ItemE");
414 Assert.IsFalse (itemA.Focused, "#H1");
415 Assert.IsFalse (itemB.Focused, "#H2");
416 Assert.IsFalse (itemC.Focused, "#H3");
417 Assert.IsFalse (itemD.Focused, "#H4");
418 Assert.IsFalse (itemE.Focused, "#H5");
425 public void ListViewItemGroup ()
427 ListViewGroup lvg1 = new ListViewGroup ();
428 ListViewGroup lvg2 = new ListViewGroup ();
429 ListViewItem lvi = new ListViewItem ();
431 lvg1.Items.Add (lvi);
433 Assert.AreEqual (1, lvg1.Items.Count, "#A1");
434 Assert.AreEqual (lvg1, lvi.Group, "#A2");
437 Assert.AreEqual (0, lvg1.Items.Count, "#B1");
438 Assert.AreEqual (1, lvg2.Items.Count, "#B2");
439 Assert.AreEqual (lvg2, lvi.Group, "#B3");
444 public void ListViewItemUseItemStyleForSubItems ()
446 ListViewItem item = new ListViewItem ();
447 Assert.AreEqual (1, item.SubItems.Count);
449 // UseitemStyleForSubItems works at draw level
450 item.UseItemStyleForSubItems = true;
452 ListViewItem.ListViewSubItem subitem0 = item.SubItems [0];
453 Color subitem0_back_color = subitem0.BackColor = Color.Black;
454 Color subitem0_fore_color = subitem0.ForeColor = Color.White;
456 Assert.AreEqual (subitem0_back_color, item.SubItems [0].BackColor, "UseItemStyleForSubItems#1");
457 Assert.AreEqual (subitem0_fore_color, item.SubItems [0].ForeColor, "UseItemStyleForSubItems#2");
458 Assert.AreEqual (item.BackColor, item.SubItems [0].BackColor, "UseItemStyleForSubItems#3");
459 Assert.AreEqual (item.ForeColor, item.SubItems [0].ForeColor, "UseItemStyleForSubItems#4");
461 ListViewItem.ListViewSubItem subitem1 = item.SubItems.Add ("SubItem");
462 Color subitem1_back_color = subitem1.BackColor = Color.Blue;
463 Color subitem1_fore_color = subitem1.ForeColor = Color.Gray;
465 Assert.AreEqual (subitem1_back_color, subitem1.BackColor, "UseItemStyleForSubItem#5");
466 Assert.AreEqual (subitem1_fore_color, subitem1.ForeColor, "UseItemStyleForSubItem#6");
470 public void ListViewItemTestClone ()
472 ListViewItem item1 = new ListViewItem ("Hello");
473 item1.ForeColor = Color.Blue;
474 item1.BackColor = Color.Red;
475 item1.Font = new Font ("Arial", 14);
476 item1.SubItems.Add ("Element2");
478 item1.ToolTipText = item1.Text;
481 ListViewItem item2 = (ListViewItem) item1.Clone ();
482 Assert.AreEqual (Color.Blue, item2.ForeColor, "#1");
483 Assert.AreEqual (Color.Red, item2.BackColor, "#2");
484 Assert.AreEqual ("Hello", item2.Text, "#3");
485 Assert.AreEqual (item1.Font, item2.Font, "#4");
486 Assert.AreEqual (2, item2.SubItems.Count, "#5");
487 Assert.AreEqual ("Hello", item2.SubItems [0].Text, "#6");
488 Assert.AreEqual ("Element2", item2.SubItems[1].Text, "#7");
490 Assert.AreEqual (item1.ToolTipText, item2.ToolTipText, "#8");
496 public void ListViewItemTestImageIndex()
498 ListViewItem item1 = new ListViewItem();
500 item1.ImageKey = "Key1";
501 item1.ImageIndex = 0;
502 Assert.AreEqual(String.Empty, item1.ImageKey, "ImageIndex#1");
504 item1.ImageIndex = 0;
505 item1.ImageKey = "Key1";
506 Assert.AreEqual (-1, item1.ImageIndex, "ImageIndex#2");
508 item1.ImageKey = "Key1";
509 item1.ImageIndex = -1;
510 Assert.AreEqual (String.Empty, item1.ImageKey, "ImageIndex#3");
512 item1.ImageIndex = 0;
513 item1.ImageKey = String.Empty;
514 Assert.AreEqual (-1, item1.ImageIndex, "ImageIndex#4");
518 public void ListViewItemToolTipText ()
520 ListViewItem item1 = new ListViewItem();
521 item1.ToolTipText = null;
522 Assert.AreEqual (String.Empty, item1.ToolTipText, "ToolTipText#1");
528 public class ListViewSubItemTest
531 public void ListViewSubItemConstructorTest ()
533 ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem (null, null);
534 Assert.AreEqual (String.Empty, subItem.Text, "#A1");
536 ListViewItem.ListViewSubItem subItem2 = new ListViewItem.ListViewSubItem (null, "SubItem2");
537 Assert.AreEqual ("SubItem2", subItem2.Text, "#A2");
539 Font fnt = new Font ("Arial", 12);
540 ListViewItem.ListViewSubItem subItem3 = new ListViewItem.ListViewSubItem (null, "SubItem3",
541 Color.Blue, Color.Green, fnt);
542 Assert.AreEqual ("SubItem3", subItem3.Text, "#A3");
543 Assert.AreEqual (Color.Green, subItem3.BackColor, "#A4");
544 Assert.AreEqual (Color.Blue, subItem3.ForeColor, "#A5");
545 Assert.AreEqual (fnt, subItem3.Font, "#A6");
549 public void ListViewSubItemPropertiesTest ()
551 ListViewItem.ListViewSubItem subItem1 = new ListViewItem.ListViewSubItem ();
552 Assert.AreEqual (string.Empty, subItem1.Text, "#A1");
554 subItem1.Text = null;
555 Assert.AreEqual (string.Empty, subItem1.Text, "#B1");
556 subItem1.Text = "test";
557 Assert.AreEqual ("test", subItem1.Text, "#B2");
562 public class ListViewSubItemCollectionTest
565 public void AddRange1 ()
567 ListViewItem item = new ListViewItem ();
568 ListViewItem.ListViewSubItem subItemA = item.SubItems.Add ("A");
570 Assert.AreEqual (2, item.SubItems.Count, "#A1");
571 Assert.IsNotNull (item.SubItems [0], "#A2");
572 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#A3");
574 ListViewItem.ListViewSubItem subItemB = new ListViewItem.ListViewSubItem ();
576 ListViewItem.ListViewSubItem subItemC = new ListViewItem.ListViewSubItem ();
579 item.SubItems.AddRange (new ListViewItem.ListViewSubItem [] {
580 subItemB, null, subItemC });
581 Assert.AreEqual (4, item.SubItems.Count, "#B1");
582 Assert.IsNotNull (item.SubItems [0], "#B2");
583 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#B3");
584 Assert.IsNotNull (item.SubItems [1], "#B3");
585 Assert.AreSame (subItemA, item.SubItems [1], "#B4");
586 Assert.IsNotNull (item.SubItems [2], "#B5");
587 Assert.AreSame (subItemB, item.SubItems [2], "#B6");
588 Assert.IsNotNull (item.SubItems [3], "#B7");
589 Assert.AreSame (subItemC, item.SubItems [3], "#B8");
593 public void AddRange1_Null ()
595 ListViewItem item = new ListViewItem ();
597 item.SubItems.AddRange ((ListViewItem.ListViewSubItem []) null);
599 } catch (ArgumentNullException ex) {
600 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
601 Assert.IsNotNull (ex.Message, "#3");
602 Assert.IsNotNull (ex.ParamName, "#4");
603 Assert.AreEqual ("items", ex.ParamName, "#5");
604 Assert.IsNull (ex.InnerException, "#6");
609 public void AddRange2 ()
611 string subItemAText = "A";
612 string subItemBText = "B";
613 string subItemCText = "B";
615 ListViewItem item = new ListViewItem ();
616 item.SubItems.Add (subItemAText);
618 Assert.AreEqual (2, item.SubItems.Count, "#A1");
619 Assert.IsNotNull (item.SubItems [0], "#A2");
620 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#A3");
621 Assert.IsNotNull (item.SubItems [1], "#A4");
622 Assert.AreEqual (subItemAText, item.SubItems [1].Text, "#A5");
624 item.SubItems.AddRange (new string [] { subItemBText, null, subItemCText });
625 Assert.AreEqual (4, item.SubItems.Count, "#B1");
626 Assert.IsNotNull (item.SubItems [0], "#B2");
627 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#B3");
628 Assert.IsNotNull (item.SubItems [1], "#B4");
629 Assert.AreSame (subItemAText, item.SubItems [1].Text, "#B5");
630 Assert.IsNotNull (item.SubItems [2], "#B6");
631 Assert.AreSame (subItemBText, item.SubItems [2].Text, "#B7");
632 Assert.IsNotNull (item.SubItems [3], "#B8");
633 Assert.AreSame (subItemCText, item.SubItems [3].Text, "#B9");
637 public void AddRange2_Null ()
639 ListViewItem item = new ListViewItem ();
641 item.SubItems.AddRange ((string []) null);
643 } catch (ArgumentNullException ex) {
644 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
645 Assert.IsNotNull (ex.Message, "#3");
646 Assert.IsNotNull (ex.ParamName, "#4");
647 Assert.AreEqual ("items", ex.ParamName, "#5");
648 Assert.IsNull (ex.InnerException, "#6");
653 public void AddRange3 ()
655 string subItemAText = "A";
656 string subItemBText = "B";
657 string subItemCText = "B";
658 Font font = new Font ("Arial", 14);
660 ListViewItem item = new ListViewItem ();
661 item.SubItems.Add (subItemAText);
663 Assert.AreEqual (2, item.SubItems.Count, "#A1");
664 Assert.IsNotNull (item.SubItems [0], "#A2");
665 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#A3");
666 Assert.IsNotNull (item.SubItems [1], "#A4");
667 Assert.AreEqual (subItemAText, item.SubItems [1].Text, "#A5");
669 item.SubItems.AddRange (new string [] { subItemBText, null, subItemCText },
670 Color.Blue, Color.Red, font);
671 Assert.AreEqual (4, item.SubItems.Count, "#B1");
672 Assert.IsNotNull (item.SubItems [0], "#B2");
673 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#B3");
674 Assert.IsNotNull (item.SubItems [1], "#C1");
675 Assert.AreSame (subItemAText, item.SubItems [1].Text, "#C2");
676 Assert.IsNotNull (item.SubItems [2], "#D1");
677 Assert.AreSame (subItemBText, item.SubItems [2].Text, "#D2");
678 Assert.AreEqual (Color.Blue, item.SubItems [2].ForeColor, "#D3");
679 Assert.AreEqual (Color.Red, item.SubItems [2].BackColor, "#D4");
680 Assert.AreSame (font, item.SubItems [2].Font, "#D5");
681 Assert.IsNotNull (item.SubItems [3], "#E1");
682 Assert.AreSame (subItemCText, item.SubItems [3].Text, "#E2");
683 Assert.AreEqual (Color.Blue, item.SubItems [3].ForeColor, "#E3");
684 Assert.AreEqual (Color.Red, item.SubItems [3].BackColor, "#E4");
685 Assert.AreSame (font, item.SubItems [3].Font, "#E6");
689 public void AddRange3_Items_Null ()
691 ListViewItem item = new ListViewItem ();
693 item.SubItems.AddRange ((string []) null, Color.Blue, Color.Red,
694 new Font ("Arial", 14));
696 } catch (ArgumentNullException ex) {
697 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
698 Assert.IsNotNull (ex.Message, "#3");
699 Assert.IsNotNull (ex.ParamName, "#4");
700 Assert.AreEqual ("items", ex.ParamName, "#5");
701 Assert.IsNull (ex.InnerException, "#6");
706 public void AddRange4 ()
708 ListViewItem item = new ListViewItem ();
709 Assert.AreEqual (1, item.SubItems.Count, "#1");
711 item.SubItems.AddRange (new string [3]);
712 Assert.AreEqual (1, item.SubItems.Count, "#2");
714 item.SubItems.AddRange (new ListViewItem.ListViewSubItem [3]);
715 Assert.AreEqual (1, item.SubItems.Count, "#3");
721 ListViewItem item = new ListViewItem ();
722 item.SubItems.AddRange (new string [] { "A", "B", "C" });
723 item.SubItems.Clear ();
724 Assert.AreEqual (1, item.SubItems.Count, "#1");
725 Assert.IsNotNull (item.SubItems [0].Text, "#2");
726 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#3");
730 public void RemoveAt ()
732 ListViewItem item = new ListViewItem ();
733 item.SubItems.AddRange (new string [] { "A", "B" });
734 Assert.AreEqual (3, item.SubItems.Count, "#A1");
735 Assert.IsNotNull (item.SubItems [0].Text, "#A2");
736 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#A3");
737 Assert.IsNotNull (item.SubItems [1].Text, "#A4");
738 Assert.AreEqual ("A", item.SubItems [1].Text, "#A5");
739 Assert.IsNotNull (item.SubItems [2].Text, "#A6");
740 Assert.AreEqual ("B", item.SubItems [2].Text, "#A7");
742 item.SubItems.RemoveAt (1);
744 Assert.AreEqual (2, item.SubItems.Count, "#B1");
745 Assert.IsNotNull (item.SubItems [0].Text, "#B2");
746 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#B3");
747 Assert.IsNotNull (item.SubItems [1].Text, "#B4");
748 Assert.AreEqual ("B", item.SubItems [1].Text, "#B5");
750 item.SubItems.RemoveAt (0);
752 Assert.AreEqual (1, item.SubItems.Count, "#C1");
753 Assert.IsNotNull (item.SubItems [0].Text, "#C2");
754 Assert.AreEqual ("B", item.SubItems [0].Text, "#C3");
756 item.SubItems.RemoveAt (0);
758 Assert.AreEqual (1, item.SubItems.Count, "#D1");
759 Assert.IsNotNull (item.SubItems [0].Text, "#D2");
760 Assert.AreEqual (string.Empty, item.SubItems [0].Text, "#D3");