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) 2005,2006 Novell, Inc. (http://www.novell.com)
23 // Jordi Mas i Hernandez <jordi@ximian.com>
24 // Chris Toshok <toshok@ximian.com>
29 using System.Collections;
30 using System.ComponentModel;
32 using System.Windows.Forms;
34 using NUnit.Framework;
36 namespace MonoTests.System.Windows.Forms
39 public class DataGridTableStyleTest : TestHelper
41 private bool eventhandled;
44 public void TestDefaultValues ()
46 DataGridTableStyle dg = new DataGridTableStyle ();
48 Assert.AreEqual (true, dg.AllowSorting, "AllowSorting property");
49 Assert.AreEqual (true, dg.ColumnHeadersVisible, "ColumnHeadersVisible property");
50 Assert.AreEqual (DataGridLineStyle.Solid, dg.GridLineStyle, "GridLineStyle property");
51 Assert.AreEqual (75, dg.PreferredColumnWidth, "PreferredColumnWidth property");
52 Assert.AreEqual (false, dg.ReadOnly, "ReadOnly property");
53 Assert.AreEqual (true, dg.RowHeadersVisible, "RowHeadersVisible property");
54 Assert.AreEqual (35, dg.RowHeaderWidth, "RowHeaderWidth property");
58 public void TestAllowSortingChangedEvent ()
60 DataGridTableStyle dg = new DataGridTableStyle ();
62 dg.AllowSortingChanged += new EventHandler (OnEventHandler);
63 dg.AllowSorting = !dg.AllowSorting;
64 Assert.AreEqual (true, eventhandled, "A1");
68 [ExpectedException (typeof (ArgumentException))]
69 public void TestAllowSortingChangedEvent_default ()
71 DataGridTableStyle dg = new DataGridTableStyle (true);
73 dg.AllowSortingChanged += new EventHandler (OnEventHandler);
74 dg.AllowSorting = !dg.AllowSorting;
75 Assert.AreEqual (true, eventhandled, "A2");
79 public void TestAlternatingBackColorChangedEvent ()
81 DataGridTableStyle dg = new DataGridTableStyle ();
83 dg.AlternatingBackColorChanged += new EventHandler (OnEventHandler);
84 dg.AlternatingBackColor = Color.Red;
85 Assert.AreEqual (true, eventhandled, "A1");
89 [ExpectedException (typeof (ArgumentException))]
90 public void TestAlternatingBackColorChangedEvent_default ()
92 DataGridTableStyle dg = new DataGridTableStyle (true);
94 dg.AlternatingBackColorChanged += new EventHandler (OnEventHandler);
95 dg.AlternatingBackColor = Color.Red;
96 Assert.AreEqual (true, eventhandled, "A2");
99 // Microsoft lunches ForeColor event instead of BackColor
101 public void TestBackColorChangedEvent ()
103 DataGridTableStyle dg = new DataGridTableStyle ();
104 eventhandled = false;
105 dg.BackColorChanged += new EventHandler (OnEventHandler);
106 dg.BackColor = Color.Yellow;
107 Assert.AreEqual (false, eventhandled, "A1");
109 dg = new DataGridTableStyle ();
110 eventhandled = false;
111 dg.ForeColorChanged += new EventHandler (OnEventHandler);
112 dg.BackColor = Color.Yellow;
113 Assert.AreEqual (true, eventhandled, "A2");
117 [ExpectedException (typeof (ArgumentException))]
118 public void TestBackColorChangedEvent_default ()
120 DataGridTableStyle dg = new DataGridTableStyle (true);
121 eventhandled = false;
122 dg.ForeColorChanged += new EventHandler (OnEventHandler);
123 dg.BackColor = Color.Yellow;
124 Assert.AreEqual (true, eventhandled, "A3");
128 public void TestColumnHeadersVisibleChangedEvent ()
130 DataGridTableStyle dg = new DataGridTableStyle ();
131 eventhandled = false;
132 dg.ColumnHeadersVisibleChanged += new EventHandler (OnEventHandler);
133 dg.ColumnHeadersVisible = !dg.ColumnHeadersVisible;
134 Assert.AreEqual (true, eventhandled, "A1");
138 public void TestColumnHeadersVisibleChangedEvent_default ()
140 DataGridTableStyle dg = new DataGridTableStyle (true);
141 eventhandled = false;
142 dg.ColumnHeadersVisibleChanged += new EventHandler (OnEventHandler);
143 dg.ColumnHeadersVisible = !dg.ColumnHeadersVisible;
144 Assert.AreEqual (true, eventhandled, "A1");
147 // Microsoft lunches BackColor event instead of ForeColor
149 public void TestForeColorChangedEvent ()
151 DataGridTableStyle dg = new DataGridTableStyle ();
152 eventhandled = false;
153 dg.ForeColorChanged += new EventHandler (OnEventHandler);
154 dg.ForeColor = Color.Red;
155 Assert.AreEqual (false, eventhandled, "A1");
157 dg = new DataGridTableStyle ();
158 eventhandled = false;
159 dg.BackColorChanged += new EventHandler (OnEventHandler);
160 dg.ForeColor = Color.Red;
161 Assert.AreEqual (true, eventhandled, "A2");
165 [ExpectedException (typeof (ArgumentException))]
166 public void TestForeColorChangedEvent_default ()
168 DataGridTableStyle dg = new DataGridTableStyle (true);
169 eventhandled = false;
170 dg.ForeColorChanged += new EventHandler (OnEventHandler);
171 dg.ForeColor = Color.Red;
172 Assert.AreEqual (true, eventhandled, "A1");
176 public void TestGridLineColorChangedEvent ()
178 DataGridTableStyle dg = new DataGridTableStyle ();
179 eventhandled = false;
180 dg.GridLineColorChanged += new EventHandler (OnEventHandler);
181 dg.GridLineColor = Color.Red;
182 Assert.AreEqual (true, eventhandled, "A1");
186 [ExpectedException (typeof (ArgumentException))]
187 public void TestGridLineColorChangedEvent_default ()
189 DataGridTableStyle dg = new DataGridTableStyle (true);
190 eventhandled = false;
191 dg.GridLineColorChanged += new EventHandler (OnEventHandler);
192 dg.GridLineColor = Color.Red;
193 Assert.AreEqual (true, eventhandled, "A1");
197 public void TestGridLineStyleChangedEvent ()
199 DataGridTableStyle dg = new DataGridTableStyle ();
200 eventhandled = false;
201 dg.GridLineStyleChanged += new EventHandler (OnEventHandler);
202 dg.GridLineStyle = DataGridLineStyle.None;
203 Assert.AreEqual (true, eventhandled, "A1");
207 [ExpectedException (typeof (ArgumentException))]
208 public void TestGridLineStyleChangedEvent_default ()
210 DataGridTableStyle dg = new DataGridTableStyle (true);
211 eventhandled = false;
212 dg.GridLineStyleChanged += new EventHandler (OnEventHandler);
213 dg.GridLineStyle = DataGridLineStyle.None;
214 Assert.AreEqual (true, eventhandled, "A1");
218 public void TestHeaderBackColorChangedEvent ()
220 DataGridTableStyle dg = new DataGridTableStyle ();
221 eventhandled = false;
222 dg.HeaderBackColorChanged += new EventHandler (OnEventHandler);
223 dg.HeaderBackColor = Color.Red;
224 Assert.AreEqual (true, eventhandled, "A1");
228 [ExpectedException (typeof (ArgumentException))]
229 public void TestHeaderBackColorChangedEvent_default ()
231 DataGridTableStyle dg = new DataGridTableStyle (true);
232 eventhandled = false;
233 dg.HeaderBackColorChanged += new EventHandler (OnEventHandler);
234 dg.HeaderBackColor = Color.Red;
235 Assert.AreEqual (true, eventhandled, "A1");
239 public void TestHeaderFontChangedEvent ()
241 DataGridTableStyle dg = new DataGridTableStyle ();
242 eventhandled = false;
243 dg.HeaderFontChanged += new EventHandler (OnEventHandler);
244 dg.HeaderFont = new Font ("Arial", 20);
245 Assert.AreEqual (true, eventhandled, "A1");
249 [ExpectedException (typeof (ArgumentException))]
250 public void TestHeaderFontChangedEvent_default ()
252 DataGridTableStyle dg = new DataGridTableStyle (true);
253 eventhandled = false;
254 dg.HeaderFontChanged += new EventHandler (OnEventHandler);
255 dg.HeaderFont = new Font ("Arial", 20);
256 Assert.AreEqual (true, eventhandled, "A1");
260 public void TestHeaderForeColorChangedEvent ()
262 DataGridTableStyle dg = new DataGridTableStyle ();
263 eventhandled = false;
264 dg.HeaderForeColorChanged += new EventHandler (OnEventHandler);
265 dg.HeaderForeColor = Color.Red;
266 Assert.AreEqual (true, eventhandled, "A1");
270 [ExpectedException (typeof (ArgumentException))]
271 public void TestHeaderForeColorChangedEvent_default ()
273 DataGridTableStyle dg = new DataGridTableStyle (true);
274 eventhandled = false;
275 dg.HeaderForeColorChanged += new EventHandler (OnEventHandler);
276 dg.HeaderForeColor = Color.Red;
277 Assert.AreEqual (true, eventhandled, "A1");
281 public void TestLinkColorChangedEvent ()
283 DataGridTableStyle dg = new DataGridTableStyle ();
284 eventhandled = false;
285 dg.LinkColorChanged += new EventHandler (OnEventHandler);
286 dg.LinkColor = Color.Red;
287 Assert.AreEqual (true, eventhandled, "A1");
291 [ExpectedException (typeof (ArgumentException))]
292 public void TestLinkColorChangedEvent_default ()
294 DataGridTableStyle dg = new DataGridTableStyle (true);
295 eventhandled = false;
296 dg.LinkColorChanged += new EventHandler (OnEventHandler);
297 dg.LinkColor = Color.Red;
298 Assert.AreEqual (true, eventhandled, "A1");
302 // Microsoft is not firing any event
304 public void TestLinkHoverColorChangedEvent ()
306 DataGridTableStyle dg = new DataGridTableStyle ();
307 eventhandled = false;
308 dg.LinkHoverColorChanged += new EventHandler (OnEventHandler);
309 dg.LinkHoverColor = Color.Red;
310 Assert.AreEqual (false, eventhandled, "A1");
313 // Microsoft is not firing any event
315 public void TestLinkHoverColorChangedEvent_default ()
317 DataGridTableStyle dg = new DataGridTableStyle (true);
318 eventhandled = false;
319 dg.LinkHoverColorChanged += new EventHandler (OnEventHandler);
320 dg.LinkHoverColor = Color.Red;
321 Assert.AreEqual (false, eventhandled, "A1");
325 public void TestMappingNameChangedEvent ()
327 DataGridTableStyle dg = new DataGridTableStyle ();
328 eventhandled = false;
329 dg.MappingNameChanged += new EventHandler (OnEventHandler);
330 dg.MappingName = "name1";
331 Assert.AreEqual (true, eventhandled, "A1");
335 public void TestMappingNameChangedEvent_default ()
337 DataGridTableStyle dg = new DataGridTableStyle (true);
338 eventhandled = false;
339 dg.MappingNameChanged += new EventHandler (OnEventHandler);
340 dg.MappingName = "name1";
341 Assert.AreEqual (true, eventhandled, "A1");
345 public void TestPreferredColumnWidthChangedEvent ()
347 DataGridTableStyle dg = new DataGridTableStyle ();
348 eventhandled = false;
349 dg.PreferredColumnWidthChanged += new EventHandler (OnEventHandler);
350 dg.PreferredColumnWidth = dg.PreferredColumnWidth++;
351 Assert.AreEqual (true, eventhandled, "A1");
355 [ExpectedException (typeof (ArgumentException))]
356 public void TestPreferredColumnWidthChangedEvent_default ()
358 DataGridTableStyle dg = new DataGridTableStyle (true);
359 eventhandled = false;
360 dg.PreferredColumnWidthChanged += new EventHandler (OnEventHandler);
361 dg.PreferredColumnWidth = dg.PreferredColumnWidth++;
362 Assert.AreEqual (true, eventhandled, "A1");
366 public void TestPreferredRowHeightChangedEvent ()
368 DataGridTableStyle dg = new DataGridTableStyle ();
369 eventhandled = false;
370 dg.PreferredRowHeightChanged += new EventHandler (OnEventHandler);
371 dg.PreferredRowHeight = dg.PreferredRowHeight++;
372 Assert.AreEqual (true, eventhandled, "A1");
376 [ExpectedException (typeof (ArgumentException))]
377 public void TestPreferredRowHeightChangedEvent_default ()
379 DataGridTableStyle dg = new DataGridTableStyle (true);
380 eventhandled = false;
381 dg.PreferredRowHeightChanged += new EventHandler (OnEventHandler);
382 dg.PreferredRowHeight = dg.PreferredRowHeight++;
383 Assert.AreEqual (true, eventhandled, "A1");
387 public void TestReadOnlyChangedEvent ()
389 DataGridTableStyle dg = new DataGridTableStyle ();
390 eventhandled = false;
391 dg.ReadOnlyChanged += new EventHandler (OnEventHandler);
392 dg.ReadOnly = !dg.ReadOnly;
393 Assert.AreEqual (true, eventhandled, "A1");
397 public void TestReadOnlyChangedEvent_default ()
399 DataGridTableStyle dg = new DataGridTableStyle (true);
400 eventhandled = false;
401 dg.ReadOnlyChanged += new EventHandler (OnEventHandler);
402 dg.ReadOnly = !dg.ReadOnly;
403 Assert.AreEqual (true, eventhandled, "A1");
407 public void TestRowHeadersVisibleChangedEvent ()
409 DataGridTableStyle dg = new DataGridTableStyle ();
410 eventhandled = false;
411 dg.RowHeadersVisibleChanged += new EventHandler (OnEventHandler);
412 dg.RowHeadersVisible = !dg.RowHeadersVisible;
413 Assert.AreEqual (true, eventhandled, "A1");
417 public void TestRowHeadersVisibleChangedEvent_default ()
419 DataGridTableStyle dg = new DataGridTableStyle (true);
420 eventhandled = false;
421 dg.RowHeadersVisibleChanged += new EventHandler (OnEventHandler);
422 dg.RowHeadersVisible = !dg.RowHeadersVisible;
423 Assert.AreEqual (true, eventhandled, "A1");
427 public void TestRowHeaderWidthChangedEvent ()
429 DataGridTableStyle dg = new DataGridTableStyle ();
430 eventhandled = false;
431 dg.RowHeaderWidthChanged += new EventHandler (OnEventHandler);
432 dg.RowHeaderWidth = dg.RowHeaderWidth++;
433 Assert.AreEqual (true, eventhandled, "A1");
437 public void TestRowHeaderWidthChangedEvent_default ()
439 DataGridTableStyle dg = new DataGridTableStyle (true);
440 eventhandled = false;
441 dg.RowHeaderWidthChanged += new EventHandler (OnEventHandler);
442 dg.RowHeaderWidth = dg.RowHeaderWidth++;
443 Assert.AreEqual (true, eventhandled, "A1");
447 public void TestSelectionBackColorChangedEvent ()
449 DataGridTableStyle dg = new DataGridTableStyle ();
450 eventhandled = false;
451 dg.SelectionBackColorChanged += new EventHandler (OnEventHandler);
452 dg.SelectionBackColor = Color.Red;
453 Assert.AreEqual (true, eventhandled, "A1");
457 [ExpectedException (typeof (ArgumentException))]
458 public void TestSelectionBackColorChangedEvent_default ()
460 DataGridTableStyle dg = new DataGridTableStyle (true);
461 eventhandled = false;
462 dg.SelectionBackColorChanged += new EventHandler (OnEventHandler);
463 dg.SelectionBackColor = Color.Red;
464 Assert.AreEqual (true, eventhandled, "A1");
468 public void TestSelectionForeColorChangedEvent ()
470 DataGridTableStyle dg = new DataGridTableStyle ();
471 eventhandled = false;
472 dg.SelectionForeColorChanged += new EventHandler (OnEventHandler);
473 dg.SelectionForeColor = Color.Red;
474 Assert.AreEqual (true, eventhandled, "A1");
478 [ExpectedException (typeof (ArgumentException))]
479 public void TestSelectionForeColorChangedEvent_default ()
481 DataGridTableStyle dg = new DataGridTableStyle (true);
482 eventhandled = false;
483 dg.SelectionForeColorChanged += new EventHandler (OnEventHandler);
484 dg.SelectionForeColor = Color.Red;
485 Assert.AreEqual (true, eventhandled, "A1");
488 public void OnEventHandler (object sender, EventArgs e)
494 public void DataGridNull ()
496 DataGridTableStyle dg = new DataGridTableStyle ();
498 Assert.IsNull (dg.DataGrid, "A1");
502 public void HeaderFontNull ()
504 DataGridTableStyle dg = new DataGridTableStyle ();
505 Font header_font = dg.HeaderFont;
506 eventhandled = false;
507 dg.HeaderFontChanged += new EventHandler (OnEventHandler);
508 dg.HeaderFont = null;
509 Assert.AreEqual (header_font, dg.HeaderFont, "A1");
510 Assert.IsFalse (eventhandled, "A2");
514 public void HeaderFontNull2 ()
516 DataGridTableStyle dg = new DataGridTableStyle ();
517 Font header_font = dg.HeaderFont;
519 Font new_font = new Font ("Helvetica", 8.5f, GraphicsUnit.Point);
521 dg.HeaderFont = new_font;
522 Assert.AreEqual (new_font, dg.HeaderFont, "A1");
524 eventhandled = false;
525 dg.HeaderFontChanged += new EventHandler (OnEventHandler);
526 dg.HeaderFont = null;
528 Assert.AreEqual (header_font, dg.HeaderFont, "A2");
529 Assert.IsTrue (eventhandled, "A3");
533 public void MappingNameNull ()
535 DataGridTableStyle dg = new DataGridTableStyle ();
536 Assert.AreEqual ("", dg.MappingName, "A1");
537 eventhandled = false;
538 dg.MappingNameChanged += new EventHandler (OnEventHandler);
539 dg.MappingName = null;
540 Assert.AreEqual ("", dg.MappingName, "A2");
541 Assert.IsFalse (eventhandled, "A3");