svn path=/branches/mono-1-1-9/mcs/; revision=51206
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ListViewTest.cs
1 //
2 // ListViewTest.cs: Test cases for ListView.
3 //
4 // Author:
5 //   Ritvik Mayank (mritvik@novell.com)
6 //
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
8 //
9
10 using System;
11 using System.Windows.Forms;
12 using System.Drawing;
13 using System.Reflection;
14 using NUnit.Framework;
15
16 namespace MonoTests.System.Windows.Forms
17 {
18         [TestFixture]
19         public class ListViewTest
20         {
21                 [Test]
22                 public void ListViewPropertyTest ()
23                 {
24                         ListView mylistview = new ListView ();
25                         Assert.AreEqual (ItemActivation.Standard, mylistview.Activation, "#1");
26                         Assert.AreEqual (ListViewAlignment.Top, mylistview.Alignment, "#2");
27                         Assert.AreEqual (false, mylistview.AllowColumnReorder, "#3");
28                         Assert.AreEqual (true, mylistview.AutoArrange, "#4");
29                         Assert.AreEqual (BorderStyle.Fixed3D , mylistview.BorderStyle, "#5");
30                         Assert.AreEqual (false, mylistview.CheckBoxes, "#6");
31                         Assert.AreEqual (0, mylistview.CheckedIndices.Count, "#7");
32                         Assert.AreEqual (0, mylistview.CheckedItems.Count, "#8");
33                         Assert.AreEqual (0, mylistview.Columns.Count, "#9");
34                         Assert.AreEqual (null, mylistview.FocusedItem, "#10");
35                         Assert.AreEqual (false, mylistview.FullRowSelect, "#11");
36                         Assert.AreEqual (false, mylistview.GridLines, "#12");
37                         Assert.AreEqual (ColumnHeaderStyle.Clickable, mylistview.HeaderStyle, "#13");
38                         Assert.AreEqual (true, mylistview.HideSelection, "#14");
39                         Assert.AreEqual (false, mylistview.HoverSelection, "#15");
40                         ListViewItem item1 = new ListViewItem ("A", -1);
41                         mylistview.Items.Add (item1);
42                         Assert.AreEqual (1, mylistview.Items.Count, "#16");
43                         Assert.AreEqual (false, mylistview.LabelEdit, "#17");
44                         Assert.AreEqual (true, mylistview.LabelWrap, "#18");
45                         Assert.AreEqual (null, mylistview.LargeImageList, "#19");
46                         Assert.AreEqual (null, mylistview.ListViewItemSorter, "#20");
47                         Assert.AreEqual (true, mylistview.MultiSelect, "#21");
48                         Assert.AreEqual (true, mylistview.Scrollable, "#22");
49                         Assert.AreEqual (0, mylistview.SelectedIndices.Count, "#23");
50                         Assert.AreEqual (0, mylistview.SelectedItems.Count, "#24");
51                         Assert.AreEqual (null, mylistview.SmallImageList, "#25");
52                         Assert.AreEqual (null, mylistview.LargeImageList, "#26");
53                         Assert.AreEqual (SortOrder.None, mylistview.Sorting, "#27");
54                         Assert.AreEqual (null, mylistview.StateImageList, "#28");
55                         Assert.AreEqual (View.LargeIcon, mylistview.View, "#29");
56                         mylistview.View = View.List;
57                         Assert.AreEqual (false, mylistview.TopItem.Checked, "#30");
58                 }
59
60                 [Test]
61                 public void ArrangeIconsTest ()
62                 {
63                         Form myform = new Form ();
64                         ListView mylistview = new ListView ();
65                         myform.Controls.Add (mylistview);
66                         mylistview.Items.Add ("Item 1");
67                         mylistview.Items.Add ("Item 2");
68                         mylistview.View = View.LargeIcon;
69                         mylistview.ArrangeIcons ();
70                 }
71
72                 [Test]
73                 public void BeginEndUpdateTest ()
74                 {
75                         Form myform = new Form ();
76                         myform.Visible = true;
77                         ListView mylistview = new ListView();
78                         mylistview.Items.Add ("A");
79                         mylistview.Visible = true;
80                         myform.Controls.Add (mylistview);
81                         mylistview.BeginUpdate ();
82                         for(int x = 1 ; x < 5000 ; x++){
83                                 mylistview.Items.Add ("Item " + x.ToString());   
84                         }
85                         mylistview.EndUpdate ();
86                 }       
87
88                 [Test]
89                 public void ClearTest ()
90                 {
91                         Form myform = new Form ();
92                         myform.Visible = true;
93                         ListView mylistview = new ListView ();
94                         mylistview.Items.Add ("A");
95                         mylistview.Columns.Add ("Item Column", -2, HorizontalAlignment.Left);
96                         mylistview.Visible = true;
97                         myform.Controls.Add (mylistview);
98                         Assert.AreEqual (1, mylistview.Columns.Count, "#31");
99                         Assert.AreEqual (1, mylistview.Items.Count, "#32");
100                         mylistview.Clear ();
101                         Assert.AreEqual (0, mylistview.Columns.Count, "#33");
102                         Assert.AreEqual (0, mylistview.Items.Count, "#34");
103                 }
104
105                 [Test]
106                 public void EnsureVisibleTest ()
107                 {
108                         Form myform = new Form ();
109                         myform.Visible = true;
110                         ListView mylistview = new ListView ();
111                         mylistview.Items.Add ("A");
112                         myform.Controls.Add (mylistview);
113                         mylistview.BeginUpdate ();
114                         for(int x = 1 ; x < 5000 ; x++) {
115                                 mylistview.Items.Add ("Item " + x.ToString());   
116                         }
117                         mylistview.EndUpdate ();
118                         mylistview.EnsureVisible (4999);
119                 }
120
121                 [Test]
122                 public void GetItemRectTest ()
123                 {
124                         ListView mylistview = new ListView ();
125                         mylistview.Items.Add ("Item 1");
126                         mylistview.Items.Add ("Item 2");
127                         Rectangle r = mylistview.GetItemRect (1);
128                         Assert.AreEqual (0, r.Top, "#35a");
129                         Assert.IsTrue (r.Bottom > 0, "#35b");
130                         Assert.IsTrue (r.Right > 0, "#35c");
131                         Assert.IsTrue (r.Left > 0, "#35d");
132                         Assert.IsTrue (r.Height > 0, "#35e");
133                         Assert.IsTrue (r.Width > 0, "#35f");
134                 }
135         }
136 }