2007-01-10 Chris Toshok <toshok@ximian.com>
[mono-project.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / DataGridTableStyleTest.cs
blobdff3f8dfe7e4bf65cd9aba39de054ae5b67ee658
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:
8 //
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)
22 // Authors:
23 // Jordi Mas i Hernandez <jordi@ximian.com>
24 // Chris Toshok <toshok@ximian.com>
28 using System;
29 using System.Collections;
30 using System.ComponentModel;
31 using System.Drawing;
32 using System.Windows.Forms;
33 using System.Xml;
34 using NUnit.Framework;
36 namespace MonoTests.System.Windows.Forms
38 [TestFixture]
39 public class DataGridTableStyleTest
41 private bool eventhandled;
43 [TearDown]
44 public void Clean() {}
46 [SetUp]
47 public void GetReady ()
51 [Test]
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");
65 [Test]
66 public void TestAllowSortingChangedEvent ()
68 DataGridTableStyle dg = new DataGridTableStyle ();
69 eventhandled = false;
70 dg.AllowSortingChanged += new EventHandler (OnEventHandler);
71 dg.AllowSorting = !dg.AllowSorting;
72 Assert.AreEqual (true, eventhandled, "A1");
75 [Test]
76 [ExpectedException (typeof (ArgumentException))]
77 public void TestAllowSortingChangedEvent_default ()
79 DataGridTableStyle dg = new DataGridTableStyle (true);
80 eventhandled = false;
81 dg.AllowSortingChanged += new EventHandler (OnEventHandler);
82 dg.AllowSorting = !dg.AllowSorting;
83 Assert.AreEqual (true, eventhandled, "A2");
86 [Test]
87 public void TestAlternatingBackColorChangedEvent ()
89 DataGridTableStyle dg = new DataGridTableStyle ();
90 eventhandled = false;
91 dg.AlternatingBackColorChanged += new EventHandler (OnEventHandler);
92 dg.AlternatingBackColor = Color.Red;
93 Assert.AreEqual (true, eventhandled, "A1");
96 [Test]
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
108 [Test]
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");
124 [Test]
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");
135 [Test]
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");
145 [Test]
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
156 [Test]
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");
172 [Test]
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");
183 [Test]
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");
193 [Test]
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");
204 [Test]
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");
214 [Test]
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");
225 [Test]
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");
235 [Test]
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");
246 [Test]
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");
256 [Test]
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");
267 [Test]
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");
277 [Test]
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");
288 [Test]
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");
298 [Test]
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
311 [Test]
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
322 [Test]
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");
332 [Test]
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");
342 [Test]
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");
352 [Test]
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");
362 [Test]
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");
373 [Test]
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");
383 [Test]
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");
394 [Test]
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");
404 [Test]
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");
414 [Test]
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");
424 [Test]
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");
434 [Test]
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");
444 [Test]
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");
454 [Test]
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");
464 [Test]
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");
475 [Test]
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");
485 [Test]
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)
498 eventhandled = true;
501 [Test]
502 public void DataGridNull ()
504 DataGridTableStyle dg = new DataGridTableStyle ();
505 dg.DataGrid = null;
506 Assert.IsNull (dg.DataGrid, "A1");
509 [Test]
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");
521 [Test]
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");
540 [Test]
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");