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