2006-12-19 Daniel Nauck <dna@mono-project.de>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / DataGridTableStyleTest.cs
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.
11 //
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.
19 //
20 // Copyright (c) 2005,2006 Novell, Inc. (http://www.novell.com)
21 //
22 // Authors:
23 //      Jordi Mas i Hernandez <jordi@ximian.com>
24 //      Chris Toshok <toshok@ximian.com>
25 //
26 //
27
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;
35
36 namespace MonoTests.System.Windows.Forms
37 {
38         [TestFixture]
39         public class DataGridTableStyleTest
40         {
41                 private bool eventhandled;
42
43                 [TearDown]
44                 public void Clean() {}
45
46                 [SetUp]
47                 public void GetReady ()
48                 {
49                 }
50
51                 [Test]
52                 public void TestDefaultValues ()
53                 {
54                         DataGridTableStyle dg = new DataGridTableStyle ();
55
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");
63                 }
64
65                 [Test]
66                 public void TestAllowSortingChangedEvent ()
67                 {
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");
73                 }
74
75                 [Test]
76                 [ExpectedException (typeof (ArgumentException))]
77                 public void TestAllowSortingChangedEvent_default ()
78                 {
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");
84                 }
85
86                 [Test]
87                 public void TestAlternatingBackColorChangedEvent ()
88                 {
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");
94                 }
95
96                 [Test]
97                 [ExpectedException (typeof (ArgumentException))]
98                 public void TestAlternatingBackColorChangedEvent_default ()
99                 {
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");
105                 }
106
107                 // Microsoft lunches ForeColor event instead of BackColor
108                 [Test]
109                 public void TestBackColorChangedEvent ()
110                 {
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");
116
117                         dg = new DataGridTableStyle ();
118                         eventhandled = false;
119                         dg.ForeColorChanged += new EventHandler (OnEventHandler);
120                         dg.BackColor = Color.Yellow;
121                         Assert.AreEqual (true, eventhandled, "A2");
122                 }
123
124                 [Test]
125                 [ExpectedException (typeof (ArgumentException))]
126                 public void TestBackColorChangedEvent_default ()
127                 {
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");
133                 }
134
135                 [Test]
136                 public void TestColumnHeadersVisibleChangedEvent ()
137                 {
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");
143                 }
144
145                 [Test]
146                 public void TestColumnHeadersVisibleChangedEvent_default ()
147                 {
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");
153                 }
154
155                 // Microsoft lunches BackColor event instead of ForeColor
156                 [Test]
157                 public void TestForeColorChangedEvent ()
158                 {
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");
164
165                         dg = new DataGridTableStyle ();
166                         eventhandled = false;
167                         dg.BackColorChanged  += new EventHandler (OnEventHandler);
168                         dg.ForeColor = Color.Red;
169                         Assert.AreEqual (true, eventhandled, "A2");
170                 }
171
172                 [Test]
173                 [ExpectedException (typeof (ArgumentException))]
174                 public void TestForeColorChangedEvent_default ()
175                 {
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");
181                 }
182
183                 [Test]
184                 public void TestGridLineColorChangedEvent ()
185                 {
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");
191                 }
192
193                 [Test]
194                 [ExpectedException (typeof (ArgumentException))]
195                 public void TestGridLineColorChangedEvent_default ()
196                 {
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");
202                 }
203
204                 [Test]
205                 public void TestGridLineStyleChangedEvent ()
206                 {
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");
212                 }
213
214                 [Test]
215                 [ExpectedException (typeof (ArgumentException))]
216                 public void TestGridLineStyleChangedEvent_default ()
217                 {
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");
223                 }
224
225                 [Test]
226                 public void TestHeaderBackColorChangedEvent ()
227                 {
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");
233                 }
234
235                 [Test]
236                 [ExpectedException (typeof (ArgumentException))]
237                 public void TestHeaderBackColorChangedEvent_default ()
238                 {
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");
244                 }
245
246                 [Test]
247                 public void TestHeaderFontChangedEvent ()
248                 {
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");
254                 }
255
256                 [Test]
257                 [ExpectedException (typeof (ArgumentException))]
258                 public void TestHeaderFontChangedEvent_default ()
259                 {
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");
265                 }
266
267                 [Test]
268                 public void TestHeaderForeColorChangedEvent ()
269                 {
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");
275                 }
276
277                 [Test]
278                 [ExpectedException (typeof (ArgumentException))]
279                 public void TestHeaderForeColorChangedEvent_default ()
280                 {
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");
286                 }
287
288                 [Test]
289                 public void TestLinkColorChangedEvent ()
290                 {
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");
296                 }
297
298                 [Test]
299                 [ExpectedException (typeof (ArgumentException))]
300                 public void TestLinkColorChangedEvent_default ()
301                 {
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");
307                 }
308
309
310                 // Microsoft is not firing any event
311                 [Test]
312                 public void TestLinkHoverColorChangedEvent ()
313                 {
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");
319                 }
320
321                 // Microsoft is not firing any event
322                 [Test]
323                 public void TestLinkHoverColorChangedEvent_default ()
324                 {
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");
330                 }
331
332                 [Test]
333                 public void TestMappingNameChangedEvent ()
334                 {
335                         DataGridTableStyle dg = new DataGridTableStyle ();
336                         eventhandled = false;
337                         dg.MappingNameChanged += new EventHandler (OnEventHandler);
338                         dg.MappingName = "name1";
339                         Assert.AreEqual (true, eventhandled, "A1");
340                 }
341
342                 [Test]
343                 public void TestMappingNameChangedEvent_default ()
344                 {
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");
350                 }
351
352                 [Test]
353                 public void TestPreferredColumnWidthChangedEvent ()
354                 {
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");
360                 }
361
362                 [Test]
363                 [ExpectedException (typeof (ArgumentException))]
364                 public void TestPreferredColumnWidthChangedEvent_default ()
365                 {
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");
371                 }
372
373                 [Test]
374                 public void TestPreferredRowHeightChangedEvent ()
375                 {
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");
381                 }
382
383                 [Test]
384                 [ExpectedException (typeof (ArgumentException))]
385                 public void TestPreferredRowHeightChangedEvent_default ()
386                 {
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");
392                 }
393
394                 [Test]
395                 public void TestReadOnlyChangedEvent ()
396                 {
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");
402                 }
403
404                 [Test]
405                 public void TestReadOnlyChangedEvent_default ()
406                 {
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");
412                 }
413
414                 [Test]
415                 public void TestRowHeadersVisibleChangedEvent ()
416                 {
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");
422                 }
423
424                 [Test]
425                 public void TestRowHeadersVisibleChangedEvent_default ()
426                 {
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");
432                 }
433
434                 [Test]
435                 public void TestRowHeaderWidthChangedEvent ()
436                 {
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");
442                 }
443
444                 [Test]
445                 public void TestRowHeaderWidthChangedEvent_default ()
446                 {
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");
452                 }
453
454                 [Test]
455                 public void TestSelectionBackColorChangedEvent ()
456                 {
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");
462                 }
463
464                 [Test]
465                 [ExpectedException (typeof (ArgumentException))]
466                 public void TestSelectionBackColorChangedEvent_default ()
467                 {
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");
473                 }
474
475                 [Test]
476                 public void TestSelectionForeColorChangedEvent ()
477                 {
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");
483                 }
484
485                 [Test]
486                 [ExpectedException (typeof (ArgumentException))]
487                 public void TestSelectionForeColorChangedEvent_default ()
488                 {
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");
494                 }
495
496                 public void OnEventHandler (object sender, EventArgs e)
497                 {
498                         eventhandled = true;
499                 }
500
501                 [Test]
502                 public void DataGridNull ()
503                 {
504                         DataGridTableStyle dg = new DataGridTableStyle ();
505                         dg.DataGrid = null;
506                         Assert.IsNull (dg.DataGrid, "A1");
507                 }
508
509                 [Test]
510                 public void HeaderFontNull ()
511                 {
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");
519                 }
520
521                 [Test]
522                 public void HeaderFontNull2 ()
523                 {
524                         DataGridTableStyle dg = new DataGridTableStyle ();
525                         Font header_font = dg.HeaderFont;
526
527                         Font new_font = new Font ("Helvetica", 8.5f, GraphicsUnit.Point);
528
529                         dg.HeaderFont = new_font;
530                         Assert.AreEqual (new_font, dg.HeaderFont, "A1");
531
532                         eventhandled = false;
533                         dg.HeaderFontChanged += new EventHandler (OnEventHandler);
534                         dg.HeaderFont = null;
535
536                         Assert.AreEqual (header_font, dg.HeaderFont, "A2");
537                         Assert.IsTrue (eventhandled, "A3");
538                 }
539
540                 [Test]
541                 public void MappingNameNull ()
542                 {
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");
550                 }
551         }
552 }