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 : TestHelper
38 protected override void SetUp ()
46 public void DefaultValuesTest ()
48 ColumnHeader col = new ColumnHeader ();
50 Assert.IsNull (col.ListView, "1");
51 Assert.AreEqual (-1, col.Index, "2");
52 Assert.AreEqual ("ColumnHeader", col.Text, "3");
53 Assert.AreEqual (HorizontalAlignment.Left, col.TextAlign, "4");
55 Assert.AreEqual (-1, col.DisplayIndex, "5");
56 Assert.AreEqual (-1, col.ImageIndex, "6");
57 Assert.AreEqual (String.Empty, col.ImageKey, "7");
58 Assert.IsNull (col.ImageList, "8");
59 Assert.AreEqual (String.Empty, col.Name, "9");
60 Assert.IsNull (col.Tag, "10");
66 public void DisplayIndex_ListView_Created ()
68 ColumnHeader colA = new ColumnHeader ();
69 ColumnHeader colB = new ColumnHeader ();
70 ColumnHeader colC = new ColumnHeader ();
71 ColumnHeader colD = new ColumnHeader ();
72 colA.DisplayIndex = 2;
73 colD.DisplayIndex = 0;
74 colB.DisplayIndex = 3;
75 colC.DisplayIndex = 1;
77 Form form = new Form ();
78 form.ShowInTaskbar = false;
79 ListView lv = new ListView ();
80 lv.ColumnReordered += new ColumnReorderedEventHandler (ColumnReordered);
81 lv.View = View.Details;
82 lv.Columns.Add (colA);
83 lv.Columns.Add (colB);
84 lv.Columns.Add (colC);
85 form.Controls.Add (lv);
88 Assert.AreEqual (0, colA.DisplayIndex, "#A1");
89 Assert.AreEqual (1, colB.DisplayIndex, "#A2");
90 Assert.AreEqual (2, colC.DisplayIndex, "#A3");
91 Assert.AreEqual (0, colD.DisplayIndex, "#A4");
92 Assert.AreEqual (0, columnReordered, "#A5");
94 colC.DisplayIndex = 0;
95 Assert.AreEqual (1, colA.DisplayIndex, "#B1");
96 Assert.AreEqual (2, colB.DisplayIndex, "#B2");
97 Assert.AreEqual (0, colC.DisplayIndex, "#B3");
98 Assert.AreEqual (0, colD.DisplayIndex, "#B4");
99 Assert.AreEqual (0, columnReordered, "#B5");
101 colC.DisplayIndex = 2;
102 Assert.AreEqual (0, colA.DisplayIndex, "#C1");
103 Assert.AreEqual (1, colB.DisplayIndex, "#C2");
104 Assert.AreEqual (2, colC.DisplayIndex, "#C3");
105 Assert.AreEqual (0, colD.DisplayIndex, "#C4");
106 Assert.AreEqual (0, columnReordered, "#C5");
108 colB.DisplayIndex = 2;
109 Assert.AreEqual (0, colA.DisplayIndex, "#D1");
110 Assert.AreEqual (2, colB.DisplayIndex, "#D2");
111 Assert.AreEqual (1, colC.DisplayIndex, "#D3");
112 Assert.AreEqual (0, colD.DisplayIndex, "#D4");
113 Assert.AreEqual (0, columnReordered, "#D5");
115 colD.DisplayIndex = 1;
116 lv.Columns.Add (colD);
118 Assert.AreEqual (0, colA.DisplayIndex, "#E1");
119 Assert.AreEqual (2, colB.DisplayIndex, "#E2");
120 Assert.AreEqual (1, colC.DisplayIndex, "#E3");
121 Assert.AreEqual (3, colD.DisplayIndex, "#E4");
122 Assert.AreEqual (0, columnReordered, "#E5");
128 public void DisplayIndex_ListView_Disposed ()
130 ListView lv = new ListView ();
131 lv.View = View.Details;
132 ColumnHeader colA = new ColumnHeader ();
133 lv.Columns.Add (colA);
134 ColumnHeader colB = new ColumnHeader ();
135 lv.Columns.Add (colB);
136 ColumnHeader colC = new ColumnHeader ();
137 lv.Columns.Add (colC);
138 Assert.AreEqual (0, colA.DisplayIndex, "#A1");
139 Assert.AreEqual (1, colB.DisplayIndex, "#A2");
140 Assert.AreEqual (2, colC.DisplayIndex, "#A3");
141 colA.DisplayIndex = 2;
142 lv.Columns.Remove (colB);
144 Assert.AreEqual (1, colA.DisplayIndex, "#B1");
145 Assert.AreEqual (-1, colB.DisplayIndex, "#B2");
146 Assert.AreEqual (0, colC.DisplayIndex, "#B3");
147 colA.DisplayIndex = 255;
148 Assert.AreEqual (255, colA.DisplayIndex, "#C1");
149 Assert.AreEqual (-1, colB.DisplayIndex, "#C2");
150 Assert.AreEqual (0, colC.DisplayIndex, "#C3");
154 public void DisplayIndex_ListView_NotCreated ()
156 ColumnHeader colA = new ColumnHeader ();
157 colA.DisplayIndex = -66;
158 Assert.AreEqual (-66, colA.DisplayIndex, "#A1");
159 colA.DisplayIndex = 66;
160 Assert.AreEqual (66, colA.DisplayIndex, "#A2");
162 ColumnHeader colB = new ColumnHeader ();
163 colB.DisplayIndex = 0;
164 Assert.AreEqual (0, colB.DisplayIndex, "#A3");
166 ColumnHeader colC = new ColumnHeader ();
167 colC.DisplayIndex = 1;
168 Assert.AreEqual (1, colC.DisplayIndex, "#A4");
170 ListView lv = new ListView ();
171 lv.ColumnReordered += new ColumnReorderedEventHandler (ColumnReordered);
172 lv.View = View.Details;
173 lv.Columns.Add (colA);
174 lv.Columns.Add (colB);
175 lv.Columns.Add (colC);
178 colA.DisplayIndex = -1;
180 } catch (ArgumentOutOfRangeException ex) {
181 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
182 Assert.IsNull (ex.InnerException, "#B3");
183 Assert.IsNotNull (ex.Message, "#B4");
184 Assert.IsNotNull (ex.ParamName, "#B5");
185 Assert.AreEqual ("DisplayIndex", ex.ParamName, "#B6");
189 colA.DisplayIndex = lv.Columns.Count;
191 } catch (ArgumentOutOfRangeException ex) {
192 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
193 Assert.IsNull (ex.InnerException, "#C3");
194 Assert.IsNotNull (ex.Message, "#C4");
195 Assert.IsNotNull (ex.ParamName, "#C5");
196 Assert.AreEqual ("DisplayIndex", ex.ParamName, "#C6");
199 Assert.AreEqual (0, colA.DisplayIndex, "#D1");
200 Assert.AreEqual (1, colB.DisplayIndex, "#D2");
201 Assert.AreEqual (2, colC.DisplayIndex, "#D3");
202 Assert.AreEqual (0, columnReordered, "#D4");
206 public void ImageIndex_Invalid ()
208 ColumnHeader col = new ColumnHeader ();
213 } catch (ArgumentOutOfRangeException ex) {
214 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2");
215 Assert.IsNotNull (ex.Message, "#3");
216 Assert.IsNotNull (ex.ParamName, "#4");
217 Assert.AreEqual ("ImageIndex", ex.ParamName, "#5");
218 Assert.IsNull (ex.InnerException, "#6");
220 Assert.AreEqual (2, col.ImageIndex, "#7");
224 public void ImageKey ()
226 ColumnHeader col = new ColumnHeader ();
227 Assert.AreEqual (string.Empty, col.ImageKey, "#1");
228 col.ImageKey = "test";
229 Assert.AreEqual ("test", col.ImageKey, "#2");
231 Assert.AreEqual (string.Empty, col.ImageKey, "#3");
235 public void ImageKeyAndImageIndexInteraction ()
237 ColumnHeader col = new ColumnHeader ();
239 Assert.AreEqual (1, col.ImageIndex, "#A1");
240 Assert.AreEqual (string.Empty, col.ImageKey, "#A2");
241 col.ImageKey = "test";
242 Assert.AreEqual (-1, col.ImageIndex, "#B1");
243 Assert.AreEqual ("test", col.ImageKey, "#B2");
245 Assert.AreEqual (2, col.ImageIndex, "#C1");
246 Assert.AreEqual (string.Empty, col.ImageKey, "#C2");
248 Assert.AreEqual (-1, col.ImageIndex, "#D1");
249 Assert.AreEqual (string.Empty, col.ImageKey, "#D2");
253 public void ImageList ()
255 ColumnHeader col = new ColumnHeader ();
256 Assert.IsNull (col.ImageList, "#1");
258 ListView lv = new ListView ();
259 lv.View = View.Details;
260 ImageList small = new ImageList ();
261 lv.SmallImageList = small;
262 ImageList large = new ImageList ();
263 lv.LargeImageList = large;
264 lv.Columns.Add (col);
265 Assert.IsNotNull (col.ImageList, "#2");
266 Assert.AreSame (small, col.ImageList, "#3");
270 public void ImageList_ListView_Disposed ()
272 ListView lv = new ListView ();
273 lv.View = View.Details;
274 ImageList small = new ImageList ();
275 lv.SmallImageList = small;
276 ImageList large = new ImageList ();
277 lv.LargeImageList = large;
278 ColumnHeader col = new ColumnHeader ();
279 lv.Columns.Add (col);
281 Assert.IsNull (col.ImageList);
286 public void Index_ListView_Disposed ()
288 ListView lv = new ListView ();
289 lv.View = View.Details;
290 ColumnHeader colA = new ColumnHeader ();
291 lv.Columns.Add (colA);
292 ColumnHeader colB = new ColumnHeader ();
293 lv.Columns.Add (colB);
295 Assert.AreEqual (-1, colA.Index, "#1");
296 Assert.AreEqual (-1, colB.Index, "#2");
303 ColumnHeader col = new ColumnHeader ();
304 Assert.AreEqual (string.Empty, col.Name, "#1");
305 col.Name = "Address";
306 Assert.AreEqual ("Address", col.Name, "#2");
308 Assert.AreEqual (string.Empty, col.Name, "#3");
314 ColumnHeader col = new ColumnHeader ();
315 Assert.IsNull (col.Tag, "#1");
316 col.Tag = "whatever";
317 Assert.AreEqual ("whatever", col.Tag, "#2");
319 Assert.IsNull (col.Tag, "#3");
324 public void Text_ListView_Disposed ()
326 ListView lv = new ListView ();
327 lv.View = View.Details;
328 ColumnHeader col = new ColumnHeader ();
329 lv.Columns.Add (col);
331 col.Text = "whatever";
332 Assert.AreEqual ("whatever", col.Text);
336 public void TextAlign_ListView_Disposed ()
338 ListView lv = new ListView ();
339 lv.View = View.Details;
340 ColumnHeader col = new ColumnHeader ();
341 lv.Columns.Add (col);
343 col.TextAlign = HorizontalAlignment.Right;
344 Assert.AreEqual (HorizontalAlignment.Right, col.TextAlign);
348 public void ToStringTest ()
350 ListView lv = new ListView ();
351 lv.SmallImageList = new ImageList ();
352 ColumnHeader col = new ColumnHeader ();
354 col.DisplayIndex = 3;
356 col.Name = "address_col";
357 col.Tag = DateTime.Now;
359 col.Text = "Address";
360 col.TextAlign = HorizontalAlignment.Right;
362 lv.Columns.Add (col);
363 Assert.AreEqual ("ColumnHeader: Text: Address", col.ToString ());
367 [Category ("NotWorking")]
368 public void WidthDefault ()
370 ColumnHeader col = new ColumnHeader ();
371 Assert.AreEqual (60, col.Width);
375 public void WidthTest ()
377 ColumnHeader col = new ColumnHeader ();
378 col.Text = "Column text";
380 ListView lv = new ListView ();
381 lv.Items.Add ("Item text");
382 lv.View = View.Details;
383 lv.Columns.Add (col);
387 Assert.IsTrue (col.Width > 0, "#1");
390 Assert.IsTrue (col.Width > 0, "#2");
394 public void Width_ListView_Disposed ()
396 ListView lv = new ListView ();
397 lv.View = View.Details;
398 ColumnHeader col = new ColumnHeader ();
399 lv.Columns.Add (col);
402 Assert.AreEqual (10, col.Width);
406 public void ColumnReordered (object sender, ColumnReorderedEventArgs e)
411 private int columnReordered;