Rename Managed.Windows.Forms to System.Windows.Forms for consistency.
[mono.git] / mcs / class / System.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 : TestHelper
40         {
41                 private bool eventhandled;
42
43                 [Test]
44                 public void TestDefaultValues ()
45                 {
46                         DataGridTableStyle dg = new DataGridTableStyle ();
47
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");
55                 }
56
57                 [Test]
58                 public void TestAllowSortingChangedEvent ()
59                 {
60                         DataGridTableStyle dg = new DataGridTableStyle ();
61                         eventhandled = false;
62                         dg.AllowSortingChanged   += new EventHandler (OnEventHandler);
63                         dg.AllowSorting = !dg.AllowSorting;
64                         Assert.AreEqual (true, eventhandled, "A1");
65                 }
66
67                 [Test]
68                 [ExpectedException (typeof (ArgumentException))]
69                 public void TestAllowSortingChangedEvent_default ()
70                 {
71                         DataGridTableStyle dg = new DataGridTableStyle (true);
72                         eventhandled = false;
73                         dg.AllowSortingChanged   += new EventHandler (OnEventHandler);
74                         dg.AllowSorting = !dg.AllowSorting;
75                         Assert.AreEqual (true, eventhandled, "A2");
76                 }
77
78                 [Test]
79                 public void TestAlternatingBackColorChangedEvent ()
80                 {
81                         DataGridTableStyle dg = new DataGridTableStyle ();
82                         eventhandled = false;
83                         dg.AlternatingBackColorChanged  += new EventHandler (OnEventHandler);
84                         dg.AlternatingBackColor = Color.Red;
85                         Assert.AreEqual (true, eventhandled, "A1");
86                 }
87
88                 [Test]
89                 [ExpectedException (typeof (ArgumentException))]
90                 public void TestAlternatingBackColorChangedEvent_default ()
91                 {
92                         DataGridTableStyle dg = new DataGridTableStyle (true);
93                         eventhandled = false;
94                         dg.AlternatingBackColorChanged  += new EventHandler (OnEventHandler);
95                         dg.AlternatingBackColor = Color.Red;
96                         Assert.AreEqual (true, eventhandled, "A2");
97                 }
98
99                 // Microsoft lunches ForeColor event instead of BackColor
100                 [Test]
101                 public void TestBackColorChangedEvent ()
102                 {
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");
108
109                         dg = new DataGridTableStyle ();
110                         eventhandled = false;
111                         dg.ForeColorChanged += new EventHandler (OnEventHandler);
112                         dg.BackColor = Color.Yellow;
113                         Assert.AreEqual (true, eventhandled, "A2");
114                 }
115
116                 [Test]
117                 [ExpectedException (typeof (ArgumentException))]
118                 public void TestBackColorChangedEvent_default ()
119                 {
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");
125                 }
126
127                 [Test]
128                 public void TestColumnHeadersVisibleChangedEvent ()
129                 {
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");
135                 }
136
137                 [Test]
138                 public void TestColumnHeadersVisibleChangedEvent_default ()
139                 {
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");
145                 }
146
147                 // Microsoft lunches BackColor event instead of ForeColor
148                 [Test]
149                 public void TestForeColorChangedEvent ()
150                 {
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");
156
157                         dg = new DataGridTableStyle ();
158                         eventhandled = false;
159                         dg.BackColorChanged  += new EventHandler (OnEventHandler);
160                         dg.ForeColor = Color.Red;
161                         Assert.AreEqual (true, eventhandled, "A2");
162                 }
163
164                 [Test]
165                 [ExpectedException (typeof (ArgumentException))]
166                 public void TestForeColorChangedEvent_default ()
167                 {
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");
173                 }
174
175                 [Test]
176                 public void TestGridLineColorChangedEvent ()
177                 {
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");
183                 }
184
185                 [Test]
186                 [ExpectedException (typeof (ArgumentException))]
187                 public void TestGridLineColorChangedEvent_default ()
188                 {
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");
194                 }
195
196                 [Test]
197                 public void TestGridLineStyleChangedEvent ()
198                 {
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");
204                 }
205
206                 [Test]
207                 [ExpectedException (typeof (ArgumentException))]
208                 public void TestGridLineStyleChangedEvent_default ()
209                 {
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");
215                 }
216
217                 [Test]
218                 public void TestHeaderBackColorChangedEvent ()
219                 {
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");
225                 }
226
227                 [Test]
228                 [ExpectedException (typeof (ArgumentException))]
229                 public void TestHeaderBackColorChangedEvent_default ()
230                 {
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");
236                 }
237
238                 [Test]
239                 public void TestHeaderFontChangedEvent ()
240                 {
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");
246                 }
247
248                 [Test]
249                 [ExpectedException (typeof (ArgumentException))]
250                 public void TestHeaderFontChangedEvent_default ()
251                 {
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");
257                 }
258
259                 [Test]
260                 public void TestHeaderForeColorChangedEvent ()
261                 {
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");
267                 }
268
269                 [Test]
270                 [ExpectedException (typeof (ArgumentException))]
271                 public void TestHeaderForeColorChangedEvent_default ()
272                 {
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");
278                 }
279
280                 [Test]
281                 public void TestLinkColorChangedEvent ()
282                 {
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");
288                 }
289
290                 [Test]
291                 [ExpectedException (typeof (ArgumentException))]
292                 public void TestLinkColorChangedEvent_default ()
293                 {
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");
299                 }
300
301
302                 // Microsoft is not firing any event
303                 [Test]
304                 public void TestLinkHoverColorChangedEvent ()
305                 {
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");
311                 }
312
313                 // Microsoft is not firing any event
314                 [Test]
315                 public void TestLinkHoverColorChangedEvent_default ()
316                 {
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");
322                 }
323
324                 [Test]
325                 public void TestMappingNameChangedEvent ()
326                 {
327                         DataGridTableStyle dg = new DataGridTableStyle ();
328                         eventhandled = false;
329                         dg.MappingNameChanged += new EventHandler (OnEventHandler);
330                         dg.MappingName = "name1";
331                         Assert.AreEqual (true, eventhandled, "A1");
332                 }
333
334                 [Test]
335                 public void TestMappingNameChangedEvent_default ()
336                 {
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");
342                 }
343
344                 [Test]
345                 public void TestPreferredColumnWidthChangedEvent ()
346                 {
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");
352                 }
353
354                 [Test]
355                 [ExpectedException (typeof (ArgumentException))]
356                 public void TestPreferredColumnWidthChangedEvent_default ()
357                 {
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");
363                 }
364
365                 [Test]
366                 public void TestPreferredRowHeightChangedEvent ()
367                 {
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");
373                 }
374
375                 [Test]
376                 [ExpectedException (typeof (ArgumentException))]
377                 public void TestPreferredRowHeightChangedEvent_default ()
378                 {
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");
384                 }
385
386                 [Test]
387                 public void TestReadOnlyChangedEvent ()
388                 {
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");
394                 }
395
396                 [Test]
397                 public void TestReadOnlyChangedEvent_default ()
398                 {
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");
404                 }
405
406                 [Test]
407                 public void TestRowHeadersVisibleChangedEvent ()
408                 {
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");
414                 }
415
416                 [Test]
417                 public void TestRowHeadersVisibleChangedEvent_default ()
418                 {
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");
424                 }
425
426                 [Test]
427                 public void TestRowHeaderWidthChangedEvent ()
428                 {
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");
434                 }
435
436                 [Test]
437                 public void TestRowHeaderWidthChangedEvent_default ()
438                 {
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");
444                 }
445
446                 [Test]
447                 public void TestSelectionBackColorChangedEvent ()
448                 {
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");
454                 }
455
456                 [Test]
457                 [ExpectedException (typeof (ArgumentException))]
458                 public void TestSelectionBackColorChangedEvent_default ()
459                 {
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");
465                 }
466
467                 [Test]
468                 public void TestSelectionForeColorChangedEvent ()
469                 {
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");
475                 }
476
477                 [Test]
478                 [ExpectedException (typeof (ArgumentException))]
479                 public void TestSelectionForeColorChangedEvent_default ()
480                 {
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");
486                 }
487
488                 public void OnEventHandler (object sender, EventArgs e)
489                 {
490                         eventhandled = true;
491                 }
492
493                 [Test]
494                 public void DataGridNull ()
495                 {
496                         DataGridTableStyle dg = new DataGridTableStyle ();
497                         dg.DataGrid = null;
498                         Assert.IsNull (dg.DataGrid, "A1");
499                 }
500
501                 [Test]
502                 public void HeaderFontNull ()
503                 {
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");
511                 }
512
513                 [Test]
514                 public void HeaderFontNull2 ()
515                 {
516                         DataGridTableStyle dg = new DataGridTableStyle ();
517                         Font header_font = dg.HeaderFont;
518
519                         Font new_font = new Font ("Helvetica", 8.5f, GraphicsUnit.Point);
520
521                         dg.HeaderFont = new_font;
522                         Assert.AreEqual (new_font, dg.HeaderFont, "A1");
523
524                         eventhandled = false;
525                         dg.HeaderFontChanged += new EventHandler (OnEventHandler);
526                         dg.HeaderFont = null;
527
528                         Assert.AreEqual (header_font, dg.HeaderFont, "A2");
529                         Assert.IsTrue (eventhandled, "A3");
530                 }
531
532                 [Test]
533                 public void MappingNameNull ()
534                 {
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");
542                 }
543         }
544 }