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) 2007 Novell, Inc. (http://www.novell.com)
23 // Carlos Alberto Cortez <calberto.cortez@gmail.com>
28 using System.Windows.Forms;
29 using NUnit.Framework;
31 namespace MonoTests.System.Windows.Forms
34 public class ColumnHeaderTest
45 public void DefaultValuesTest ()
47 ColumnHeader col = new ColumnHeader ();
49 Assert.IsNull (col.ListView, "1");
50 Assert.AreEqual (-1, col.Index, "2");
51 Assert.AreEqual ("ColumnHeader", col.Text, "3");
52 Assert.AreEqual (HorizontalAlignment.Left, col.TextAlign, "4");
54 Assert.AreEqual (-1, col.DisplayIndex, "5");
55 Assert.AreEqual (-1, col.ImageIndex, "6");
56 Assert.AreEqual (String.Empty, col.ImageKey, "7");
57 Assert.IsNull (col.ImageList, "8");
58 Assert.AreEqual (String.Empty, col.Name, "9");
59 Assert.IsNull (col.Tag, "10");
65 public void DisplayIndex_ListView_Created ()
67 ColumnHeader colA = new ColumnHeader ();
68 ColumnHeader colB = new ColumnHeader ();
69 ColumnHeader colC = new ColumnHeader ();
70 ColumnHeader colD = new ColumnHeader ();
71 colA.DisplayIndex = 2;
72 colD.DisplayIndex = 0;
73 colB.DisplayIndex = 3;
74 colC.DisplayIndex = 1;
76 Form form = new Form ();
77 form.ShowInTaskbar = false;
78 ListView lv = new ListView ();
79 lv.ColumnReordered += new ColumnReorderedEventHandler (ColumnReordered);
80 lv.View = View.Details;
81 lv.Columns.Add (colA);
82 lv.Columns.Add (colB);
83 lv.Columns.Add (colC);
84 form.Controls.Add (lv);
87 Assert.AreEqual (0, colA.DisplayIndex, "#A1");
88 Assert.AreEqual (1, colB.DisplayIndex, "#A2");
89 Assert.AreEqual (2, colC.DisplayIndex, "#A3");
90 Assert.AreEqual (0, colD.DisplayIndex, "#A4");
91 Assert.AreEqual (0, columnReordered, "#A5");
93 colC.DisplayIndex = 0;
94 Assert.AreEqual (1, colA.DisplayIndex, "#B1");
95 Assert.AreEqual (2, colB.DisplayIndex, "#B2");
96 Assert.AreEqual (0, colC.DisplayIndex, "#B3");
97 Assert.AreEqual (0, colD.DisplayIndex, "#B4");
98 Assert.AreEqual (0, columnReordered, "#B5");
100 colC.DisplayIndex = 2;
101 Assert.AreEqual (0, colA.DisplayIndex, "#C1");
102 Assert.AreEqual (1, colB.DisplayIndex, "#C2");
103 Assert.AreEqual (2, colC.DisplayIndex, "#C3");
104 Assert.AreEqual (0, colD.DisplayIndex, "#C4");
105 Assert.AreEqual (0, columnReordered, "#C5");
107 colB.DisplayIndex = 2;
108 Assert.AreEqual (0, colA.DisplayIndex, "#D1");
109 Assert.AreEqual (2, colB.DisplayIndex, "#D2");
110 Assert.AreEqual (1, colC.DisplayIndex, "#D3");
111 Assert.AreEqual (0, colD.DisplayIndex, "#D4");
112 Assert.AreEqual (0, columnReordered, "#D5");
114 colD.DisplayIndex = 1;
115 lv.Columns.Add (colD);
117 Assert.AreEqual (0, colA.DisplayIndex, "#E1");
118 Assert.AreEqual (2, colB.DisplayIndex, "#E2");
119 Assert.AreEqual (1, colC.DisplayIndex, "#E3");
120 Assert.AreEqual (3, colD.DisplayIndex, "#E4");
121 Assert.AreEqual (0, columnReordered, "#E5");
127 public void DisplayIndex_ListView_Disposed ()
129 ListView lv = new ListView ();
130 lv.View = View.Details;
131 ColumnHeader colA = new ColumnHeader ();
132 lv.Columns.Add (colA);
133 ColumnHeader colB = new ColumnHeader ();
134 lv.Columns.Add (colB);
135 ColumnHeader colC = new ColumnHeader ();
136 lv.Columns.Add (colC);
137 Assert.AreEqual (0, colA.DisplayIndex, "#A1");
138 Assert.AreEqual (1, colB.DisplayIndex, "#A2");
139 Assert.AreEqual (2, colC.DisplayIndex, "#A3");
140 colA.DisplayIndex = 2;
141 lv.Columns.Remove (colB);
143 Assert.AreEqual (1, colA.DisplayIndex, "#B1");
144 Assert.AreEqual (-1, colB.DisplayIndex, "#B2");
145 Assert.AreEqual (0, colC.DisplayIndex, "#B3");
146 colA.DisplayIndex = 255;
147 Assert.AreEqual (255, colA.DisplayIndex, "#C1");
148 Assert.AreEqual (-1, colB.DisplayIndex, "#C2");
149 Assert.AreEqual (0, colC.DisplayIndex, "#C3");
153 public void DisplayIndex_ListView_NotCreated ()
155 ColumnHeader colA = new ColumnHeader ();
156 colA.DisplayIndex = -66;
157 Assert.AreEqual (-66, colA.DisplayIndex, "#A1");
158 colA.DisplayIndex = 66;
159 Assert.AreEqual (66, colA.DisplayIndex, "#A2");
161 ColumnHeader colB = new ColumnHeader ();
162 colB.DisplayIndex = 0;
163 Assert.AreEqual (0, colB.DisplayIndex, "#A3");
165 ColumnHeader colC = new ColumnHeader ();
166 colC.DisplayIndex = 1;
167 Assert.AreEqual (1, colC.DisplayIndex, "#A4");
169 ListView lv = new ListView ();
170 lv.ColumnReordered += new ColumnReorderedEventHandler (ColumnReordered);
171 lv.View = View.Details;
172 lv.Columns.Add (colA);
173 lv.Columns.Add (colB);
174 lv.Columns.Add (colC);
177 colA.DisplayIndex = -1;
179 } catch (ArgumentOutOfRangeException ex) {
180 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
181 Assert.IsNull (ex.InnerException, "#B3");
182 Assert.IsNotNull (ex.Message, "#B4");
183 Assert.IsNotNull (ex.ParamName, "#B5");
184 Assert.AreEqual ("DisplayIndex", ex.ParamName, "#B6");
188 colA.DisplayIndex = lv.Columns.Count;
190 } catch (ArgumentOutOfRangeException ex) {
191 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
192 Assert.IsNull (ex.InnerException, "#C3");
193 Assert.IsNotNull (ex.Message, "#C4");
194 Assert.IsNotNull (ex.ParamName, "#C5");
195 Assert.AreEqual ("DisplayIndex", ex.ParamName, "#C6");
198 Assert.AreEqual (0, colA.DisplayIndex, "#D1");
199 Assert.AreEqual (1, colB.DisplayIndex, "#D2");
200 Assert.AreEqual (2, colC.DisplayIndex, "#D3");
201 Assert.AreEqual (0, columnReordered, "#D4");
205 public void ImageIndex_Invalid ()
207 ColumnHeader col = new ColumnHeader ();
212 } catch (ArgumentOutOfRangeException ex) {
213 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2");
214 Assert.IsNotNull (ex.Message, "#3");
215 Assert.IsNotNull (ex.ParamName, "#4");
216 Assert.AreEqual ("ImageIndex", ex.ParamName, "#5");
217 Assert.IsNull (ex.InnerException, "#6");
219 Assert.AreEqual (2, col.ImageIndex, "#7");
223 public void ImageKey ()
225 ColumnHeader col = new ColumnHeader ();
226 Assert.AreEqual (string.Empty, col.ImageKey, "#1");
227 col.ImageKey = "test";
228 Assert.AreEqual ("test", col.ImageKey, "#2");
230 Assert.AreEqual (string.Empty, col.ImageKey, "#3");
234 public void ImageKeyAndImageIndexInteraction ()
236 ColumnHeader col = new ColumnHeader ();
238 Assert.AreEqual (1, col.ImageIndex, "#A1");
239 Assert.AreEqual (string.Empty, col.ImageKey, "#A2");
240 col.ImageKey = "test";
241 Assert.AreEqual (-1, col.ImageIndex, "#B1");
242 Assert.AreEqual ("test", col.ImageKey, "#B2");
244 Assert.AreEqual (2, col.ImageIndex, "#C1");
245 Assert.AreEqual (string.Empty, col.ImageKey, "#C2");
247 Assert.AreEqual (-1, col.ImageIndex, "#D1");
248 Assert.AreEqual (string.Empty, col.ImageKey, "#D2");
252 public void ImageList ()
254 ColumnHeader col = new ColumnHeader ();
255 Assert.IsNull (col.ImageList, "#1");
257 ListView lv = new ListView ();
258 lv.View = View.Details;
259 ImageList small = new ImageList ();
260 lv.SmallImageList = small;
261 ImageList large = new ImageList ();
262 lv.LargeImageList = large;
263 lv.Columns.Add (col);
264 Assert.IsNotNull (col.ImageList, "#2");
265 Assert.AreSame (small, col.ImageList, "#3");
269 public void ImageList_ListView_Disposed ()
271 ListView lv = new ListView ();
272 lv.View = View.Details;
273 ImageList small = new ImageList ();
274 lv.SmallImageList = small;
275 ImageList large = new ImageList ();
276 lv.LargeImageList = large;
277 ColumnHeader col = new ColumnHeader ();
278 lv.Columns.Add (col);
280 Assert.IsNull (col.ImageList);
285 public void Index_ListView_Disposed ()
287 ListView lv = new ListView ();
288 lv.View = View.Details;
289 ColumnHeader colA = new ColumnHeader ();
290 lv.Columns.Add (colA);
291 ColumnHeader colB = new ColumnHeader ();
292 lv.Columns.Add (colB);
294 Assert.AreEqual (-1, colA.Index, "#1");
295 Assert.AreEqual (-1, colB.Index, "#2");
302 ColumnHeader col = new ColumnHeader ();
303 Assert.AreEqual (string.Empty, col.Name, "#1");
304 col.Name = "Address";
305 Assert.AreEqual ("Address", col.Name, "#2");
307 Assert.AreEqual (string.Empty, col.Name, "#3");
313 ColumnHeader col = new ColumnHeader ();
314 Assert.IsNull (col.Tag, "#1");
315 col.Tag = "whatever";
316 Assert.AreEqual ("whatever", col.Tag, "#2");
318 Assert.IsNull (col.Tag, "#3");
323 public void Text_ListView_Disposed ()
325 ListView lv = new ListView ();
326 lv.View = View.Details;
327 ColumnHeader col = new ColumnHeader ();
328 lv.Columns.Add (col);
330 col.Text = "whatever";
331 Assert.AreEqual ("whatever", col.Text);
335 public void TextAlign_ListView_Disposed ()
337 ListView lv = new ListView ();
338 lv.View = View.Details;
339 ColumnHeader col = new ColumnHeader ();
340 lv.Columns.Add (col);
342 col.TextAlign = HorizontalAlignment.Right;
343 Assert.AreEqual (HorizontalAlignment.Right, col.TextAlign);
347 public void ToStringTest ()
349 ListView lv = new ListView ();
350 lv.SmallImageList = new ImageList ();
351 ColumnHeader col = new ColumnHeader ();
353 col.DisplayIndex = 3;
355 col.Name = "address_col";
356 col.Tag = DateTime.Now;
358 col.Text = "Address";
359 col.TextAlign = HorizontalAlignment.Right;
361 lv.Columns.Add (col);
362 Assert.AreEqual ("ColumnHeader: Text: Address", col.ToString ());
366 [Category ("NotWorking")]
367 public void WidthDefault ()
369 ColumnHeader col = new ColumnHeader ();
370 Assert.AreEqual (60, col.Width);
374 public void WidthTest ()
376 ColumnHeader col = new ColumnHeader ();
377 col.Text = "Column text";
379 ListView lv = new ListView ();
380 lv.Items.Add ("Item text");
381 lv.View = View.Details;
382 lv.Columns.Add (col);
386 Assert.IsTrue (col.Width > 0, "#1");
389 Assert.IsTrue (col.Width > 0, "#2");
393 public void Width_ListView_Disposed ()
395 ListView lv = new ListView ();
396 lv.View = View.Details;
397 ColumnHeader col = new ColumnHeader ();
398 lv.Columns.Add (col);
401 Assert.AreEqual (10, col.Width);
405 public void ColumnReordered (object sender, ColumnReorderedEventArgs e)
410 private int columnReordered;