2009-07-17 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ScrollBarTest.cs
1 //
2 // Copyright (c) 2005 Novell, Inc.
3 //
4 // Authors:
5 //      Hisham Mardam Bey (hisham.mardambey@gmail.com)
6 //      Ritvik Mayank (mritvik@novell.com)
7 //
8 //
9
10 using System;
11 using NUnit.Framework;
12 using System.Windows.Forms;
13 using System.Drawing;
14 using System.Collections;
15
16 namespace MonoTests.System.Windows.Forms
17 {
18
19 public class MyScrollBar : HScrollBar
20     {
21             private ArrayList results = new ArrayList ();
22      public MyScrollBar () : base ()
23              {}
24              
25 #if NET_2_0
26                 public Padding PublicDefaultMargin { get { return base.DefaultMargin; } }
27 #endif
28
29             protected override void OnBackColorChanged (EventArgs e)
30              {
31                      results.Add ("OnBackColorChanged");
32                      base.OnBackColorChanged (e);
33              }
34
35             protected override void OnBackgroundImageChanged (EventArgs e)
36              {
37                      results.Add ("OnBackgroundImageChanged");
38                      base.OnBackgroundImageChanged (e);
39              }
40
41             protected override void OnClick (EventArgs e)
42              {
43                      results.Add ("OnClick");
44                      base.OnClick (e);
45              }
46
47             protected override void OnDoubleClick (EventArgs e)
48              {
49                      results.Add ("OnDoubleClick");
50                      base.OnDoubleClick (e);
51              }
52
53             protected override void OnFontChanged (EventArgs e)
54              {
55                      results.Add ("OnFontChanged");
56                      base.OnFontChanged (e);
57              }
58
59             protected override void OnForeColorChanged (EventArgs e)
60              {
61                      results.Add ("OnForeColorChanged");
62                      base.OnForeColorChanged (e);
63              }
64
65             protected override void OnImeModeChanged (EventArgs e)
66              {
67                      results.Add ("OnImeModeChanged");
68                      base.OnImeModeChanged (e);
69              }
70
71             protected override void OnMouseDown (MouseEventArgs e)
72              {
73                      results.Add ("OnMouseDown");
74                      base.OnMouseDown (e);
75              }
76
77             protected override void OnMouseMove (MouseEventArgs e)
78              {
79                      results.Add ("OnMouseMove");
80                      base.OnMouseMove (e);
81              }
82
83             protected override void OnMouseEnter (EventArgs e)
84              {
85                      results.Add ("OnMouseEnter");
86                      base.OnMouseEnter (e);
87              }
88
89             protected override void OnMouseLeave (EventArgs e)
90              {
91                      results.Add ("OnMouseLeave");
92                      base.OnMouseLeave (e);
93              }
94
95             protected override void OnMouseHover (EventArgs e)
96              {
97                      results.Add ("OnMouseHover");
98                      base.OnMouseHover (e);
99              }
100
101             protected override void OnMouseUp (MouseEventArgs e)
102              {
103                      results.Add ("OnMouseUp");
104                      base.OnMouseUp (e);
105              }
106
107             protected override void OnHandleCreated (EventArgs e)
108              {
109                      results.Add ("OnHandleCreated");
110                      base.OnHandleCreated (e);
111              }
112
113             protected override void OnBindingContextChanged (EventArgs e)
114              {
115                      results.Add ("OnBindingContextChanged");
116                      base.OnBindingContextChanged (e);
117              }
118
119             protected override void OnInvalidated (InvalidateEventArgs e)
120              {
121                      results.Add("OnInvalidated");
122                      base.OnInvalidated (e);
123              }
124
125             protected override void OnResize (EventArgs e)
126              {
127                      results.Add("OnResize");
128                      base.OnResize (e);
129              }
130
131             protected override void OnSizeChanged (EventArgs e)
132              {
133                      results.Add("OnSizeChanged");
134                      base.OnSizeChanged (e);
135              }
136
137             protected override void OnLayout (LayoutEventArgs e)
138              {
139                      results.Add("OnLayout");
140                      base.OnLayout (e);
141              }
142
143             protected override void OnVisibleChanged (EventArgs e)
144              {
145                      results.Add("OnVisibleChanged");
146                      base.OnVisibleChanged (e);
147              }
148
149             protected override void OnScroll (ScrollEventArgs e)
150              {
151                      results.Add("OnScroll");
152                      base.OnScroll (e);
153              }
154
155             protected override void OnTextChanged (EventArgs e)
156              {
157                      results.Add("OnTextChanged");
158                      base.OnTextChanged (e);
159              }
160
161             protected override void OnValueChanged (EventArgs e)
162              {
163                      results.Add("OnValueChanged");
164                      base.OnValueChanged (e);
165              }
166
167             protected override void OnPaint (PaintEventArgs e)
168              {
169                      results.Add("OnPaint");
170                      base.OnPaint (e);
171              }
172
173             public ArrayList Results {
174                     get {       return results; }
175             }
176
177             //public void MoveMouse ()
178             // {
179             //         Message m;
180
181             //         m = new Message ();
182
183             //         m.Msg = (int)WndMsg.WM_NCHITTEST;
184             //         m.HWnd = this.Handle;
185             //         m.WParam = (IntPtr)0x0;
186             //         m.LParam = (IntPtr)0x1c604ea;
187             //         this.WndProc(ref m);
188
189             //         m.Msg = (int)WndMsg.WM_SETCURSOR;
190             //         m.HWnd = this.Handle;
191             //         m.WParam = (IntPtr)0x100448;
192             //         m.LParam = (IntPtr)0x2000001;
193             //         this.WndProc(ref m);
194
195             //         m.Msg = (int)WndMsg.WM_MOUSEFIRST;
196             //         m.HWnd = this.Handle;
197             //         m.WParam = (IntPtr)0x0;
198             //         m.LParam = (IntPtr)0x14000b;
199             //         this.WndProc(ref m);
200
201             //         m.Msg = (int)WndMsg.WM_MOUSEHOVER;
202             //         m.HWnd = this.Handle;
203             //         m.WParam = (IntPtr)0x0;
204             //         m.LParam = (IntPtr)0x14000b;
205             //         this.WndProc(ref m);
206             // }
207
208             //public new void MouseClick()
209             // {
210
211             //         Message m;
212
213             //         m = new Message();
214
215             //         m.Msg = (int)WndMsg.WM_LBUTTONDOWN;
216             //         m.HWnd = this.Handle;
217             //         m.WParam = (IntPtr)0x01;
218             //         m.LParam = (IntPtr)0x9004f;
219             //         this.WndProc(ref m);
220
221             //         m = new Message();
222
223             //         m.Msg = (int)WndMsg.WM_LBUTTONUP;
224             //         m.HWnd = this.Handle;
225             //         m.WParam = (IntPtr)0x01;
226             //         m.LParam = (IntPtr)0x9004f;
227             //         this.WndProc(ref m);
228             // }
229
230             //public new void MouseDoubleClick ()
231             // {
232             //         this.MouseClick ();
233             //         this.MouseClick ();
234             // }
235             //public void MouseRightDown()
236             // {
237             //         Message m;
238
239             //         m = new Message();
240
241             //         m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
242             //         m.HWnd = this.Handle;
243             //         m.WParam = (IntPtr)0x01;
244             //         m.LParam = (IntPtr)0x9004f;
245             //         this.WndProc(ref m);
246             // }
247
248             //public void MouseRightUp()
249             // {
250             //         Message m;
251
252             //         m = new Message();
253
254             //         m.Msg = (int)WndMsg.WM_RBUTTONUP;
255             //         m.HWnd = this.Handle;
256             //         m.WParam = (IntPtr)0x01;
257             //         m.LParam = (IntPtr)0x9004f;
258             //         this.WndProc(ref m);
259             // }
260
261             public void ScrollNow ()
262              {
263                      Message m;
264
265                      m = new Message ();
266
267                      m.Msg = 8468;
268                      m.HWnd = this.Handle;
269                      m.WParam = (IntPtr)0x1;
270                      m.LParam = (IntPtr)0x1a051a;
271                      this.WndProc(ref m);
272
273                      m.Msg = 233;
274                      m.HWnd = this.Handle;
275                      m.WParam = (IntPtr)0x1;
276                      m.LParam = (IntPtr)0x12eb34;
277                      this.WndProc(ref m);
278              }
279     }
280    [TestFixture]
281    public class ScrollBarTest : TestHelper
282     {
283             [Test]
284             public void PubPropTest ()
285                {
286                        MyScrollBar myscrlbar = new MyScrollBar ();
287
288                        // B
289                        myscrlbar.BackColor = Color.Red;
290                        Assert.AreEqual (255, myscrlbar.BackColor.R, "B2");
291                        myscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
292                        Assert.AreEqual (16, myscrlbar.BackgroundImage.Height, "B3");
293
294                        // F
295                        Assert.AreEqual ("ControlText", myscrlbar.ForeColor.Name, "F1");
296
297                        // I
298                        //Assert.AreEqual (ImeMode.Disable, myscrlbar.ImeMode, "I1");
299
300                        // L
301                        Assert.AreEqual (10, myscrlbar.LargeChange, "L1");
302
303                        // M
304                        Assert.AreEqual (100, myscrlbar.Maximum, "M1");
305                        Assert.AreEqual (0, myscrlbar.Minimum, "M2");
306                        myscrlbar.Maximum = 300;
307                        myscrlbar.Minimum = 100;
308                        Assert.AreEqual (300, myscrlbar.Maximum, "M3");
309                        Assert.AreEqual (100, myscrlbar.Minimum, "M4");
310
311                        // S
312                        Assert.AreEqual (null, myscrlbar.Site, "S1");
313                        Assert.AreEqual (1, myscrlbar.SmallChange, "S2");
314                        myscrlbar.SmallChange = 10;
315                        Assert.AreEqual (10, myscrlbar.SmallChange, "S3");
316
317                        // T
318                        Assert.AreEqual (false, myscrlbar.TabStop, "T1");
319                        myscrlbar.TabStop = true;
320                        Assert.AreEqual (true, myscrlbar.TabStop, "T2");
321                        Assert.AreEqual ("", myscrlbar.Text, "T3");
322                        myscrlbar.Text = "MONO SCROLLBAR";
323                        Assert.AreEqual ("MONO SCROLLBAR", myscrlbar.Text, "T4");
324
325                        // V
326                        Assert.AreEqual (100, myscrlbar.Value, "V1");
327                        myscrlbar.Value = 150;
328                        Assert.AreEqual (150, myscrlbar.Value, "V2");
329                }
330
331             [Test]
332 #if NET_2_0
333                 [ExpectedException (typeof (ArgumentOutOfRangeException))]
334 #else
335            [ExpectedException (typeof (ArgumentException))]
336 #endif
337            public void ExceptionValueTest ()
338                {
339                        MyScrollBar myscrlbar = new MyScrollBar ();
340                        myscrlbar.Minimum = 10;
341                        myscrlbar.Maximum = 20;
342                        myscrlbar.Value = 9;
343                        myscrlbar.Value = 21;
344                }
345
346             [Test]
347 #if NET_2_0
348                 [ExpectedException (typeof (ArgumentOutOfRangeException))]
349 #else
350            [ExpectedException (typeof (ArgumentException))]
351 #endif
352            public void ExceptionSmallChangeTest ()
353                {
354                        MyScrollBar myscrlbar = new MyScrollBar ();
355                        myscrlbar.SmallChange = -1;
356                }
357
358             [Test]
359 #if NET_2_0
360                 [ExpectedException (typeof (ArgumentOutOfRangeException))]
361 #else
362            [ExpectedException (typeof (ArgumentException))]
363 #endif
364            public void ExceptionLargeChangeTest ()
365                {
366                        MyScrollBar myscrlbar = new MyScrollBar ();
367                        myscrlbar.LargeChange = -1;
368                }
369
370             [Test]
371             public void PubMethodTest ()
372                {
373                        MyScrollBar myscrlbar = new MyScrollBar ();
374                        myscrlbar.Text = "New HScrollBar";
375                        Assert.AreEqual ("MonoTests.System.Windows.Forms.MyScrollBar, Minimum: 0, Maximum: 100, Value: 0",
376                                         myscrlbar.ToString (), "T5");
377                }
378
379 #if NET_2_0
380            [Test]
381            public void DefaultMarginTest ()
382            {
383                    MyScrollBar s = new MyScrollBar ();
384                    Assert.AreEqual (new Padding (0), s.PublicDefaultMargin, "A1");
385            }
386            
387                 [Test]
388                 public void GetScaledBoundsTest ()
389                 {
390                         ScaleScrollBar c = new ScaleScrollBar ();
391                         
392                         Rectangle r = new Rectangle (10, 20, 30, 40);
393
394                         Assert.AreEqual (new Rectangle (20, 10, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.All), "A1");
395                         Assert.AreEqual (new Rectangle (20, 10, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Location), "A2");
396                         Assert.AreEqual (new Rectangle (10, 20, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Size), "A3");
397                         Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Height), "A4");
398                         Assert.AreEqual (new Rectangle (20, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.X), "A5");
399                         Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.None), "A6");
400                 }
401                 
402                 private class ScaleScrollBar : ScrollBar
403                 {
404                         public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified)
405                         {
406                                 return base.GetScaledBounds (bounds, factor, specified);
407                         }
408                 }
409
410                 [Test]
411                 public void HScrollGetScaledBoundsTest ()
412                 {
413                         HScaleScrollBar c = new HScaleScrollBar ();
414
415                         Rectangle r = new Rectangle (10, 20, 30, 40);
416
417                         Assert.AreEqual (new Rectangle (20, 10, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.All), "A1");
418                         Assert.AreEqual (new Rectangle (20, 10, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Location), "A2");
419                         Assert.AreEqual (new Rectangle (10, 20, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Size), "A3");
420                         Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Height), "A4");
421                         Assert.AreEqual (new Rectangle (20, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.X), "A5");
422                         Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.None), "A6");
423                 }
424
425                 private class HScaleScrollBar : HScrollBar
426                 {
427                         public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified)
428                         {
429                                 return base.GetScaledBounds (bounds, factor, specified);
430                         }
431                 }
432
433                 [Test]
434                 public void VScrollGetScaledBoundsTest ()
435                 {
436                         VScaleScrollBar c = new VScaleScrollBar ();
437
438                         Rectangle r = new Rectangle (10, 20, 30, 40);
439
440                         Assert.AreEqual (new Rectangle (20, 10, 30, 20), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.All), "A1");
441                         Assert.AreEqual (new Rectangle (20, 10, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Location), "A2");
442                         Assert.AreEqual (new Rectangle (10, 20, 30, 20), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Size), "A3");
443                         Assert.AreEqual (new Rectangle (10, 20, 30, 20), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Height), "A4");
444                         Assert.AreEqual (new Rectangle (20, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.X), "A5");
445                         Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.None), "A6");
446                 }
447
448                 private class VScaleScrollBar : VScrollBar
449                 {
450                         public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified)
451                         {
452                                 return base.GetScaledBounds (bounds, factor, specified);
453                         }
454                 }
455                 
456                 [Test]
457                 public void MaximumValueTest ()
458                 {
459                         ScrollBar s = new VScrollBar ();
460
461                         s.LargeChange = 0;
462                         s.Maximum = 100;
463                         s.Value = 20;
464                         s.Maximum = 0;
465
466                         Assert.AreEqual (0, s.LargeChange, "A1");
467                         Assert.AreEqual (0, s.Maximum, "A2");
468                         Assert.AreEqual (0, s.Value, "A3");
469                 }
470 #endif
471
472                 [Test]
473                 public void LargeSmallerThanSmallChange ()
474                 {
475                         ScrollBar s = new VScrollBar ();
476
477                         s.LargeChange = 0;
478
479                         Assert.AreEqual (0, s.LargeChange, "A1");
480                         Assert.AreEqual (0, s.SmallChange, "A2");
481                         
482                         s.SmallChange = 10;
483
484                         Assert.AreEqual (0, s.LargeChange, "A3");
485                         Assert.AreEqual (0, s.SmallChange, "A4");
486                         
487                         s.LargeChange = 15;
488
489                         Assert.AreEqual (15, s.LargeChange, "A5");
490                         Assert.AreEqual (10, s.SmallChange, "A6");
491                         
492                         s.LargeChange = 5;
493
494                         Assert.AreEqual (5, s.LargeChange, "A7");
495                         Assert.AreEqual (5, s.SmallChange, "A8");
496                 }
497                 
498                 [Test]
499                 public void CalculateLargeChange ()
500                 {
501                         ScrollBar s = new HScrollBar ();
502
503                         s.Minimum = -50;
504                         s.Maximum = 50;
505                         s.LargeChange = 1000;
506
507                         Assert.AreEqual (101, s.LargeChange, "A1");
508
509                         s.Maximum = 200;
510                         s.Minimum = 199;
511                         s.LargeChange = 1000;
512
513                         Assert.AreEqual (2, s.LargeChange, "A2");
514
515                         s.Minimum = 200;
516                         s.LargeChange = 1000;
517
518                         Assert.AreEqual (1, s.LargeChange, "A3");
519                 }
520     }
521
522    [TestFixture]
523    public class ScrollBarEventTest : TestHelper
524     {
525             static bool eventhandled = false;
526             public void ScrollBar_EventHandler (object sender,EventArgs e)
527              {
528                      eventhandled = true;
529              }
530
531             public void ScrollBarMouse_EventHandler (object sender,MouseEventArgs e)
532              {
533                      eventhandled = true;
534              }
535
536             public void ScrollBarScroll_EventHandler (object sender,ScrollEventArgs e)
537              {
538                      eventhandled = true;
539              }
540
541             public void ScrollBarPaint_EventHandler (object sender,PaintEventArgs e)
542              {
543                      eventhandled = true;
544              }
545
546             [Test]
547             public void BackColorChangedTest ()
548                {
549                        Form myform = new Form ();
550                        myform.ShowInTaskbar = false;
551                        myform.Visible = true;
552                        ScrollBar myHscrlbar = new HScrollBar ();
553                        myform.Controls.Add (myHscrlbar);
554                        myHscrlbar.BackColorChanged += new EventHandler (ScrollBar_EventHandler);
555                        myHscrlbar.BackColor = Color.Red;
556                        Assert.AreEqual (true, eventhandled, "B4");
557                        eventhandled = false;
558                        myform.Dispose ();
559                }
560
561             [Test]
562             public void BackgroundImageChangedTest ()
563                {
564                        Form myform = new Form ();
565                        myform.ShowInTaskbar = false;
566                        myform.Visible = true;
567                        ScrollBar myHscrlbar = new HScrollBar ();
568                        myform.Controls.Add (myHscrlbar);
569                        myHscrlbar.BackgroundImageChanged += new EventHandler (ScrollBar_EventHandler);
570                        myHscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
571                        Assert.AreEqual (true, eventhandled, "B5");
572                        eventhandled = false;
573                        myform.Dispose ();
574                }
575
576             [Test]
577             public void FontChangedTest ()
578                {
579                        Form myform = new Form ();
580                        myform.ShowInTaskbar = false;
581                        myform.Visible = true;
582                        ScrollBar myHscrlbar = new HScrollBar ();
583                        myform.Controls.Add (myHscrlbar);
584                        myHscrlbar.Font = new Font (FontFamily.GenericMonospace, 10);
585                        myHscrlbar.FontChanged += new EventHandler (ScrollBar_EventHandler);
586                        FontDialog myFontDialog = new FontDialog();
587                        myHscrlbar.Font = myFontDialog.Font;
588                        Assert.AreEqual (true, eventhandled, "F2");
589                        eventhandled = false;
590                        myform.Dispose ();
591                }
592
593             [Test]
594             public void ForeColorChangedTest ()
595                {
596                        Form myform = new Form ();
597                        myform.ShowInTaskbar = false;
598                        myform.Visible = true;
599                        ScrollBar myHscrlbar = new HScrollBar ();
600                        myform.Controls.Add (myHscrlbar);
601                        myHscrlbar.ForeColorChanged += new EventHandler (ScrollBar_EventHandler);
602                        myHscrlbar.ForeColor = Color.Azure;
603                        Assert.AreEqual (true, eventhandled, "F3");
604                        eventhandled = false;
605                        myform.Dispose ();
606                }
607
608             [Test]
609             public void ImeModehangedTest ()
610                {
611                        Form myform = new Form ();
612                        myform.ShowInTaskbar = false;
613                        myform.Visible = true;
614                        ScrollBar myHscrlbar = new HScrollBar ();
615                        myform.Controls.Add (myHscrlbar);
616                        myHscrlbar.ImeModeChanged += new EventHandler (ScrollBar_EventHandler);
617                        myHscrlbar.ImeMode = ImeMode.Katakana;
618                        Assert.AreEqual (true, eventhandled, "I2");
619                        eventhandled = false;
620                        myform.Dispose ();
621                }
622
623             //[Test]
624             //public void MouseDownTest ()
625             //   {
626             //           Form myform = new Form ();
627             //           myform.ShowInTaskbar = false;
628             //           myform.Visible = true;
629             //           MyScrollBar myHscrlbar = new MyScrollBar ();
630             //           myform.Controls.Add (myHscrlbar);
631             //           myHscrlbar.MouseDown += new MouseEventHandler (ScrollBarMouse_EventHandler);
632             //           myHscrlbar.MouseRightDown ();
633
634             //           Assert.AreEqual (true, eventhandled, "M5");
635             //           eventhandled = false;
636             //           myform.Dispose ();
637             //   }
638
639             //[Test]
640             //public void MouseMoveTest ()
641             //   {
642             //           Form myform = new Form ();
643             //           myform.ShowInTaskbar = false;
644             //           myform.Visible = true;
645             //           MyScrollBar myHscrlbar = new MyScrollBar ();
646             //           myform.Controls.Add (myHscrlbar);
647             //           myHscrlbar.MouseMove += new MouseEventHandler (ScrollBarMouse_EventHandler);
648             //           myHscrlbar.MoveMouse ();
649
650             //           Assert.AreEqual (true, eventhandled, "M6");
651             //           eventhandled = false;
652             //           myform.Dispose ();
653             //   }
654
655             //[Test]
656             //public void MouseUpTest ()
657             //   {
658             //           Form myform = new Form ();
659             //           myform.ShowInTaskbar = false;
660             //           myform.Visible = true;
661             //           MyScrollBar myHscrlbar = new MyScrollBar ();
662             //           myform.Controls.Add (myHscrlbar);
663             //           myHscrlbar.MouseUp += new MouseEventHandler (ScrollBarMouse_EventHandler);
664             //           myHscrlbar.MouseRightUp ();
665
666             //           Assert.AreEqual (true, eventhandled, "M7");
667             //           eventhandled = false;
668             //           myform.Dispose ();
669             //   }
670
671             [Test]
672             [Category ("NotWorking")]
673             public void ScrollTest ()
674                {
675                        Form myform = new Form ();
676                        myform.ShowInTaskbar = false;
677                        myform.Visible = true;
678                        MyScrollBar myHscrlbar = new MyScrollBar ();
679                        myform.Controls.Add (myHscrlbar);
680                        myHscrlbar.Scroll += new ScrollEventHandler (ScrollBarScroll_EventHandler);
681                        myHscrlbar.ScrollNow ();
682
683                        Assert.AreEqual (true, eventhandled, "S4");
684                        eventhandled = false;
685                        myform.Dispose ();
686                }
687
688             [Test]
689             public void TextChangedTest ()
690                {
691                        Form myform = new Form ();
692                        myform.ShowInTaskbar = false;
693                        myform.Visible = true;
694                        MyScrollBar myHscrlbar = new MyScrollBar ();
695                        myform.Controls.Add (myHscrlbar);
696                        myHscrlbar.TextChanged += new EventHandler (ScrollBar_EventHandler);
697                        myHscrlbar.Text = "foo";
698
699                        Assert.AreEqual (true, eventhandled, "T6");
700                        eventhandled = false;
701                        myform.Dispose ();
702                }
703
704             [Test]
705             public void ValueChangeTest ()
706                {
707                        Form myform = new Form ();
708                        myform.ShowInTaskbar = false;
709                        myform.Visible = true;
710                        MyScrollBar myHscrlbar = new MyScrollBar ();
711                        myform.Controls.Add (myHscrlbar);
712                        myHscrlbar.Value = 40 ;
713                        myHscrlbar.ValueChanged += new EventHandler (ScrollBar_EventHandler);
714                        myHscrlbar.Value = 50 ;
715                        Assert.AreEqual (true, eventhandled, "V3");
716                        eventhandled = false;
717                        myform.Dispose ();
718                }
719     }
720
721 public class MyHScrollBar : HScrollBar
722     {
723      public MyHScrollBar () : base ()
724              {
725              }
726
727             public Size MyDefaultSize {
728                     get { return DefaultSize; }
729             }
730
731             public CreateParams MyCreateParams {
732                     get { return CreateParams; }
733             }
734     }
735
736    [TestFixture]
737    public class MyHScrollBarTest : TestHelper
738     {
739             [Test]
740             public void ProtectedTest ()
741                {
742                        MyHScrollBar msbar = new MyHScrollBar ();
743
744                        Assert.AreEqual (80, msbar.MyDefaultSize.Width, "D1");
745                         // this is environment dependent.
746                        //Assert.AreEqual (21, msbar.MyDefaultSize.Height, "D2");
747                }
748     }
749
750 public class MyVScrollBar : VScrollBar
751     {
752      public MyVScrollBar () : base ()
753              {
754              }
755
756             public Size MyDefaultSize {
757                     get { return DefaultSize; }
758             }
759
760             public CreateParams MyCreateParams {
761                     get { return CreateParams; }
762             }
763     }
764
765    [TestFixture]
766    public class MyVScrollBarTest : TestHelper
767     {
768             [Test]
769             public void PubMethodTest ()
770                {
771                        MyVScrollBar msbar = new MyVScrollBar ();
772
773                        Assert.AreEqual (RightToLeft.No, msbar.RightToLeft, "R1");
774
775                }
776
777             [Test]
778             public void ProtMethodTest ()
779                {
780                        MyVScrollBar msbar = new MyVScrollBar ();
781
782                         // This is environment dependent.
783                        //Assert.AreEqual (21, msbar.MyDefaultSize.Width, "D3");
784                        Assert.AreEqual (80, msbar.MyDefaultSize.Height, "D4");
785                }
786     }
787
788    [TestFixture]
789    [Ignore("Tests too strict")]
790    public class HScrollBarTestEventsOrder : TestHelper
791     {
792             public string [] ArrayListToString (ArrayList arrlist)
793              {
794                      string [] retval = new string [arrlist.Count];
795                      for (int i = 0; i < arrlist.Count; i++)
796                        retval[i] = (string)arrlist[i];
797                      return retval;
798              }
799
800             [Test]
801             public void CreateEventsOrder ()
802                {
803                        string[] EventsWanted = {
804                                "OnHandleCreated",
805                                  "OnBindingContextChanged",
806                                  "OnBindingContextChanged"
807                        };
808                        Form myform = new Form ();
809                        myform.ShowInTaskbar = false;
810                        myform.Visible = true;
811                        MyScrollBar s = new MyScrollBar ();
812                        myform.Controls.Add (s);
813
814                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
815                        myform.Dispose ();
816                }
817
818             [Test]
819             public void BackColorChangedEventsOrder ()
820                {
821                        string[] EventsWanted = {
822                                "OnHandleCreated",
823                                  "OnBindingContextChanged",
824                                  "OnBindingContextChanged",
825                                  "OnBackColorChanged",
826                                  "OnInvalidated"
827                        };
828                        Form myform = new Form ();
829                        myform.ShowInTaskbar = false;
830                        myform.Visible = true;
831                        MyScrollBar s = new MyScrollBar ();
832                        myform.Controls.Add (s);
833                        s.BackColor = Color.Aqua;
834
835                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
836                        myform.Dispose ();
837                }
838
839             [Test]
840             public void BackgroundImageChangedEventsOrder ()
841                {
842                        string[] EventsWanted = {
843                                "OnHandleCreated",
844                                  "OnBindingContextChanged",
845                                  "OnBindingContextChanged",
846                                  "OnBackgroundImageChanged",
847                                  "OnInvalidated"
848                        };
849                        Form myform = new Form ();
850                        myform.ShowInTaskbar = false;
851                        myform.Visible = true;
852                        MyScrollBar s = new MyScrollBar ();
853                        myform.Controls.Add (s);
854                        s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
855
856                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
857                        myform.Dispose ();
858                }
859
860             //[Test, Ignore ("Need to send proper Click / DoubleClick")]
861             //public void ClickEventsOrder ()
862             //   {
863             //           string[] EventsWanted = {
864             //                   "OnHandleCreated",
865             //                     "OnBindingContextChanged",
866             //                     "OnBindingContextChanged"
867             //           };
868             //           Form myform = new Form ();
869             //           myform.ShowInTaskbar = false;
870             //           myform.Visible = true;
871             //           MyScrollBar s = new MyScrollBar ();
872             //           myform.Controls.Add (s);
873             //           s.MouseClick ();
874
875             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
876             //           myform.Dispose ();
877             //   }
878
879             //[Test, Ignore ("Need to send proper Click / DoubleClick")]
880             //public void DoubleClickEventsOrder ()
881             //   {
882             //           string[] EventsWanted = {
883             //                   "OnHandleCreated",
884             //                     "OnBindingContextChanged",
885             //                     "OnBindingContextChanged"
886             //           };
887             //           Form myform = new Form ();
888             //           myform.ShowInTaskbar = false;
889             //           myform.Visible = true;
890             //           MyScrollBar s = new MyScrollBar ();
891             //           myform.Controls.Add (s);
892             //           s.MouseDoubleClick ();
893
894             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
895             //           myform.Dispose ();
896             //   }
897
898             [Test]
899             public void FontChangedEventsOrder ()
900                {
901                        string[] EventsWanted = {
902                                "OnHandleCreated",
903                                  "OnBindingContextChanged",
904                                  "OnBindingContextChanged"
905                        };
906                        Form myform = new Form ();
907                        myform.ShowInTaskbar = false;
908                        myform.Visible = true;
909                        MyScrollBar s = new MyScrollBar ();
910                        myform.Controls.Add (s);
911                        FontDialog myFontDialog = new FontDialog();
912                        s.Font = myFontDialog.Font;
913
914                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
915                        myform.Dispose ();
916                }
917
918             [Test]
919             public void ForeColorChangedEventsOrder ()
920                {
921                        string[] EventsWanted = {
922                                "OnHandleCreated",
923                                  "OnBindingContextChanged",
924                                  "OnBindingContextChanged",
925                                  "OnForeColorChanged",
926                                  "OnInvalidated"
927                        };
928                        Form myform = new Form ();
929                        myform.ShowInTaskbar = false;
930                        myform.Visible = true;
931                        MyScrollBar s = new MyScrollBar ();
932                        myform.Controls.Add (s);
933                        s.ForeColor = Color.Aqua;
934
935                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
936                        myform.Dispose ();
937                }
938
939             [Test]
940             public void ImeModeChangedChangedEventsOrder ()
941                {
942                        string[] EventsWanted = {
943                                "OnHandleCreated",
944                                  "OnBindingContextChanged",
945                                  "OnBindingContextChanged",
946                                  "OnImeModeChanged"
947                        };
948                        Form myform = new Form ();
949                        myform.ShowInTaskbar = false;
950                        myform.Visible = true;
951                        MyScrollBar s = new MyScrollBar ();
952                        myform.Controls.Add (s);
953                        s.ImeMode = ImeMode.Katakana;
954
955                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
956                        myform.Dispose ();
957                }
958
959             //[Test]
960             //public void MouseDownEventsOrder ()
961             //   {
962             //           string[] EventsWanted = {
963             //                   "OnHandleCreated",
964             //                     "OnBindingContextChanged",
965             //                     "OnBindingContextChanged",
966             //                     "OnMouseDown"
967             //           };
968             //           Form myform = new Form ();
969             //           myform.ShowInTaskbar = false;
970             //           myform.Visible = true;
971             //           MyScrollBar s = new MyScrollBar ();
972             //           myform.Controls.Add (s);
973             //           s.MouseRightDown ();
974
975             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
976             //           myform.Dispose ();
977             //   }
978
979             //[Test]
980             //public void MouseMoveEventsOrder ()
981             //   {
982             //           string[] EventsWanted = {
983             //                   "OnHandleCreated",
984             //                     "OnBindingContextChanged",
985             //                     "OnBindingContextChanged",
986             //                     "OnMouseMove",
987             //                     "OnMouseHover"
988             //           };
989             //           Form myform = new Form ();
990             //           myform.ShowInTaskbar = false;
991             //           myform.Visible = true;
992             //           MyScrollBar s = new MyScrollBar ();
993             //           myform.Controls.Add (s);
994             //           s.MoveMouse ();
995
996             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
997             //           myform.Dispose ();
998             //   }
999
1000             //[Test]
1001             //public void MouseUpEventsOrder ()
1002             //   {
1003             //           string[] EventsWanted = {
1004             //                   "OnHandleCreated",
1005             //                     "OnBindingContextChanged",
1006             //                     "OnBindingContextChanged",
1007             //                     "OnMouseUp"
1008             //           };
1009             //           Form myform = new Form ();
1010             //           myform.ShowInTaskbar = false;
1011             //           myform.Visible = true;
1012             //           MyScrollBar s = new MyScrollBar ();
1013             //           myform.Controls.Add (s);
1014             //           s.MouseRightUp ();
1015
1016             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1017             //           myform.Dispose ();
1018             //   }
1019
1020             [Test]
1021             public void PaintEventsOrder ()
1022                {
1023                        string[] EventsWanted = {
1024                                "OnHandleCreated",
1025                                  "OnBindingContextChanged",
1026                                  "OnBindingContextChanged",
1027                                  "OnInvalidated"
1028                        };
1029                        Form myform = new Form ();
1030                        myform.ShowInTaskbar = false;
1031                        myform.Visible = true;
1032                        MyScrollBar s = new MyScrollBar ();
1033                        myform.Controls.Add (s);
1034                        s.Visible = true;
1035                        s.Refresh ();
1036                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1037                        myform.Dispose ();
1038                }
1039
1040             [Test]
1041             public void ScrollEventsOrder ()
1042                {
1043                        string[] EventsWanted = {
1044                                "OnHandleCreated",
1045                                  "OnBindingContextChanged",
1046                                  "OnBindingContextChanged",
1047                                  "OnScroll",
1048                                  "OnValueChanged"
1049                        };
1050                        Form myform = new Form ();
1051                        myform.ShowInTaskbar = false;
1052                        myform.Visible = true;
1053                        MyScrollBar s = new MyScrollBar ();
1054                        myform.Controls.Add (s);
1055                        s.ScrollNow ();
1056
1057                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1058                        myform.Dispose ();
1059                }
1060
1061             [Test]
1062             public void TextChangedEventsOrder ()
1063                {
1064                        string[] EventsWanted = {
1065                                "OnHandleCreated",
1066                                  "OnBindingContextChanged",
1067                                  "OnBindingContextChanged",
1068                                  "OnTextChanged"
1069                        };
1070                        Form myform = new Form ();
1071                        myform.ShowInTaskbar = false;
1072                        myform.Visible = true;
1073                        MyScrollBar s = new MyScrollBar ();
1074                        myform.Controls.Add (s);
1075                        s.Text = "foobar";
1076
1077                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1078                        myform.Dispose ();
1079                }
1080
1081             [Test]
1082             public void ValueChangedEventsOrder ()
1083                {
1084                        string[] EventsWanted = {
1085                                "OnHandleCreated",
1086                                  "OnBindingContextChanged",
1087                                  "OnBindingContextChanged",
1088                                  "OnValueChanged"
1089                        };
1090                        Form myform = new Form ();
1091                        myform.ShowInTaskbar = false;
1092                        myform.Visible = true;
1093                        MyScrollBar s = new MyScrollBar ();
1094                        myform.Controls.Add (s);
1095                        s.Value = 10;
1096
1097                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1098                        myform.Dispose ();
1099                }
1100     }
1101
1102 public class MyScrollBar2 : HScrollBar
1103     {
1104             protected ArrayList results = new ArrayList ();
1105      public MyScrollBar2 () : base ()
1106              {
1107                      this.HandleCreated += new EventHandler (HandleCreated_Handler);
1108                      this.BackColorChanged += new EventHandler (BackColorChanged_Handler);
1109                      this.BackgroundImageChanged += new EventHandler (BackgroundImageChanged_Handler);
1110                      this.BindingContextChanged += new EventHandler (BindingContextChanged_Handler);
1111                      this.Click += new EventHandler (Click_Handler);
1112                      this.DoubleClick += new EventHandler (DoubleClick_Handler);
1113                      this.FontChanged += new EventHandler (FontChanged_Handler);
1114                      this.ForeColorChanged += new EventHandler (ForeColorChanged_Handler);
1115                      this.ImeModeChanged += new EventHandler (ImeModeChanged_Handler);
1116                      this.MouseDown += new MouseEventHandler (MouseDown_Handler);
1117                      this.MouseMove += new MouseEventHandler (MouseMove_Handler);
1118                      this.MouseUp += new MouseEventHandler (MouseUp_Handler);
1119                      this.Invalidated += new InvalidateEventHandler (Invalidated_Handler);
1120                      this.Resize += new EventHandler (Resize_Handler);
1121                      this.SizeChanged += new EventHandler (SizeChanged_Handler);
1122                      this.Layout += new LayoutEventHandler (Layout_Handler);
1123                      this.VisibleChanged += new EventHandler (VisibleChanged_Handler);
1124                      this.Paint += new PaintEventHandler (Paint_Handler);
1125                      this.Scroll += new ScrollEventHandler (Scroll_Handler);
1126                      this.TextChanged += new EventHandler (TextChanged_Handler);
1127                      this.ValueChanged += new EventHandler (ValueChanged_Handler);
1128              }
1129
1130             protected void HandleCreated_Handler (object sender, EventArgs e)
1131              {
1132                      results.Add ("HandleCreated");
1133              }
1134
1135             protected void BackColorChanged_Handler (object sender, EventArgs e)
1136              {
1137                      results.Add ("BackColorChanged");
1138              }
1139
1140             protected void BackgroundImageChanged_Handler (object sender, EventArgs e)
1141              {
1142                      results.Add ("BackgroundImageChanged");
1143              }
1144
1145             protected void Click_Handler (object sender, EventArgs e)
1146              {
1147                      results.Add ("Click");
1148              }
1149
1150             protected void DoubleClick_Handler (object sender, EventArgs e)
1151              {
1152                      results.Add ("DoubleClick");
1153              }
1154
1155             protected void FontChanged_Handler (object sender, EventArgs e)
1156              {
1157                      results.Add ("FontChanged");
1158              }
1159
1160             protected void ForeColorChanged_Handler (object sender, EventArgs e)
1161              {
1162                      results.Add ("ForeColorChanged");
1163              }
1164
1165             protected void ImeModeChanged_Handler (object sender, EventArgs e)
1166              {
1167                      results.Add ("ImeModeChanged");
1168              }
1169
1170             protected void MouseDown_Handler (object sender, MouseEventArgs e)
1171              {
1172                      results.Add ("MouseDown");
1173              }
1174
1175             protected void MouseMove_Handler (object sender, MouseEventArgs e)
1176              {
1177                      results.Add ("MouseMove");
1178              }
1179
1180             protected void MouseUp_Handler (object sender, MouseEventArgs e)
1181              {
1182                      results.Add ("MouseUp");
1183              }
1184
1185             protected void BindingContextChanged_Handler (object sender, EventArgs e)
1186              {
1187                      results.Add ("BindingContextChanged");
1188              }
1189
1190             protected void Invalidated_Handler (object sender, InvalidateEventArgs e)
1191              {
1192                      results.Add("Invalidated");
1193              }
1194
1195             protected void Resize_Handler (object sender, EventArgs e)
1196              {
1197                      results.Add("Resize");
1198              }
1199
1200             protected void SizeChanged_Handler (object sender, EventArgs e)
1201              {
1202                      results.Add("SizeChanged");
1203              }
1204
1205             protected void Layout_Handler (object sender, LayoutEventArgs e)
1206              {
1207                      results.Add("Layout");
1208              }
1209
1210             protected void VisibleChanged_Handler (object sender, EventArgs e)
1211              {
1212                      results.Add("VisibleChanged");
1213              }
1214
1215             protected void Paint_Handler (object sender, PaintEventArgs e)
1216              {
1217                      results.Add("Paint");
1218              }
1219
1220             protected void Scroll_Handler (object sender, ScrollEventArgs e)
1221              {
1222                      results.Add ("Scroll");
1223              }
1224
1225             protected void TextChanged_Handler (object sender, EventArgs e)
1226              {
1227                      results.Add ("TextChanged");
1228              }
1229
1230             protected void ValueChanged_Handler (object sender, EventArgs e)
1231              {
1232                      results.Add ("ValueChanged");
1233              }
1234
1235             public ArrayList Results {
1236                     get {       return results; }
1237             }
1238
1239             //public void MoveMouse ()
1240             // {
1241             //         Message m;
1242
1243             //         m = new Message ();
1244
1245             //         m.Msg = (int)WndMsg.WM_NCHITTEST;
1246             //         m.HWnd = this.Handle;
1247             //         m.WParam = (IntPtr)0x0;
1248             //         m.LParam = (IntPtr)0x1c604ea;
1249             //         this.WndProc(ref m);
1250
1251             //         m.Msg = (int)WndMsg.WM_SETCURSOR;
1252             //         m.HWnd = this.Handle;
1253             //         m.WParam = (IntPtr)0x100448;
1254             //         m.LParam = (IntPtr)0x2000001;
1255             //         this.WndProc(ref m);
1256
1257             //         m.Msg = (int)WndMsg.WM_MOUSEFIRST;
1258             //         m.HWnd = this.Handle;
1259             //         m.WParam = (IntPtr)0x0;
1260             //         m.LParam = (IntPtr)0x14000b;
1261             //         this.WndProc(ref m);
1262
1263             //         m.Msg = (int)WndMsg.WM_MOUSEHOVER;
1264             //         m.HWnd = this.Handle;
1265             //         m.WParam = (IntPtr)0x0;
1266             //         m.LParam = (IntPtr)0x14000b;
1267             //         this.WndProc(ref m);
1268             // }
1269
1270             //public void MouseRightDown()
1271             // {
1272             //         Message m;
1273
1274             //         m = new Message();
1275
1276             //         m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
1277             //         m.HWnd = this.Handle;
1278             //         m.WParam = (IntPtr)0x01;
1279             //         m.LParam = (IntPtr)0x9004f;
1280             //         this.WndProc(ref m);
1281             // }
1282
1283             //public new void MouseClick()
1284             // {
1285             //         Message m;
1286
1287             //         m = new Message();
1288
1289             //         m.Msg = (int)WndMsg.WM_LBUTTONDOWN;
1290             //         m.HWnd = this.Handle;
1291             //         m.WParam = (IntPtr)0x01;
1292             //         m.LParam = (IntPtr)0x9004f;
1293             //         this.WndProc(ref m);
1294
1295             //         m = new Message();
1296
1297             //         m.Msg = (int)WndMsg.WM_LBUTTONUP;
1298             //         m.HWnd = this.Handle;
1299             //         m.WParam = (IntPtr)0x01;
1300             //         m.LParam = (IntPtr)0x9004f;
1301             //         this.WndProc(ref m);
1302             // }
1303
1304             //public new void MouseDoubleClick ()
1305             // {
1306             //         MouseClick ();
1307             //         MouseClick ();
1308             // }
1309
1310             //public void MouseRightUp()
1311             // {
1312             //         Message m;
1313
1314             //         m = new Message();
1315
1316             //         m.Msg = (int)WndMsg.WM_RBUTTONUP;
1317             //         m.HWnd = this.Handle;
1318             //         m.WParam = (IntPtr)0x01;
1319             //         m.LParam = (IntPtr)0x9004f;
1320             //         this.WndProc(ref m);
1321             // }
1322
1323         public void ScrollNow ()
1324         {
1325                 Message m;
1326
1327                 m = new Message ();
1328
1329                 m.Msg = 8468;
1330                 m.HWnd = this.Handle;
1331                 m.WParam = (IntPtr)0x1;
1332                 m.LParam = (IntPtr)0x1a051a;
1333                 this.WndProc (ref m);
1334
1335                 m.Msg = 233;
1336                 m.HWnd = this.Handle;
1337                 m.WParam = (IntPtr)0x1;
1338                 m.LParam = (IntPtr)0x12eb34;
1339                 this.WndProc (ref m);
1340         }
1341     }
1342
1343    [TestFixture]
1344    [Ignore("Tests too strict")]
1345    public class HScrollBarTestEventsOrder2 : TestHelper
1346     {
1347             public string [] ArrayListToString (ArrayList arrlist)
1348              {
1349                      string [] retval = new string [arrlist.Count];
1350                      for (int i = 0; i < arrlist.Count; i++)
1351                        retval[i] = (string)arrlist[i];
1352                      return retval;
1353              }
1354
1355             [Test]
1356             public void CreateEventsOrder ()
1357                {
1358                        string[] EventsWanted = {
1359                                "HandleCreated",
1360                                  "BindingContextChanged",
1361                                  "BindingContextChanged"
1362                        };
1363                        Form myform = new Form ();
1364                        myform.ShowInTaskbar = false;
1365                        myform.Visible = true;
1366                        MyScrollBar2 s = new MyScrollBar2 ();
1367                        myform.Controls.Add (s);
1368
1369                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1370                        myform.Dispose ();
1371                }
1372
1373             [Test]
1374             public void BackColorChangedEventsOrder ()
1375                {
1376                        string[] EventsWanted = {
1377                                "HandleCreated",
1378                                  "BindingContextChanged",
1379                                  "BindingContextChanged",
1380                                  "Invalidated",
1381                                  "BackColorChanged"
1382                        };
1383                        Form myform = new Form ();
1384                        myform.ShowInTaskbar = false;
1385                        myform.Visible = true;
1386                        MyScrollBar2 s = new MyScrollBar2 ();
1387                        myform.Controls.Add (s);
1388                        s.BackColor = Color.Aqua;
1389
1390                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1391                        myform.Dispose ();
1392                }
1393
1394             [Test]
1395             public void BackgroundImageChangedEventsOrder ()
1396                {
1397                        string[] EventsWanted = {
1398                                "HandleCreated",
1399                                  "BindingContextChanged",
1400                                  "BindingContextChanged",
1401                                  "Invalidated",
1402                                  "BackgroundImageChanged"
1403
1404                        };
1405                        Form myform = new Form ();
1406                        myform.ShowInTaskbar = false;
1407                        myform.Visible = true;
1408                        MyScrollBar2 s = new MyScrollBar2 ();
1409                        myform.Controls.Add (s);
1410                        s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
1411
1412                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1413                        myform.Dispose ();
1414                }
1415
1416             //[Test, Ignore ("Need to send proper Click / DoubleClick")]
1417             //public void ClickEventsOrder ()
1418             //   {
1419             //           string[] EventsWanted = {
1420             //                   "HandleCreated",
1421             //                     "BindingContextChanged",
1422             //                     "BindingContextChanged"
1423             //           };
1424             //           Form myform = new Form ();
1425             //           myform.ShowInTaskbar = false;
1426             //           myform.Visible = true;
1427             //           MyScrollBar2 s = new MyScrollBar2 ();
1428             //           myform.Controls.Add (s);
1429             //           s.MouseClick ();
1430
1431             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1432             //           myform.Dispose ();
1433             //   }
1434
1435             //[Test, Ignore ("Need to send proper Click / DoubleClick")]
1436             //public void DoubleClickEventsOrder ()
1437             //   {
1438             //           string[] EventsWanted = {
1439             //                   "HandleCreated",
1440             //                     "BindingContextChanged",
1441             //                     "BindingContextChanged"
1442             //           };
1443             //           Form myform = new Form ();
1444             //           myform.ShowInTaskbar = false;
1445             //           myform.Visible = true;
1446             //           MyScrollBar2 s = new MyScrollBar2 ();
1447             //           myform.Controls.Add (s);
1448             //           s.MouseDoubleClick ();
1449
1450             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1451             //           myform.Dispose ();
1452             //   }
1453
1454             [Test]
1455             public void FontChangedEventsOrder ()
1456                {
1457                        string[] EventsWanted = {
1458                                "HandleCreated",
1459                                  "BindingContextChanged",
1460                                  "BindingContextChanged"
1461                        };
1462                        Form myform = new Form ();
1463                        myform.ShowInTaskbar = false;
1464                        myform.Visible = true;
1465                        MyScrollBar2 s = new MyScrollBar2 ();
1466                        myform.Controls.Add (s);
1467                        FontDialog myFontDialog = new FontDialog();
1468                        s.Font = myFontDialog.Font;
1469
1470                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1471                        myform.Dispose ();
1472                }
1473
1474             [Test]
1475             public void ForeColorChangedEventsOrder ()
1476                {
1477                        string[] EventsWanted = {
1478                                "HandleCreated",
1479                                  "BindingContextChanged",
1480                                  "BindingContextChanged",
1481                                  "Invalidated",
1482                                  "ForeColorChanged"
1483                        };
1484                        Form myform = new Form ();
1485                        myform.ShowInTaskbar = false;
1486                        myform.Visible = true;
1487                        MyScrollBar2 s = new MyScrollBar2 ();
1488                        myform.Controls.Add (s);
1489                        s.ForeColor = Color.Aqua;
1490
1491                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1492                        myform.Dispose ();
1493                }
1494
1495             [Test]
1496             public void ImeModeChangedChangedEventsOrder ()
1497                {
1498                        string[] EventsWanted = {
1499                                "HandleCreated",
1500                                  "BindingContextChanged",
1501                                  "BindingContextChanged",
1502                                  "ImeModeChanged"
1503                        };
1504                        Form myform = new Form ();
1505                        myform.ShowInTaskbar = false;
1506                        myform.Visible = true;
1507                        MyScrollBar2 s = new MyScrollBar2 ();
1508                        myform.Controls.Add (s);
1509                        s.ImeMode = ImeMode.Katakana;
1510
1511                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1512                        myform.Dispose ();
1513                }
1514
1515             //[Test]
1516             //public void MouseDownEventsOrder ()
1517             //   {
1518             //           string[] EventsWanted = {
1519             //                   "HandleCreated",
1520             //                     "BindingContextChanged",
1521             //                     "BindingContextChanged",
1522             //                     "MouseDown"
1523             //           };
1524             //           Form myform = new Form ();
1525             //           myform.ShowInTaskbar = false;
1526             //           myform.Visible = true;
1527             //           MyScrollBar2 s = new MyScrollBar2 ();
1528             //           myform.Controls.Add (s);
1529             //           s.MouseRightDown ();
1530
1531             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1532             //           myform.Dispose ();
1533             //   }
1534
1535             //[Test]
1536             //public void MouseMoveEventsOrder ()
1537             //   {
1538             //           string[] EventsWanted = {
1539             //                   "HandleCreated",
1540             //                     "BindingContextChanged",
1541             //                     "BindingContextChanged",
1542             //                     "MouseMove"
1543             //           };
1544             //           Form myform = new Form ();
1545             //           myform.ShowInTaskbar = false;
1546             //           myform.Visible = true;
1547             //           MyScrollBar2 s = new MyScrollBar2 ();
1548             //           myform.Controls.Add (s);
1549             //           s.MoveMouse ();
1550
1551             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1552             //           myform.Dispose ();
1553             //   }
1554
1555             //[Test]
1556             //public void MouseUpEventsOrder ()
1557             //   {
1558             //           string[] EventsWanted = {
1559             //                   "HandleCreated",
1560             //                     "BindingContextChanged",
1561             //                     "BindingContextChanged",
1562             //                     "MouseUp"
1563             //           };
1564             //           Form myform = new Form ();
1565             //           myform.ShowInTaskbar = false;
1566             //           myform.Visible = true;
1567             //           MyScrollBar2 s = new MyScrollBar2 ();
1568             //           myform.Controls.Add (s);
1569             //           s.MouseRightUp ();
1570
1571             //           Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1572             //           myform.Dispose ();
1573             //   }
1574
1575             [Test]
1576             public void PaintEventsOrder ()
1577                {
1578                        string[] EventsWanted = {
1579                                "HandleCreated",
1580                                  "BindingContextChanged",
1581                                  "BindingContextChanged",
1582                                  "Invalidated"
1583                        };
1584                        Form myform = new Form ();
1585                        myform.ShowInTaskbar = false;
1586                        myform.Visible = true;
1587                        MyScrollBar2 s = new MyScrollBar2 ();
1588                        myform.Controls.Add (s);
1589                        s.Visible = true;
1590                        s.Refresh ();
1591
1592                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1593                        myform.Dispose ();
1594                }
1595
1596             [Test]
1597             public void ScrollEventsOrder ()
1598                {
1599                        string[] EventsWanted = {
1600                                "HandleCreated",
1601                                  "BindingContextChanged",
1602                                  "BindingContextChanged",
1603                                  "Scroll",
1604                                  "ValueChanged"
1605                        };
1606                        Form myform = new Form ();
1607                        myform.ShowInTaskbar = false;
1608                        myform.Visible = true;
1609                        MyScrollBar2 s = new MyScrollBar2 ();
1610                        myform.Controls.Add (s);
1611                        s.ScrollNow ();
1612
1613                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1614                        myform.Dispose ();
1615                }
1616
1617             [Test]
1618             public void TextChangedEventsOrder ()
1619                {
1620                        string[] EventsWanted = {
1621                                "HandleCreated",
1622                                  "BindingContextChanged",
1623                                  "BindingContextChanged",
1624                                  "TextChanged"
1625                        };
1626                        Form myform = new Form ();
1627                        myform.ShowInTaskbar = false;
1628                        myform.Visible = true;
1629                        MyScrollBar2 s = new MyScrollBar2 ();
1630                        myform.Controls.Add (s);
1631                        s.Text = "foobar";
1632
1633                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1634                        myform.Dispose ();
1635                }
1636
1637             [Test]
1638             public void ValueChangedEventsOrder ()
1639                {
1640                        string[] EventsWanted = {
1641                                "HandleCreated",
1642                                  "BindingContextChanged",
1643                                  "BindingContextChanged",
1644                                  "ValueChanged"
1645                        };
1646                        Form myform = new Form ();
1647                        myform.ShowInTaskbar = false;
1648                        myform.Visible = true;
1649                        MyScrollBar2 s = new MyScrollBar2 ();
1650                        myform.Controls.Add (s);
1651                        s.Value = 10;
1652
1653                        Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1654                        myform.Dispose ();
1655                }
1656     }
1657     
1658 #if NET_2_0
1659     [TestFixture]
1660     public class ScrollEventArgsTest : TestHelper
1661     {
1662         [Test]
1663         public void Defaults ()
1664         {
1665                 ScrollEventArgs e = new ScrollEventArgs (ScrollEventType.EndScroll, 5);
1666
1667                 Assert.AreEqual (5, e.NewValue, "A1");
1668                 Assert.AreEqual (-1, e.OldValue, "A2");
1669                 Assert.AreEqual (ScrollOrientation.HorizontalScroll, e.ScrollOrientation, "A3");
1670                 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A4");
1671
1672                 e = new ScrollEventArgs (ScrollEventType.EndScroll, 5, 10);
1673
1674                 Assert.AreEqual (10, e.NewValue, "A5");
1675                 Assert.AreEqual (5, e.OldValue, "A6");
1676                 Assert.AreEqual (ScrollOrientation.HorizontalScroll, e.ScrollOrientation, "A7");
1677                 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A8");
1678
1679                 e = new ScrollEventArgs (ScrollEventType.EndScroll, 5, ScrollOrientation.VerticalScroll);
1680
1681                 Assert.AreEqual (5, e.NewValue, "A9");
1682                 Assert.AreEqual (-1, e.OldValue, "A10");
1683                 Assert.AreEqual (ScrollOrientation.VerticalScroll, e.ScrollOrientation, "A11");
1684                 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A12");
1685
1686                 e = new ScrollEventArgs (ScrollEventType.EndScroll, 5, 10, ScrollOrientation.VerticalScroll);
1687
1688                 Assert.AreEqual (10, e.NewValue, "A13");
1689                 Assert.AreEqual (5, e.OldValue, "A14");
1690                 Assert.AreEqual (ScrollOrientation.VerticalScroll, e.ScrollOrientation, "A15");
1691                 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A16");
1692         }
1693     }
1694 #endif
1695 }