fixed tests
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ColumnHeaderTest.cs
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:
8 //
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
11 //
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.
19 //
20 // Copyright (c) 2007 Novell, Inc. (http://www.novell.com)
21 //
22 // Author:
23 //      Carlos Alberto Cortez <calberto.cortez@gmail.com>
24 //
25
26 using System;
27 using System.Drawing;
28 using System.Windows.Forms;
29 using NUnit.Framework;
30
31 namespace MonoTests.System.Windows.Forms
32 {
33         [TestFixture]
34         public class ColumnHeaderTest
35         {
36                 [Test]
37                 public void DefaultValuesTest ()
38                 {
39                         ColumnHeader col = new ColumnHeader ();
40
41                         Assert.IsNull (col.ListView, "1");
42                         Assert.AreEqual (-1, col.Index, "2");
43                         Assert.AreEqual ("ColumnHeader", col.Text, "3");
44                         Assert.AreEqual (HorizontalAlignment.Left, col.TextAlign, "4");
45 #if NET_2_0
46                         Assert.AreEqual (-1, col.DisplayIndex, "5");
47                         Assert.AreEqual (-1, col.ImageIndex, "6");
48                         Assert.AreEqual (String.Empty, col.ImageKey, "7");
49                         Assert.IsNull (col.ImageList, "8");
50                         Assert.AreEqual (String.Empty, col.Name, "9");
51                         Assert.IsNull (col.Tag, "10");
52 #endif
53                 }
54
55 #if NET_2_0
56                 [Test]
57                 public void DisplayIndexTest ()
58                 {
59                         ColumnHeader col = new ColumnHeader ();
60                         col.DisplayIndex = -66;
61                         col.DisplayIndex = 66;
62
63                         ListView lv = new ListView ();
64                         lv.Columns.Add (col);
65
66                         try {
67                                 col.DisplayIndex = -1;
68                                 Assert.Fail ("1");
69                         } catch (ArgumentOutOfRangeException) {
70                         }
71
72                         try {
73                                 col.DisplayIndex = lv.Columns.Count;
74                                 Assert.Fail ("2");
75                         } catch (ArgumentOutOfRangeException) {
76                         }
77
78                         Assert.AreEqual (0, col.DisplayIndex, "3");
79                 }
80
81                 [Test] 
82                 public void DisplayIndex_ListView_Disposed ()
83                 {
84                         ListView lv = new ListView ();
85                         lv.View = View.Details;
86                         ColumnHeader colA = new ColumnHeader ();
87                         lv.Columns.Add (colA);
88                         ColumnHeader colB = new ColumnHeader ();
89                         lv.Columns.Add (colB);
90                         lv.Dispose ();
91                         colA.DisplayIndex = 1;
92                         Assert.AreEqual (1, colA.DisplayIndex, "#1");
93                         Assert.AreEqual (1, colB.DisplayIndex, "#2");
94                 }
95
96                 [Test]
97                 public void ImageIndex_Invalid ()
98                 {
99                         ColumnHeader col = new ColumnHeader ();
100                         col.ImageIndex = 2;
101                         try {
102                                 col.ImageIndex = -2;
103                                 Assert.Fail ("#1");
104                         } catch (ArgumentOutOfRangeException ex) {
105                                 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2");
106                                 Assert.IsNotNull (ex.Message, "#3");
107                                 Assert.IsNotNull (ex.ParamName, "#4");
108                                 Assert.AreEqual ("ImageIndex", ex.ParamName, "#5");
109                                 Assert.IsNull (ex.InnerException, "#6");
110                         }
111                         Assert.AreEqual (2, col.ImageIndex, "#7");
112                 }
113
114                 [Test]
115                 public void ImageKey ()
116                 {
117                         ColumnHeader col = new ColumnHeader ();
118                         Assert.AreEqual (string.Empty, col.ImageKey, "#1");
119                         col.ImageKey = "test";
120                         Assert.AreEqual ("test", col.ImageKey, "#2");
121                         col.ImageKey = null;
122                         Assert.AreEqual (string.Empty, col.ImageKey, "#3");
123                 }
124
125                 [Test]
126                 public void ImageKeyAndImageIndexInteraction ()
127                 {
128                         ColumnHeader col = new ColumnHeader ();
129                         col.ImageIndex = 1;
130                         Assert.AreEqual (1, col.ImageIndex, "#A1");
131                         Assert.AreEqual (string.Empty, col.ImageKey, "#A2");
132                         col.ImageKey = "test";
133                         Assert.AreEqual (-1, col.ImageIndex, "#B1");
134                         Assert.AreEqual ("test", col.ImageKey, "#B2");
135                         col.ImageIndex = 2;
136                         Assert.AreEqual (2, col.ImageIndex, "#C1");
137                         Assert.AreEqual (string.Empty, col.ImageKey, "#C2");
138                         col.ImageKey = null;
139                         Assert.AreEqual (-1, col.ImageIndex, "#D1");
140                         Assert.AreEqual (string.Empty, col.ImageKey, "#D2");
141                 }
142
143                 [Test]
144                 public void ImageList ()
145                 {
146                         ColumnHeader col = new ColumnHeader ();
147                         Assert.IsNull (col.ImageList, "#1");
148
149                         ListView lv = new ListView ();
150                         lv.View = View.Details;
151                         ImageList small = new ImageList ();
152                         lv.SmallImageList = small;
153                         ImageList large = new ImageList ();
154                         lv.LargeImageList = large;
155                         lv.Columns.Add (col);
156                         Assert.IsNotNull (col.ImageList, "#2");
157                         Assert.AreSame (small, col.ImageList, "#3");
158                 }
159
160                 [Test]
161                 public void ImageList_ListView_Disposed ()
162                 {
163                         ListView lv = new ListView ();
164                         lv.View = View.Details;
165                         ImageList small = new ImageList ();
166                         lv.SmallImageList = small;
167                         ImageList large = new ImageList ();
168                         lv.LargeImageList = large;
169                         ColumnHeader col = new ColumnHeader ();
170                         lv.Columns.Add (col);
171                         lv.Dispose ();
172                         Assert.IsNull (col.ImageList);
173                 }
174 #endif
175
176                 [Test]
177                 public void Index_ListView_Disposed ()
178                 {
179                         ListView lv = new ListView ();
180                         lv.View = View.Details;
181                         ColumnHeader colA = new ColumnHeader ();
182                         lv.Columns.Add (colA);
183                         ColumnHeader colB = new ColumnHeader ();
184                         lv.Columns.Add (colB);
185                         lv.Dispose ();
186                         Assert.AreEqual (-1, colA.Index, "#1");
187                         Assert.AreEqual (-1, colB.Index, "#2");
188                 }
189
190 #if NET_2_0
191                 [Test]
192                 public void Name ()
193                 {
194                         ColumnHeader col = new ColumnHeader ();
195                         Assert.AreEqual (string.Empty, col.Name, "#1");
196                         col.Name = "Address";
197                         Assert.AreEqual ("Address", col.Name, "#2");
198                         col.Name = null;
199                         Assert.AreEqual (string.Empty, col.Name, "#3");
200                 }
201
202                 [Test]
203                 public void Tag ()
204                 {
205                         ColumnHeader col = new ColumnHeader ();
206                         Assert.IsNull (col.Tag, "#1");
207                         col.Tag = "whatever";
208                         Assert.AreEqual ("whatever", col.Tag, "#2");
209                         col.Tag = null;
210                         Assert.IsNull (col.Tag, "#3");
211                 }
212 #endif
213
214                 [Test]
215                 public void Text_ListView_Disposed ()
216                 {
217                         ListView lv = new ListView ();
218                         lv.View = View.Details;
219                         ColumnHeader col = new ColumnHeader ();
220                         lv.Columns.Add (col);
221                         lv.Dispose ();
222                         col.Text = "whatever";
223                         Assert.AreEqual ("whatever", col.Text);
224                 }
225
226                 [Test]
227                 public void TextAlign_ListView_Disposed ()
228                 {
229                         ListView lv = new ListView ();
230                         lv.View = View.Details;
231                         ColumnHeader col = new ColumnHeader ();
232                         lv.Columns.Add (col);
233                         lv.Dispose ();
234                         col.TextAlign = HorizontalAlignment.Right;
235                         Assert.AreEqual (HorizontalAlignment.Right, col.TextAlign);
236                 }
237
238                 [Test]
239                 public void ToStringTest ()
240                 {
241                         ListView lv = new ListView ();
242                         lv.SmallImageList = new ImageList ();
243                         ColumnHeader col = new ColumnHeader ();
244 #if NET_2_0
245                         col.DisplayIndex = 3;
246                         col.ImageIndex = 2;
247                         col.Name = "address_col";
248                         col.Tag = DateTime.Now;
249 #endif
250                         col.Text = "Address";
251                         col.TextAlign = HorizontalAlignment.Right;
252                         col.Width = 30;
253                         lv.Columns.Add (col);
254                         Assert.AreEqual ("ColumnHeader: Text: Address", col.ToString ());
255                 }
256
257                 [Test]
258                 [Category ("NotWorking")]
259                 public void WidthDefault ()
260                 {
261                         ColumnHeader col = new ColumnHeader ();
262                         Assert.AreEqual (60, col.Width);
263                 }
264
265                 [Test]
266                 public void WidthTest ()
267                 {
268                         ColumnHeader col = new ColumnHeader ();
269                         col.Text = "Column text";
270
271                         ListView lv = new ListView ();
272                         lv.Items.Add ("Item text");
273                         lv.View = View.Details;
274                         lv.Columns.Add (col);
275                         lv.CreateControl ();
276
277                         col.Width = -1;
278                         Assert.IsTrue (col.Width > 0, "#1");
279
280                         col.Width = -2;
281                         Assert.IsTrue (col.Width > 0, "#2");
282                 }
283
284                 [Test]
285                 public void Width_ListView_Disposed ()
286                 {
287                         ListView lv = new ListView ();
288                         lv.View = View.Details;
289                         ColumnHeader col = new ColumnHeader ();
290                         lv.Columns.Add (col);
291                         lv.Dispose ();
292                         col.Width = 10;
293                         Assert.AreEqual (10, col.Width);
294                 }
295         }
296 }