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