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
41 private bool eventhandled
;
44 public void Clean() {}
47 public void GetReady ()
52 public void TestDefaultValues ()
54 DataGridTableStyle dg
= new DataGridTableStyle ();
56 Assert
.AreEqual (true, dg
.AllowSorting
, "AllowSorting property");
57 Assert
.AreEqual (true, dg
.ColumnHeadersVisible
, "ColumnHeadersVisible property");
58 Assert
.AreEqual (DataGridLineStyle
.Solid
, dg
.GridLineStyle
, "GridLineStyle property");
59 Assert
.AreEqual (75, dg
.PreferredColumnWidth
, "PreferredColumnWidth property");
60 Assert
.AreEqual (false, dg
.ReadOnly
, "ReadOnly property");
61 Assert
.AreEqual (true, dg
.RowHeadersVisible
, "RowHeadersVisible property");
62 Assert
.AreEqual (35, dg
.RowHeaderWidth
, "RowHeaderWidth property");
66 public void TestAllowSortingChangedEvent ()
68 DataGridTableStyle dg
= new DataGridTableStyle ();
70 dg
.AllowSortingChanged
+= new EventHandler (OnEventHandler
);
71 dg
.AllowSorting
= !dg
.AllowSorting
;
72 Assert
.AreEqual (true, eventhandled
, "A1");
76 [ExpectedException (typeof (ArgumentException
))]
77 public void TestAllowSortingChangedEvent_default ()
79 DataGridTableStyle dg
= new DataGridTableStyle (true);
81 dg
.AllowSortingChanged
+= new EventHandler (OnEventHandler
);
82 dg
.AllowSorting
= !dg
.AllowSorting
;
83 Assert
.AreEqual (true, eventhandled
, "A2");
87 public void TestAlternatingBackColorChangedEvent ()
89 DataGridTableStyle dg
= new DataGridTableStyle ();
91 dg
.AlternatingBackColorChanged
+= new EventHandler (OnEventHandler
);
92 dg
.AlternatingBackColor
= Color
.Red
;
93 Assert
.AreEqual (true, eventhandled
, "A1");
97 [ExpectedException (typeof (ArgumentException
))]
98 public void TestAlternatingBackColorChangedEvent_default ()
100 DataGridTableStyle dg
= new DataGridTableStyle (true);
101 eventhandled
= false;
102 dg
.AlternatingBackColorChanged
+= new EventHandler (OnEventHandler
);
103 dg
.AlternatingBackColor
= Color
.Red
;
104 Assert
.AreEqual (true, eventhandled
, "A2");
107 // Microsoft lunches ForeColor event instead of BackColor
109 public void TestBackColorChangedEvent ()
111 DataGridTableStyle dg
= new DataGridTableStyle ();
112 eventhandled
= false;
113 dg
.BackColorChanged
+= new EventHandler (OnEventHandler
);
114 dg
.BackColor
= Color
.Yellow
;
115 Assert
.AreEqual (false, eventhandled
, "A1");
117 dg
= new DataGridTableStyle ();
118 eventhandled
= false;
119 dg
.ForeColorChanged
+= new EventHandler (OnEventHandler
);
120 dg
.BackColor
= Color
.Yellow
;
121 Assert
.AreEqual (true, eventhandled
, "A2");
125 [ExpectedException (typeof (ArgumentException
))]
126 public void TestBackColorChangedEvent_default ()
128 DataGridTableStyle dg
= new DataGridTableStyle (true);
129 eventhandled
= false;
130 dg
.ForeColorChanged
+= new EventHandler (OnEventHandler
);
131 dg
.BackColor
= Color
.Yellow
;
132 Assert
.AreEqual (true, eventhandled
, "A3");
136 public void TestColumnHeadersVisibleChangedEvent ()
138 DataGridTableStyle dg
= new DataGridTableStyle ();
139 eventhandled
= false;
140 dg
.ColumnHeadersVisibleChanged
+= new EventHandler (OnEventHandler
);
141 dg
.ColumnHeadersVisible
= !dg
.ColumnHeadersVisible
;
142 Assert
.AreEqual (true, eventhandled
, "A1");
146 public void TestColumnHeadersVisibleChangedEvent_default ()
148 DataGridTableStyle dg
= new DataGridTableStyle (true);
149 eventhandled
= false;
150 dg
.ColumnHeadersVisibleChanged
+= new EventHandler (OnEventHandler
);
151 dg
.ColumnHeadersVisible
= !dg
.ColumnHeadersVisible
;
152 Assert
.AreEqual (true, eventhandled
, "A1");
155 // Microsoft lunches BackColor event instead of ForeColor
157 public void TestForeColorChangedEvent ()
159 DataGridTableStyle dg
= new DataGridTableStyle ();
160 eventhandled
= false;
161 dg
.ForeColorChanged
+= new EventHandler (OnEventHandler
);
162 dg
.ForeColor
= Color
.Red
;
163 Assert
.AreEqual (false, eventhandled
, "A1");
165 dg
= new DataGridTableStyle ();
166 eventhandled
= false;
167 dg
.BackColorChanged
+= new EventHandler (OnEventHandler
);
168 dg
.ForeColor
= Color
.Red
;
169 Assert
.AreEqual (true, eventhandled
, "A2");
173 [ExpectedException (typeof (ArgumentException
))]
174 public void TestForeColorChangedEvent_default ()
176 DataGridTableStyle dg
= new DataGridTableStyle (true);
177 eventhandled
= false;
178 dg
.ForeColorChanged
+= new EventHandler (OnEventHandler
);
179 dg
.ForeColor
= Color
.Red
;
180 Assert
.AreEqual (true, eventhandled
, "A1");
184 public void TestGridLineColorChangedEvent ()
186 DataGridTableStyle dg
= new DataGridTableStyle ();
187 eventhandled
= false;
188 dg
.GridLineColorChanged
+= new EventHandler (OnEventHandler
);
189 dg
.GridLineColor
= Color
.Red
;
190 Assert
.AreEqual (true, eventhandled
, "A1");
194 [ExpectedException (typeof (ArgumentException
))]
195 public void TestGridLineColorChangedEvent_default ()
197 DataGridTableStyle dg
= new DataGridTableStyle (true);
198 eventhandled
= false;
199 dg
.GridLineColorChanged
+= new EventHandler (OnEventHandler
);
200 dg
.GridLineColor
= Color
.Red
;
201 Assert
.AreEqual (true, eventhandled
, "A1");
205 public void TestGridLineStyleChangedEvent ()
207 DataGridTableStyle dg
= new DataGridTableStyle ();
208 eventhandled
= false;
209 dg
.GridLineStyleChanged
+= new EventHandler (OnEventHandler
);
210 dg
.GridLineStyle
= DataGridLineStyle
.None
;
211 Assert
.AreEqual (true, eventhandled
, "A1");
215 [ExpectedException (typeof (ArgumentException
))]
216 public void TestGridLineStyleChangedEvent_default ()
218 DataGridTableStyle dg
= new DataGridTableStyle (true);
219 eventhandled
= false;
220 dg
.GridLineStyleChanged
+= new EventHandler (OnEventHandler
);
221 dg
.GridLineStyle
= DataGridLineStyle
.None
;
222 Assert
.AreEqual (true, eventhandled
, "A1");
226 public void TestHeaderBackColorChangedEvent ()
228 DataGridTableStyle dg
= new DataGridTableStyle ();
229 eventhandled
= false;
230 dg
.HeaderBackColorChanged
+= new EventHandler (OnEventHandler
);
231 dg
.HeaderBackColor
= Color
.Red
;
232 Assert
.AreEqual (true, eventhandled
, "A1");
236 [ExpectedException (typeof (ArgumentException
))]
237 public void TestHeaderBackColorChangedEvent_default ()
239 DataGridTableStyle dg
= new DataGridTableStyle (true);
240 eventhandled
= false;
241 dg
.HeaderBackColorChanged
+= new EventHandler (OnEventHandler
);
242 dg
.HeaderBackColor
= Color
.Red
;
243 Assert
.AreEqual (true, eventhandled
, "A1");
247 public void TestHeaderFontChangedEvent ()
249 DataGridTableStyle dg
= new DataGridTableStyle ();
250 eventhandled
= false;
251 dg
.HeaderFontChanged
+= new EventHandler (OnEventHandler
);
252 dg
.HeaderFont
= new Font ("Arial", 20);
253 Assert
.AreEqual (true, eventhandled
, "A1");
257 [ExpectedException (typeof (ArgumentException
))]
258 public void TestHeaderFontChangedEvent_default ()
260 DataGridTableStyle dg
= new DataGridTableStyle (true);
261 eventhandled
= false;
262 dg
.HeaderFontChanged
+= new EventHandler (OnEventHandler
);
263 dg
.HeaderFont
= new Font ("Arial", 20);
264 Assert
.AreEqual (true, eventhandled
, "A1");
268 public void TestHeaderForeColorChangedEvent ()
270 DataGridTableStyle dg
= new DataGridTableStyle ();
271 eventhandled
= false;
272 dg
.HeaderForeColorChanged
+= new EventHandler (OnEventHandler
);
273 dg
.HeaderForeColor
= Color
.Red
;
274 Assert
.AreEqual (true, eventhandled
, "A1");
278 [ExpectedException (typeof (ArgumentException
))]
279 public void TestHeaderForeColorChangedEvent_default ()
281 DataGridTableStyle dg
= new DataGridTableStyle (true);
282 eventhandled
= false;
283 dg
.HeaderForeColorChanged
+= new EventHandler (OnEventHandler
);
284 dg
.HeaderForeColor
= Color
.Red
;
285 Assert
.AreEqual (true, eventhandled
, "A1");
289 public void TestLinkColorChangedEvent ()
291 DataGridTableStyle dg
= new DataGridTableStyle ();
292 eventhandled
= false;
293 dg
.LinkColorChanged
+= new EventHandler (OnEventHandler
);
294 dg
.LinkColor
= Color
.Red
;
295 Assert
.AreEqual (true, eventhandled
, "A1");
299 [ExpectedException (typeof (ArgumentException
))]
300 public void TestLinkColorChangedEvent_default ()
302 DataGridTableStyle dg
= new DataGridTableStyle (true);
303 eventhandled
= false;
304 dg
.LinkColorChanged
+= new EventHandler (OnEventHandler
);
305 dg
.LinkColor
= Color
.Red
;
306 Assert
.AreEqual (true, eventhandled
, "A1");
310 // Microsoft is not firing any event
312 public void TestLinkHoverColorChangedEvent ()
314 DataGridTableStyle dg
= new DataGridTableStyle ();
315 eventhandled
= false;
316 dg
.LinkHoverColorChanged
+= new EventHandler (OnEventHandler
);
317 dg
.LinkHoverColor
= Color
.Red
;
318 Assert
.AreEqual (false, eventhandled
, "A1");
321 // Microsoft is not firing any event
323 public void TestLinkHoverColorChangedEvent_default ()
325 DataGridTableStyle dg
= new DataGridTableStyle (true);
326 eventhandled
= false;
327 dg
.LinkHoverColorChanged
+= new EventHandler (OnEventHandler
);
328 dg
.LinkHoverColor
= Color
.Red
;
329 Assert
.AreEqual (false, eventhandled
, "A1");
333 public void TestMappingNameChangedEvent ()
335 DataGridTableStyle dg
= new DataGridTableStyle ();
336 eventhandled
= false;
337 dg
.MappingNameChanged
+= new EventHandler (OnEventHandler
);
338 dg
.MappingName
= "name1";
339 Assert
.AreEqual (true, eventhandled
, "A1");
343 public void TestMappingNameChangedEvent_default ()
345 DataGridTableStyle dg
= new DataGridTableStyle (true);
346 eventhandled
= false;
347 dg
.MappingNameChanged
+= new EventHandler (OnEventHandler
);
348 dg
.MappingName
= "name1";
349 Assert
.AreEqual (true, eventhandled
, "A1");
353 public void TestPreferredColumnWidthChangedEvent ()
355 DataGridTableStyle dg
= new DataGridTableStyle ();
356 eventhandled
= false;
357 dg
.PreferredColumnWidthChanged
+= new EventHandler (OnEventHandler
);
358 dg
.PreferredColumnWidth
= dg
.PreferredColumnWidth
++;
359 Assert
.AreEqual (true, eventhandled
, "A1");
363 [ExpectedException (typeof (ArgumentException
))]
364 public void TestPreferredColumnWidthChangedEvent_default ()
366 DataGridTableStyle dg
= new DataGridTableStyle (true);
367 eventhandled
= false;
368 dg
.PreferredColumnWidthChanged
+= new EventHandler (OnEventHandler
);
369 dg
.PreferredColumnWidth
= dg
.PreferredColumnWidth
++;
370 Assert
.AreEqual (true, eventhandled
, "A1");
374 public void TestPreferredRowHeightChangedEvent ()
376 DataGridTableStyle dg
= new DataGridTableStyle ();
377 eventhandled
= false;
378 dg
.PreferredRowHeightChanged
+= new EventHandler (OnEventHandler
);
379 dg
.PreferredRowHeight
= dg
.PreferredRowHeight
++;
380 Assert
.AreEqual (true, eventhandled
, "A1");
384 [ExpectedException (typeof (ArgumentException
))]
385 public void TestPreferredRowHeightChangedEvent_default ()
387 DataGridTableStyle dg
= new DataGridTableStyle (true);
388 eventhandled
= false;
389 dg
.PreferredRowHeightChanged
+= new EventHandler (OnEventHandler
);
390 dg
.PreferredRowHeight
= dg
.PreferredRowHeight
++;
391 Assert
.AreEqual (true, eventhandled
, "A1");
395 public void TestReadOnlyChangedEvent ()
397 DataGridTableStyle dg
= new DataGridTableStyle ();
398 eventhandled
= false;
399 dg
.ReadOnlyChanged
+= new EventHandler (OnEventHandler
);
400 dg
.ReadOnly
= !dg
.ReadOnly
;
401 Assert
.AreEqual (true, eventhandled
, "A1");
405 public void TestReadOnlyChangedEvent_default ()
407 DataGridTableStyle dg
= new DataGridTableStyle (true);
408 eventhandled
= false;
409 dg
.ReadOnlyChanged
+= new EventHandler (OnEventHandler
);
410 dg
.ReadOnly
= !dg
.ReadOnly
;
411 Assert
.AreEqual (true, eventhandled
, "A1");
415 public void TestRowHeadersVisibleChangedEvent ()
417 DataGridTableStyle dg
= new DataGridTableStyle ();
418 eventhandled
= false;
419 dg
.RowHeadersVisibleChanged
+= new EventHandler (OnEventHandler
);
420 dg
.RowHeadersVisible
= !dg
.RowHeadersVisible
;
421 Assert
.AreEqual (true, eventhandled
, "A1");
425 public void TestRowHeadersVisibleChangedEvent_default ()
427 DataGridTableStyle dg
= new DataGridTableStyle (true);
428 eventhandled
= false;
429 dg
.RowHeadersVisibleChanged
+= new EventHandler (OnEventHandler
);
430 dg
.RowHeadersVisible
= !dg
.RowHeadersVisible
;
431 Assert
.AreEqual (true, eventhandled
, "A1");
435 public void TestRowHeaderWidthChangedEvent ()
437 DataGridTableStyle dg
= new DataGridTableStyle ();
438 eventhandled
= false;
439 dg
.RowHeaderWidthChanged
+= new EventHandler (OnEventHandler
);
440 dg
.RowHeaderWidth
= dg
.RowHeaderWidth
++;
441 Assert
.AreEqual (true, eventhandled
, "A1");
445 public void TestRowHeaderWidthChangedEvent_default ()
447 DataGridTableStyle dg
= new DataGridTableStyle (true);
448 eventhandled
= false;
449 dg
.RowHeaderWidthChanged
+= new EventHandler (OnEventHandler
);
450 dg
.RowHeaderWidth
= dg
.RowHeaderWidth
++;
451 Assert
.AreEqual (true, eventhandled
, "A1");
455 public void TestSelectionBackColorChangedEvent ()
457 DataGridTableStyle dg
= new DataGridTableStyle ();
458 eventhandled
= false;
459 dg
.SelectionBackColorChanged
+= new EventHandler (OnEventHandler
);
460 dg
.SelectionBackColor
= Color
.Red
;
461 Assert
.AreEqual (true, eventhandled
, "A1");
465 [ExpectedException (typeof (ArgumentException
))]
466 public void TestSelectionBackColorChangedEvent_default ()
468 DataGridTableStyle dg
= new DataGridTableStyle (true);
469 eventhandled
= false;
470 dg
.SelectionBackColorChanged
+= new EventHandler (OnEventHandler
);
471 dg
.SelectionBackColor
= Color
.Red
;
472 Assert
.AreEqual (true, eventhandled
, "A1");
476 public void TestSelectionForeColorChangedEvent ()
478 DataGridTableStyle dg
= new DataGridTableStyle ();
479 eventhandled
= false;
480 dg
.SelectionForeColorChanged
+= new EventHandler (OnEventHandler
);
481 dg
.SelectionForeColor
= Color
.Red
;
482 Assert
.AreEqual (true, eventhandled
, "A1");
486 [ExpectedException (typeof (ArgumentException
))]
487 public void TestSelectionForeColorChangedEvent_default ()
489 DataGridTableStyle dg
= new DataGridTableStyle (true);
490 eventhandled
= false;
491 dg
.SelectionForeColorChanged
+= new EventHandler (OnEventHandler
);
492 dg
.SelectionForeColor
= Color
.Red
;
493 Assert
.AreEqual (true, eventhandled
, "A1");
496 public void OnEventHandler (object sender
, EventArgs e
)
502 public void DataGridNull ()
504 DataGridTableStyle dg
= new DataGridTableStyle ();
506 Assert
.IsNull (dg
.DataGrid
, "A1");
510 public void HeaderFontNull ()
512 DataGridTableStyle dg
= new DataGridTableStyle ();
513 Font header_font
= dg
.HeaderFont
;
514 eventhandled
= false;
515 dg
.HeaderFontChanged
+= new EventHandler (OnEventHandler
);
516 dg
.HeaderFont
= null;
517 Assert
.AreEqual (header_font
, dg
.HeaderFont
, "A1");
518 Assert
.IsFalse (eventhandled
, "A2");
522 public void HeaderFontNull2 ()
524 DataGridTableStyle dg
= new DataGridTableStyle ();
525 Font header_font
= dg
.HeaderFont
;
527 Font new_font
= new Font ("Helvetica", 8.5f
, GraphicsUnit
.Point
);
529 dg
.HeaderFont
= new_font
;
530 Assert
.AreEqual (new_font
, dg
.HeaderFont
, "A1");
532 eventhandled
= false;
533 dg
.HeaderFontChanged
+= new EventHandler (OnEventHandler
);
534 dg
.HeaderFont
= null;
536 Assert
.AreEqual (header_font
, dg
.HeaderFont
, "A2");
537 Assert
.IsTrue (eventhandled
, "A3");
541 public void MappingNameNull ()
543 DataGridTableStyle dg
= new DataGridTableStyle ();
544 Assert
.AreEqual ("", dg
.MappingName
, "A1");
545 eventhandled
= false;
546 dg
.MappingNameChanged
+= new EventHandler (OnEventHandler
);
547 dg
.MappingName
= null;
548 Assert
.AreEqual ("", dg
.MappingName
, "A2");
549 Assert
.IsFalse (eventhandled
, "A3");