2007-01-10 Chris Toshok <toshok@ximian.com>
[mono-project.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ScrollBarTest.cs
blobcc808de8c22b1d10a4a30478f56e699307ca24ce
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 //
10 using System;
11 using NUnit.Framework;
12 using System.Windows.Forms;
13 using System.Drawing;
14 using System.Collections;
16 namespace MonoTests.System.Windows.Forms
19 public class MyScrollBar : HScrollBar
21 private ArrayList results = new ArrayList ();
22 public MyScrollBar () : base ()
25 protected override void OnBackColorChanged (EventArgs e)
27 results.Add ("OnBackColorChanged");
28 base.OnBackColorChanged (e);
31 protected override void OnBackgroundImageChanged (EventArgs e)
33 results.Add ("OnBackgroundImageChanged");
34 base.OnBackgroundImageChanged (e);
37 protected override void OnClick (EventArgs e)
39 results.Add ("OnClick");
40 base.OnClick (e);
43 protected override void OnDoubleClick (EventArgs e)
45 results.Add ("OnDoubleClick");
46 base.OnDoubleClick (e);
49 protected override void OnFontChanged (EventArgs e)
51 results.Add ("OnFontChanged");
52 base.OnFontChanged (e);
55 protected override void OnForeColorChanged (EventArgs e)
57 results.Add ("OnForeColorChanged");
58 base.OnForeColorChanged (e);
61 protected override void OnImeModeChanged (EventArgs e)
63 results.Add ("OnImeModeChanged");
64 base.OnImeModeChanged (e);
67 protected override void OnMouseDown (MouseEventArgs e)
69 results.Add ("OnMouseDown");
70 base.OnMouseDown (e);
73 protected override void OnMouseMove (MouseEventArgs e)
75 results.Add ("OnMouseMove");
76 base.OnMouseMove (e);
79 protected override void OnMouseEnter (EventArgs e)
81 results.Add ("OnMouseEnter");
82 base.OnMouseEnter (e);
85 protected override void OnMouseLeave (EventArgs e)
87 results.Add ("OnMouseLeave");
88 base.OnMouseLeave (e);
91 protected override void OnMouseHover (EventArgs e)
93 results.Add ("OnMouseHover");
94 base.OnMouseHover (e);
97 protected override void OnMouseUp (MouseEventArgs e)
99 results.Add ("OnMouseUp");
100 base.OnMouseUp (e);
103 protected override void OnHandleCreated (EventArgs e)
105 results.Add ("OnHandleCreated");
106 base.OnHandleCreated (e);
109 protected override void OnBindingContextChanged (EventArgs e)
111 results.Add ("OnBindingContextChanged");
112 base.OnBindingContextChanged (e);
115 protected override void OnInvalidated (InvalidateEventArgs e)
117 results.Add("OnInvalidated");
118 base.OnInvalidated (e);
121 protected override void OnResize (EventArgs e)
123 results.Add("OnResize");
124 base.OnResize (e);
127 protected override void OnSizeChanged (EventArgs e)
129 results.Add("OnSizeChanged");
130 base.OnSizeChanged (e);
133 protected override void OnLayout (LayoutEventArgs e)
135 results.Add("OnLayout");
136 base.OnLayout (e);
139 protected override void OnVisibleChanged (EventArgs e)
141 results.Add("OnVisibleChanged");
142 base.OnVisibleChanged (e);
145 protected override void OnScroll (ScrollEventArgs e)
147 results.Add("OnScroll");
148 base.OnScroll (e);
151 protected override void OnTextChanged (EventArgs e)
153 results.Add("OnTextChanged");
154 base.OnTextChanged (e);
157 protected override void OnValueChanged (EventArgs e)
159 results.Add("OnValueChanged");
160 base.OnValueChanged (e);
163 protected override void OnPaint (PaintEventArgs e)
165 results.Add("OnPaint");
166 base.OnPaint (e);
169 public ArrayList Results {
170 get { return results; }
173 public void MoveMouse ()
175 Message m;
177 m = new Message ();
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);
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);
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);
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);
204 public void MouseClick()
207 Message m;
209 m = new Message();
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);
217 m = new Message();
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);
226 public void MouseDoubleClick ()
228 MouseClick ();
229 MouseClick ();
231 public void MouseRightDown()
233 Message m;
235 m = new Message();
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);
244 public void MouseRightUp()
246 Message m;
248 m = new Message();
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);
257 public void ScrollNow ()
259 Message m;
261 m = new Message ();
263 m.Msg = 8468;
264 m.HWnd = this.Handle;
265 m.WParam = (IntPtr)0x1;
266 m.LParam = (IntPtr)0x1a051a;
267 this.WndProc(ref m);
269 m.Msg = 233;
270 m.HWnd = this.Handle;
271 m.WParam = (IntPtr)0x1;
272 m.LParam = (IntPtr)0x12eb34;
273 this.WndProc(ref m);
276 [TestFixture]
277 public class ScrollBarTest
279 [Test]
280 public void PubPropTest ()
282 MyScrollBar myscrlbar = new MyScrollBar ();
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");
290 // F
291 Assert.AreEqual ("ControlText", myscrlbar.ForeColor.Name, "F1");
293 // I
294 //Assert.AreEqual (ImeMode.Disable, myscrlbar.ImeMode, "I1");
296 // L
297 Assert.AreEqual (10, myscrlbar.LargeChange, "L1");
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");
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");
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");
321 // V
322 Assert.AreEqual (100, myscrlbar.Value, "V1");
323 myscrlbar.Value = 150;
324 Assert.AreEqual (150, myscrlbar.Value, "V2");
327 [Test]
328 [ExpectedException (typeof (ArgumentException))]
329 public void ExceptionValueTest ()
331 MyScrollBar myscrlbar = new MyScrollBar ();
332 myscrlbar.Minimum = 10;
333 myscrlbar.Maximum = 20;
334 myscrlbar.Value = 9;
335 myscrlbar.Value = 21;
338 [Test]
339 [ExpectedException (typeof (ArgumentException))]
340 public void ExceptionSmallChangeTest ()
342 MyScrollBar myscrlbar = new MyScrollBar ();
343 myscrlbar.SmallChange = -1;
346 [Test]
347 [ExpectedException (typeof (ArgumentException))]
348 public void ExceptionLargeChangeTest ()
350 MyScrollBar myscrlbar = new MyScrollBar ();
351 myscrlbar.LargeChange = -1;
354 [Test]
355 public void PubMethodTest ()
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");
364 [TestFixture]
365 public class ScrollBarEventTest
367 static bool eventhandled = false;
368 public void ScrollBar_EventHandler (object sender,EventArgs e)
370 eventhandled = true;
373 public void ScrollBarMouse_EventHandler (object sender,MouseEventArgs e)
375 eventhandled = true;
378 public void ScrollBarScroll_EventHandler (object sender,ScrollEventArgs e)
380 eventhandled = true;
383 public void ScrollBarPaint_EventHandler (object sender,PaintEventArgs e)
385 eventhandled = true;
388 [Test]
389 public void BackColorChangedTest ()
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 ();
403 [Test]
404 public void BackgroundImageChangedTest ()
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 ();
418 [Test]
419 public void FontChangedTest ()
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 ();
435 [Test]
436 public void ForeColorChangedTest ()
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 ();
450 [Test]
451 public void ImeModehangedTest ()
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 ();
465 [Test]
466 public void MouseDownTest ()
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 ();
476 Assert.AreEqual (true, eventhandled, "M5");
477 eventhandled = false;
478 myform.Dispose ();
481 [Test]
482 public void MouseMoveTest ()
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 ();
492 Assert.AreEqual (true, eventhandled, "M6");
493 eventhandled = false;
494 myform.Dispose ();
497 [Test]
498 public void MouseUpTest ()
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 ();
508 Assert.AreEqual (true, eventhandled, "M7");
509 eventhandled = false;
510 myform.Dispose ();
513 [Test]
514 [Category ("NotWorking")]
515 public void ScrollTest ()
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 ();
525 Assert.AreEqual (true, eventhandled, "S4");
526 eventhandled = false;
527 myform.Dispose ();
530 [Test]
531 public void TextChangedTest ()
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";
541 Assert.AreEqual (true, eventhandled, "T6");
542 eventhandled = false;
543 myform.Dispose ();
546 [Test]
547 public void ValueChangeTest ()
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 ();
563 public class MyHScrollBar : HScrollBar
565 public MyHScrollBar () : base ()
569 public Size MyDefaultSize {
570 get { return DefaultSize; }
573 public CreateParams MyCreateParams {
574 get { return CreateParams; }
578 [TestFixture]
579 public class MyHScrollBarTest
581 [Test]
582 public void ProtectedTest ()
584 MyHScrollBar msbar = new MyHScrollBar ();
586 Assert.AreEqual (80, msbar.MyDefaultSize.Width, "D1");
587 // this is environment dependent.
588 //Assert.AreEqual (21, msbar.MyDefaultSize.Height, "D2");
592 public class MyVScrollBar : VScrollBar
594 public MyVScrollBar () : base ()
598 public Size MyDefaultSize {
599 get { return DefaultSize; }
602 public CreateParams MyCreateParams {
603 get { return CreateParams; }
607 [TestFixture]
608 public class MyVScrollBarTest
610 [Test]
611 public void PubMethodTest ()
613 MyVScrollBar msbar = new MyVScrollBar ();
615 Assert.AreEqual (RightToLeft.No, msbar.RightToLeft, "R1");
619 [Test]
620 public void ProtMethodTest ()
622 MyVScrollBar msbar = new MyVScrollBar ();
624 // This is environment dependent.
625 //Assert.AreEqual (21, msbar.MyDefaultSize.Width, "D3");
626 Assert.AreEqual (80, msbar.MyDefaultSize.Height, "D4");
630 [TestFixture]
631 [Ignore("Tests too strict")]
632 public class HScrollBarTestEventsOrder
634 public string [] ArrayListToString (ArrayList arrlist)
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;
642 [Test]
643 public void CreateEventsOrder ()
645 string[] EventsWanted = {
646 "OnHandleCreated",
647 "OnBindingContextChanged",
648 "OnBindingContextChanged"
650 Form myform = new Form ();
651 myform.ShowInTaskbar = false;
652 myform.Visible = true;
653 MyScrollBar s = new MyScrollBar ();
654 myform.Controls.Add (s);
656 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
657 myform.Dispose ();
660 [Test]
661 public void BackColorChangedEventsOrder ()
663 string[] EventsWanted = {
664 "OnHandleCreated",
665 "OnBindingContextChanged",
666 "OnBindingContextChanged",
667 "OnBackColorChanged",
668 "OnInvalidated"
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;
677 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
678 myform.Dispose ();
681 [Test]
682 public void BackgroundImageChangedEventsOrder ()
684 string[] EventsWanted = {
685 "OnHandleCreated",
686 "OnBindingContextChanged",
687 "OnBindingContextChanged",
688 "OnBackgroundImageChanged",
689 "OnInvalidated"
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");
698 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
699 myform.Dispose ();
702 [Test, Ignore ("Need to send proper Click / DoubleClick")]
703 public void ClickEventsOrder ()
705 string[] EventsWanted = {
706 "OnHandleCreated",
707 "OnBindingContextChanged",
708 "OnBindingContextChanged"
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 ();
717 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
718 myform.Dispose ();
721 [Test, Ignore ("Need to send proper Click / DoubleClick")]
722 public void DoubleClickEventsOrder ()
724 string[] EventsWanted = {
725 "OnHandleCreated",
726 "OnBindingContextChanged",
727 "OnBindingContextChanged"
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 ();
736 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
737 myform.Dispose ();
740 [Test]
741 public void FontChangedEventsOrder ()
743 string[] EventsWanted = {
744 "OnHandleCreated",
745 "OnBindingContextChanged",
746 "OnBindingContextChanged"
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;
756 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
757 myform.Dispose ();
760 [Test]
761 public void ForeColorChangedEventsOrder ()
763 string[] EventsWanted = {
764 "OnHandleCreated",
765 "OnBindingContextChanged",
766 "OnBindingContextChanged",
767 "OnForeColorChanged",
768 "OnInvalidated"
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;
777 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
778 myform.Dispose ();
781 [Test]
782 public void ImeModeChangedChangedEventsOrder ()
784 string[] EventsWanted = {
785 "OnHandleCreated",
786 "OnBindingContextChanged",
787 "OnBindingContextChanged",
788 "OnImeModeChanged"
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;
797 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
798 myform.Dispose ();
801 [Test]
802 public void MouseDownEventsOrder ()
804 string[] EventsWanted = {
805 "OnHandleCreated",
806 "OnBindingContextChanged",
807 "OnBindingContextChanged",
808 "OnMouseDown"
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 ();
817 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
818 myform.Dispose ();
821 [Test]
822 public void MouseMoveEventsOrder ()
824 string[] EventsWanted = {
825 "OnHandleCreated",
826 "OnBindingContextChanged",
827 "OnBindingContextChanged",
828 "OnMouseMove",
829 "OnMouseHover"
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 ();
838 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
839 myform.Dispose ();
842 [Test]
843 public void MouseUpEventsOrder ()
845 string[] EventsWanted = {
846 "OnHandleCreated",
847 "OnBindingContextChanged",
848 "OnBindingContextChanged",
849 "OnMouseUp"
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 ();
858 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
859 myform.Dispose ();
862 [Test]
863 public void PaintEventsOrder ()
865 string[] EventsWanted = {
866 "OnHandleCreated",
867 "OnBindingContextChanged",
868 "OnBindingContextChanged",
869 "OnInvalidated"
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 ();
882 [Test]
883 public void ScrollEventsOrder ()
885 string[] EventsWanted = {
886 "OnHandleCreated",
887 "OnBindingContextChanged",
888 "OnBindingContextChanged",
889 "OnScroll",
890 "OnValueChanged"
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 ();
899 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
900 myform.Dispose ();
903 [Test]
904 public void TextChangedEventsOrder ()
906 string[] EventsWanted = {
907 "OnHandleCreated",
908 "OnBindingContextChanged",
909 "OnBindingContextChanged",
910 "OnTextChanged"
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";
919 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
920 myform.Dispose ();
923 [Test]
924 public void ValueChangedEventsOrder ()
926 string[] EventsWanted = {
927 "OnHandleCreated",
928 "OnBindingContextChanged",
929 "OnBindingContextChanged",
930 "OnValueChanged"
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;
939 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
940 myform.Dispose ();
944 public class MyScrollBar2 : HScrollBar
946 protected ArrayList results = new ArrayList ();
947 public MyScrollBar2 () : base ()
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);
972 protected void HandleCreated_Handler (object sender, EventArgs e)
974 results.Add ("HandleCreated");
977 protected void BackColorChanged_Handler (object sender, EventArgs e)
979 results.Add ("BackColorChanged");
982 protected void BackgroundImageChanged_Handler (object sender, EventArgs e)
984 results.Add ("BackgroundImageChanged");
987 protected void Click_Handler (object sender, EventArgs e)
989 results.Add ("Click");
992 protected void DoubleClick_Handler (object sender, EventArgs e)
994 results.Add ("DoubleClick");
997 protected void FontChanged_Handler (object sender, EventArgs e)
999 results.Add ("FontChanged");
1002 protected void ForeColorChanged_Handler (object sender, EventArgs e)
1004 results.Add ("ForeColorChanged");
1007 protected void ImeModeChanged_Handler (object sender, EventArgs e)
1009 results.Add ("ImeModeChanged");
1012 protected void MouseDown_Handler (object sender, MouseEventArgs e)
1014 results.Add ("MouseDown");
1017 protected void MouseMove_Handler (object sender, MouseEventArgs e)
1019 results.Add ("MouseMove");
1022 protected void MouseUp_Handler (object sender, MouseEventArgs e)
1024 results.Add ("MouseUp");
1027 protected void BindingContextChanged_Handler (object sender, EventArgs e)
1029 results.Add ("BindingContextChanged");
1032 protected void Invalidated_Handler (object sender, InvalidateEventArgs e)
1034 results.Add("Invalidated");
1037 protected void Resize_Handler (object sender, EventArgs e)
1039 results.Add("Resize");
1042 protected void SizeChanged_Handler (object sender, EventArgs e)
1044 results.Add("SizeChanged");
1047 protected void Layout_Handler (object sender, LayoutEventArgs e)
1049 results.Add("Layout");
1052 protected void VisibleChanged_Handler (object sender, EventArgs e)
1054 results.Add("VisibleChanged");
1057 protected void Paint_Handler (object sender, PaintEventArgs e)
1059 results.Add("Paint");
1062 protected void Scroll_Handler (object sender, ScrollEventArgs e)
1064 results.Add ("Scroll");
1067 protected void TextChanged_Handler (object sender, EventArgs e)
1069 results.Add ("TextChanged");
1072 protected void ValueChanged_Handler (object sender, EventArgs e)
1074 results.Add ("ValueChanged");
1077 public ArrayList Results {
1078 get { return results; }
1081 public void MoveMouse ()
1083 Message m;
1085 m = new Message ();
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);
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);
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);
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);
1112 public void MouseRightDown()
1114 Message m;
1116 m = new Message();
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);
1125 public void MouseClick()
1127 Message m;
1129 m = new Message();
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);
1137 m = new Message();
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);
1146 public void MouseDoubleClick ()
1148 MouseClick ();
1149 MouseClick ();
1152 public void MouseRightUp()
1154 Message m;
1156 m = new Message();
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);
1165 public void ScrollNow ()
1167 Message m;
1169 m = new Message ();
1171 m.Msg = 8468;
1172 m.HWnd = this.Handle;
1173 m.WParam = (IntPtr)0x1;
1174 m.LParam = (IntPtr)0x1a051a;
1175 this.WndProc(ref m);
1177 m.Msg = 233;
1178 m.HWnd = this.Handle;
1179 m.WParam = (IntPtr)0x1;
1180 m.LParam = (IntPtr)0x12eb34;
1181 this.WndProc(ref m);
1185 [TestFixture]
1186 [Ignore("Tests too strict")]
1187 public class HScrollBarTestEventsOrder2
1189 public string [] ArrayListToString (ArrayList arrlist)
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;
1197 [Test]
1198 public void CreateEventsOrder ()
1200 string[] EventsWanted = {
1201 "HandleCreated",
1202 "BindingContextChanged",
1203 "BindingContextChanged"
1205 Form myform = new Form ();
1206 myform.ShowInTaskbar = false;
1207 myform.Visible = true;
1208 MyScrollBar2 s = new MyScrollBar2 ();
1209 myform.Controls.Add (s);
1211 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1212 myform.Dispose ();
1215 [Test]
1216 public void BackColorChangedEventsOrder ()
1218 string[] EventsWanted = {
1219 "HandleCreated",
1220 "BindingContextChanged",
1221 "BindingContextChanged",
1222 "Invalidated",
1223 "BackColorChanged"
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;
1232 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1233 myform.Dispose ();
1236 [Test]
1237 public void BackgroundImageChangedEventsOrder ()
1239 string[] EventsWanted = {
1240 "HandleCreated",
1241 "BindingContextChanged",
1242 "BindingContextChanged",
1243 "Invalidated",
1244 "BackgroundImageChanged"
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");
1254 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1255 myform.Dispose ();
1258 [Test, Ignore ("Need to send proper Click / DoubleClick")]
1259 public void ClickEventsOrder ()
1261 string[] EventsWanted = {
1262 "HandleCreated",
1263 "BindingContextChanged",
1264 "BindingContextChanged"
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 ();
1273 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1274 myform.Dispose ();
1277 [Test, Ignore ("Need to send proper Click / DoubleClick")]
1278 public void DoubleClickEventsOrder ()
1280 string[] EventsWanted = {
1281 "HandleCreated",
1282 "BindingContextChanged",
1283 "BindingContextChanged"
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 ();
1292 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1293 myform.Dispose ();
1296 [Test]
1297 public void FontChangedEventsOrder ()
1299 string[] EventsWanted = {
1300 "HandleCreated",
1301 "BindingContextChanged",
1302 "BindingContextChanged"
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;
1312 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1313 myform.Dispose ();
1316 [Test]
1317 public void ForeColorChangedEventsOrder ()
1319 string[] EventsWanted = {
1320 "HandleCreated",
1321 "BindingContextChanged",
1322 "BindingContextChanged",
1323 "Invalidated",
1324 "ForeColorChanged"
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;
1333 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1334 myform.Dispose ();
1337 [Test]
1338 public void ImeModeChangedChangedEventsOrder ()
1340 string[] EventsWanted = {
1341 "HandleCreated",
1342 "BindingContextChanged",
1343 "BindingContextChanged",
1344 "ImeModeChanged"
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;
1353 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1354 myform.Dispose ();
1357 [Test]
1358 public void MouseDownEventsOrder ()
1360 string[] EventsWanted = {
1361 "HandleCreated",
1362 "BindingContextChanged",
1363 "BindingContextChanged",
1364 "MouseDown"
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 ();
1373 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1374 myform.Dispose ();
1377 [Test]
1378 public void MouseMoveEventsOrder ()
1380 string[] EventsWanted = {
1381 "HandleCreated",
1382 "BindingContextChanged",
1383 "BindingContextChanged",
1384 "MouseMove"
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 ();
1393 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1394 myform.Dispose ();
1397 [Test]
1398 public void MouseUpEventsOrder ()
1400 string[] EventsWanted = {
1401 "HandleCreated",
1402 "BindingContextChanged",
1403 "BindingContextChanged",
1404 "MouseUp"
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 ();
1413 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1414 myform.Dispose ();
1417 [Test]
1418 public void PaintEventsOrder ()
1420 string[] EventsWanted = {
1421 "HandleCreated",
1422 "BindingContextChanged",
1423 "BindingContextChanged",
1424 "Invalidated"
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 ();
1434 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1435 myform.Dispose ();
1438 [Test]
1439 public void ScrollEventsOrder ()
1441 string[] EventsWanted = {
1442 "HandleCreated",
1443 "BindingContextChanged",
1444 "BindingContextChanged",
1445 "Scroll",
1446 "ValueChanged"
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 ();
1455 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1456 myform.Dispose ();
1459 [Test]
1460 public void TextChangedEventsOrder ()
1462 string[] EventsWanted = {
1463 "HandleCreated",
1464 "BindingContextChanged",
1465 "BindingContextChanged",
1466 "TextChanged"
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";
1475 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1476 myform.Dispose ();
1479 [Test]
1480 public void ValueChangedEventsOrder ()
1482 string[] EventsWanted = {
1483 "HandleCreated",
1484 "BindingContextChanged",
1485 "BindingContextChanged",
1486 "ValueChanged"
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;
1495 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1496 myform.Dispose ();