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
37 public void DefaultValuesTest ()
39 ColumnHeader col = new ColumnHeader ();
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");
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");
57 public void DisplayIndexTest ()
59 ColumnHeader col = new ColumnHeader ();
60 col.DisplayIndex = -66;
61 col.DisplayIndex = 66;
63 ListView lv = new ListView ();
67 col.DisplayIndex = -1;
69 } catch (ArgumentOutOfRangeException) {
73 col.DisplayIndex = lv.Columns.Count;
75 } catch (ArgumentOutOfRangeException) {
78 Assert.AreEqual (0, col.DisplayIndex, "3");
82 public void DisplayIndex_ListView_Disposed ()
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);
91 colA.DisplayIndex = 1;
92 Assert.AreEqual (1, colA.DisplayIndex, "#1");
93 Assert.AreEqual (1, colB.DisplayIndex, "#2");
97 public void ImageIndex_Invalid ()
99 ColumnHeader col = new ColumnHeader ();
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");
111 Assert.AreEqual (2, col.ImageIndex, "#7");
115 public void ImageKey ()
117 ColumnHeader col = new ColumnHeader ();
118 Assert.AreEqual (string.Empty, col.ImageKey, "#1");
119 col.ImageKey = "test";
120 Assert.AreEqual ("test", col.ImageKey, "#2");
122 Assert.AreEqual (string.Empty, col.ImageKey, "#3");
126 public void ImageKeyAndImageIndexInteraction ()
128 ColumnHeader col = new ColumnHeader ();
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");
136 Assert.AreEqual (2, col.ImageIndex, "#C1");
137 Assert.AreEqual (string.Empty, col.ImageKey, "#C2");
139 Assert.AreEqual (-1, col.ImageIndex, "#D1");
140 Assert.AreEqual (string.Empty, col.ImageKey, "#D2");
144 public void ImageList ()
146 ColumnHeader col = new ColumnHeader ();
147 Assert.IsNull (col.ImageList, "#1");
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");
161 public void ImageList_ListView_Disposed ()
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);
172 Assert.IsNull (col.ImageList);
177 public void Index_ListView_Disposed ()
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);
186 Assert.AreEqual (-1, colA.Index, "#1");
187 Assert.AreEqual (-1, colB.Index, "#2");
194 ColumnHeader col = new ColumnHeader ();
195 Assert.AreEqual (string.Empty, col.Name, "#1");
196 col.Name = "Address";
197 Assert.AreEqual ("Address", col.Name, "#2");
199 Assert.AreEqual (string.Empty, col.Name, "#3");
205 ColumnHeader col = new ColumnHeader ();
206 Assert.IsNull (col.Tag, "#1");
207 col.Tag = "whatever";
208 Assert.AreEqual ("whatever", col.Tag, "#2");
210 Assert.IsNull (col.Tag, "#3");
215 public void Text_ListView_Disposed ()
217 ListView lv = new ListView ();
218 lv.View = View.Details;
219 ColumnHeader col = new ColumnHeader ();
220 lv.Columns.Add (col);
222 col.Text = "whatever";
223 Assert.AreEqual ("whatever", col.Text);
227 public void TextAlign_ListView_Disposed ()
229 ListView lv = new ListView ();
230 lv.View = View.Details;
231 ColumnHeader col = new ColumnHeader ();
232 lv.Columns.Add (col);
234 col.TextAlign = HorizontalAlignment.Right;
235 Assert.AreEqual (HorizontalAlignment.Right, col.TextAlign);
239 public void ToStringTest ()
241 ListView lv = new ListView ();
242 lv.SmallImageList = new ImageList ();
243 ColumnHeader col = new ColumnHeader ();
245 col.DisplayIndex = 3;
247 col.Name = "address_col";
248 col.Tag = DateTime.Now;
250 col.Text = "Address";
251 col.TextAlign = HorizontalAlignment.Right;
253 lv.Columns.Add (col);
254 Assert.AreEqual ("ColumnHeader: Text: Address", col.ToString ());
258 [Category ("NotWorking")]
259 public void WidthDefault ()
261 ColumnHeader col = new ColumnHeader ();
262 Assert.AreEqual (60, col.Width);
266 public void WidthTest ()
268 ColumnHeader col = new ColumnHeader ();
269 col.Text = "Column text";
271 ListView lv = new ListView ();
272 lv.Items.Add ("Item text");
273 lv.View = View.Details;
274 lv.Columns.Add (col);
278 Assert.IsTrue (col.Width > 0, "#1");
281 Assert.IsTrue (col.Width > 0, "#2");
285 public void Width_ListView_Disposed ()
287 ListView lv = new ListView ();
288 lv.View = View.Details;
289 ColumnHeader col = new ColumnHeader ();
290 lv.Columns.Add (col);
293 Assert.AreEqual (10, col.Width);