2 // Copyright (c) 2005 Novell, Inc.
5 // Hisham Mardam Bey (hisham.mardambey@gmail.com)
6 // Ritvik Mayank (mritvik@novell.com)
11 using NUnit.Framework;
12 using System.Windows.Forms;
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 ()
26 public Padding PublicDefaultMargin { get { return base.DefaultMargin; } }
29 protected override void OnBackColorChanged (EventArgs e)
31 results.Add ("OnBackColorChanged");
32 base.OnBackColorChanged (e);
35 protected override void OnBackgroundImageChanged (EventArgs e)
37 results.Add ("OnBackgroundImageChanged");
38 base.OnBackgroundImageChanged (e);
41 protected override void OnClick (EventArgs e)
43 results.Add ("OnClick");
47 protected override void OnDoubleClick (EventArgs e)
49 results.Add ("OnDoubleClick");
50 base.OnDoubleClick (e);
53 protected override void OnFontChanged (EventArgs e)
55 results.Add ("OnFontChanged");
56 base.OnFontChanged (e);
59 protected override void OnForeColorChanged (EventArgs e)
61 results.Add ("OnForeColorChanged");
62 base.OnForeColorChanged (e);
65 protected override void OnImeModeChanged (EventArgs e)
67 results.Add ("OnImeModeChanged");
68 base.OnImeModeChanged (e);
71 protected override void OnMouseDown (MouseEventArgs e)
73 results.Add ("OnMouseDown");
77 protected override void OnMouseMove (MouseEventArgs e)
79 results.Add ("OnMouseMove");
83 protected override void OnMouseEnter (EventArgs e)
85 results.Add ("OnMouseEnter");
86 base.OnMouseEnter (e);
89 protected override void OnMouseLeave (EventArgs e)
91 results.Add ("OnMouseLeave");
92 base.OnMouseLeave (e);
95 protected override void OnMouseHover (EventArgs e)
97 results.Add ("OnMouseHover");
98 base.OnMouseHover (e);
101 protected override void OnMouseUp (MouseEventArgs e)
103 results.Add ("OnMouseUp");
107 protected override void OnHandleCreated (EventArgs e)
109 results.Add ("OnHandleCreated");
110 base.OnHandleCreated (e);
113 protected override void OnBindingContextChanged (EventArgs e)
115 results.Add ("OnBindingContextChanged");
116 base.OnBindingContextChanged (e);
119 protected override void OnInvalidated (InvalidateEventArgs e)
121 results.Add("OnInvalidated");
122 base.OnInvalidated (e);
125 protected override void OnResize (EventArgs e)
127 results.Add("OnResize");
131 protected override void OnSizeChanged (EventArgs e)
133 results.Add("OnSizeChanged");
134 base.OnSizeChanged (e);
137 protected override void OnLayout (LayoutEventArgs e)
139 results.Add("OnLayout");
143 protected override void OnVisibleChanged (EventArgs e)
145 results.Add("OnVisibleChanged");
146 base.OnVisibleChanged (e);
149 protected override void OnScroll (ScrollEventArgs e)
151 results.Add("OnScroll");
155 protected override void OnTextChanged (EventArgs e)
157 results.Add("OnTextChanged");
158 base.OnTextChanged (e);
161 protected override void OnValueChanged (EventArgs e)
163 results.Add("OnValueChanged");
164 base.OnValueChanged (e);
167 protected override void OnPaint (PaintEventArgs e)
169 results.Add("OnPaint");
173 public ArrayList Results {
174 get { return results; }
177 //public void MoveMouse ()
181 // m = new Message ();
183 // m.Msg = (int)WndMsg.WM_NCHITTEST;
184 // m.HWnd = this.Handle;
185 // m.WParam = (IntPtr)0x0;
186 // m.LParam = (IntPtr)0x1c604ea;
187 // this.WndProc(ref m);
189 // m.Msg = (int)WndMsg.WM_SETCURSOR;
190 // m.HWnd = this.Handle;
191 // m.WParam = (IntPtr)0x100448;
192 // m.LParam = (IntPtr)0x2000001;
193 // this.WndProc(ref m);
195 // m.Msg = (int)WndMsg.WM_MOUSEFIRST;
196 // m.HWnd = this.Handle;
197 // m.WParam = (IntPtr)0x0;
198 // m.LParam = (IntPtr)0x14000b;
199 // this.WndProc(ref m);
201 // m.Msg = (int)WndMsg.WM_MOUSEHOVER;
202 // m.HWnd = this.Handle;
203 // m.WParam = (IntPtr)0x0;
204 // m.LParam = (IntPtr)0x14000b;
205 // this.WndProc(ref m);
208 //public new void MouseClick()
213 // m = new Message();
215 // m.Msg = (int)WndMsg.WM_LBUTTONDOWN;
216 // m.HWnd = this.Handle;
217 // m.WParam = (IntPtr)0x01;
218 // m.LParam = (IntPtr)0x9004f;
219 // this.WndProc(ref m);
221 // m = new Message();
223 // m.Msg = (int)WndMsg.WM_LBUTTONUP;
224 // m.HWnd = this.Handle;
225 // m.WParam = (IntPtr)0x01;
226 // m.LParam = (IntPtr)0x9004f;
227 // this.WndProc(ref m);
230 //public new void MouseDoubleClick ()
232 // this.MouseClick ();
233 // this.MouseClick ();
235 //public void MouseRightDown()
239 // m = new Message();
241 // m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
242 // m.HWnd = this.Handle;
243 // m.WParam = (IntPtr)0x01;
244 // m.LParam = (IntPtr)0x9004f;
245 // this.WndProc(ref m);
248 //public void MouseRightUp()
252 // m = new Message();
254 // m.Msg = (int)WndMsg.WM_RBUTTONUP;
255 // m.HWnd = this.Handle;
256 // m.WParam = (IntPtr)0x01;
257 // m.LParam = (IntPtr)0x9004f;
258 // this.WndProc(ref m);
261 public void ScrollNow ()
268 m.HWnd = this.Handle;
269 m.WParam = (IntPtr)0x1;
270 m.LParam = (IntPtr)0x1a051a;
274 m.HWnd = this.Handle;
275 m.WParam = (IntPtr)0x1;
276 m.LParam = (IntPtr)0x12eb34;
281 public class ScrollBarTest : TestHelper
284 public void PubPropTest ()
286 MyScrollBar myscrlbar = new MyScrollBar ();
289 myscrlbar.BackColor = Color.Red;
290 Assert.AreEqual (255, myscrlbar.BackColor.R, "B2");
291 myscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
292 Assert.AreEqual (16, myscrlbar.BackgroundImage.Height, "B3");
295 Assert.AreEqual ("ControlText", myscrlbar.ForeColor.Name, "F1");
298 //Assert.AreEqual (ImeMode.Disable, myscrlbar.ImeMode, "I1");
301 Assert.AreEqual (10, myscrlbar.LargeChange, "L1");
304 Assert.AreEqual (100, myscrlbar.Maximum, "M1");
305 Assert.AreEqual (0, myscrlbar.Minimum, "M2");
306 myscrlbar.Maximum = 300;
307 myscrlbar.Minimum = 100;
308 Assert.AreEqual (300, myscrlbar.Maximum, "M3");
309 Assert.AreEqual (100, myscrlbar.Minimum, "M4");
312 Assert.AreEqual (null, myscrlbar.Site, "S1");
313 Assert.AreEqual (1, myscrlbar.SmallChange, "S2");
314 myscrlbar.SmallChange = 10;
315 Assert.AreEqual (10, myscrlbar.SmallChange, "S3");
318 Assert.AreEqual (false, myscrlbar.TabStop, "T1");
319 myscrlbar.TabStop = true;
320 Assert.AreEqual (true, myscrlbar.TabStop, "T2");
321 Assert.AreEqual ("", myscrlbar.Text, "T3");
322 myscrlbar.Text = "MONO SCROLLBAR";
323 Assert.AreEqual ("MONO SCROLLBAR", myscrlbar.Text, "T4");
326 Assert.AreEqual (100, myscrlbar.Value, "V1");
327 myscrlbar.Value = 150;
328 Assert.AreEqual (150, myscrlbar.Value, "V2");
333 [ExpectedException (typeof (ArgumentOutOfRangeException))]
335 [ExpectedException (typeof (ArgumentException))]
337 public void ExceptionValueTest ()
339 MyScrollBar myscrlbar = new MyScrollBar ();
340 myscrlbar.Minimum = 10;
341 myscrlbar.Maximum = 20;
343 myscrlbar.Value = 21;
348 [ExpectedException (typeof (ArgumentOutOfRangeException))]
350 [ExpectedException (typeof (ArgumentException))]
352 public void ExceptionSmallChangeTest ()
354 MyScrollBar myscrlbar = new MyScrollBar ();
355 myscrlbar.SmallChange = -1;
360 [ExpectedException (typeof (ArgumentOutOfRangeException))]
362 [ExpectedException (typeof (ArgumentException))]
364 public void ExceptionLargeChangeTest ()
366 MyScrollBar myscrlbar = new MyScrollBar ();
367 myscrlbar.LargeChange = -1;
371 public void PubMethodTest ()
373 MyScrollBar myscrlbar = new MyScrollBar ();
374 myscrlbar.Text = "New HScrollBar";
375 Assert.AreEqual ("MonoTests.System.Windows.Forms.MyScrollBar, Minimum: 0, Maximum: 100, Value: 0",
376 myscrlbar.ToString (), "T5");
381 public void DefaultMarginTest ()
383 MyScrollBar s = new MyScrollBar ();
384 Assert.AreEqual (new Padding (0), s.PublicDefaultMargin, "A1");
388 public void GetScaledBoundsTest ()
390 ScaleScrollBar c = new ScaleScrollBar ();
392 Rectangle r = new Rectangle (10, 20, 30, 40);
394 Assert.AreEqual (new Rectangle (20, 10, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.All), "A1");
395 Assert.AreEqual (new Rectangle (20, 10, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Location), "A2");
396 Assert.AreEqual (new Rectangle (10, 20, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Size), "A3");
397 Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Height), "A4");
398 Assert.AreEqual (new Rectangle (20, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.X), "A5");
399 Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.None), "A6");
402 private class ScaleScrollBar : ScrollBar
404 public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified)
406 return base.GetScaledBounds (bounds, factor, specified);
411 public void HScrollGetScaledBoundsTest ()
413 HScaleScrollBar c = new HScaleScrollBar ();
415 Rectangle r = new Rectangle (10, 20, 30, 40);
417 Assert.AreEqual (new Rectangle (20, 10, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.All), "A1");
418 Assert.AreEqual (new Rectangle (20, 10, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Location), "A2");
419 Assert.AreEqual (new Rectangle (10, 20, 60, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Size), "A3");
420 Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Height), "A4");
421 Assert.AreEqual (new Rectangle (20, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.X), "A5");
422 Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.None), "A6");
425 private class HScaleScrollBar : HScrollBar
427 public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified)
429 return base.GetScaledBounds (bounds, factor, specified);
434 public void VScrollGetScaledBoundsTest ()
436 VScaleScrollBar c = new VScaleScrollBar ();
438 Rectangle r = new Rectangle (10, 20, 30, 40);
440 Assert.AreEqual (new Rectangle (20, 10, 30, 20), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.All), "A1");
441 Assert.AreEqual (new Rectangle (20, 10, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Location), "A2");
442 Assert.AreEqual (new Rectangle (10, 20, 30, 20), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Size), "A3");
443 Assert.AreEqual (new Rectangle (10, 20, 30, 20), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.Height), "A4");
444 Assert.AreEqual (new Rectangle (20, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.X), "A5");
445 Assert.AreEqual (new Rectangle (10, 20, 30, 40), c.PublicGetScaledBounds (r, new SizeF (2f, .5f), BoundsSpecified.None), "A6");
448 private class VScaleScrollBar : VScrollBar
450 public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified)
452 return base.GetScaledBounds (bounds, factor, specified);
457 public void MaximumValueTest ()
459 ScrollBar s = new VScrollBar ();
466 Assert.AreEqual (0, s.LargeChange, "A1");
467 Assert.AreEqual (0, s.Maximum, "A2");
468 Assert.AreEqual (0, s.Value, "A3");
473 public void LargeSmallerThanSmallChange ()
475 ScrollBar s = new VScrollBar ();
479 Assert.AreEqual (0, s.LargeChange, "A1");
480 Assert.AreEqual (0, s.SmallChange, "A2");
484 Assert.AreEqual (0, s.LargeChange, "A3");
485 Assert.AreEqual (0, s.SmallChange, "A4");
489 Assert.AreEqual (15, s.LargeChange, "A5");
490 Assert.AreEqual (10, s.SmallChange, "A6");
494 Assert.AreEqual (5, s.LargeChange, "A7");
495 Assert.AreEqual (5, s.SmallChange, "A8");
499 public void CalculateLargeChange ()
501 ScrollBar s = new HScrollBar ();
505 s.LargeChange = 1000;
507 Assert.AreEqual (101, s.LargeChange, "A1");
511 s.LargeChange = 1000;
513 Assert.AreEqual (2, s.LargeChange, "A2");
516 s.LargeChange = 1000;
518 Assert.AreEqual (1, s.LargeChange, "A3");
523 public class ScrollBarEventTest : TestHelper
525 static bool eventhandled = false;
526 public void ScrollBar_EventHandler (object sender,EventArgs e)
531 public void ScrollBarMouse_EventHandler (object sender,MouseEventArgs e)
536 public void ScrollBarScroll_EventHandler (object sender,ScrollEventArgs e)
541 public void ScrollBarPaint_EventHandler (object sender,PaintEventArgs e)
547 public void BackColorChangedTest ()
549 Form myform = new Form ();
550 myform.ShowInTaskbar = false;
551 myform.Visible = true;
552 ScrollBar myHscrlbar = new HScrollBar ();
553 myform.Controls.Add (myHscrlbar);
554 myHscrlbar.BackColorChanged += new EventHandler (ScrollBar_EventHandler);
555 myHscrlbar.BackColor = Color.Red;
556 Assert.AreEqual (true, eventhandled, "B4");
557 eventhandled = false;
562 public void BackgroundImageChangedTest ()
564 Form myform = new Form ();
565 myform.ShowInTaskbar = false;
566 myform.Visible = true;
567 ScrollBar myHscrlbar = new HScrollBar ();
568 myform.Controls.Add (myHscrlbar);
569 myHscrlbar.BackgroundImageChanged += new EventHandler (ScrollBar_EventHandler);
570 myHscrlbar.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
571 Assert.AreEqual (true, eventhandled, "B5");
572 eventhandled = false;
577 public void FontChangedTest ()
579 Form myform = new Form ();
580 myform.ShowInTaskbar = false;
581 myform.Visible = true;
582 ScrollBar myHscrlbar = new HScrollBar ();
583 myform.Controls.Add (myHscrlbar);
584 myHscrlbar.Font = new Font (FontFamily.GenericMonospace, 10);
585 myHscrlbar.FontChanged += new EventHandler (ScrollBar_EventHandler);
586 FontDialog myFontDialog = new FontDialog();
587 myHscrlbar.Font = myFontDialog.Font;
588 Assert.AreEqual (true, eventhandled, "F2");
589 eventhandled = false;
594 public void ForeColorChangedTest ()
596 Form myform = new Form ();
597 myform.ShowInTaskbar = false;
598 myform.Visible = true;
599 ScrollBar myHscrlbar = new HScrollBar ();
600 myform.Controls.Add (myHscrlbar);
601 myHscrlbar.ForeColorChanged += new EventHandler (ScrollBar_EventHandler);
602 myHscrlbar.ForeColor = Color.Azure;
603 Assert.AreEqual (true, eventhandled, "F3");
604 eventhandled = false;
609 public void ImeModehangedTest ()
611 Form myform = new Form ();
612 myform.ShowInTaskbar = false;
613 myform.Visible = true;
614 ScrollBar myHscrlbar = new HScrollBar ();
615 myform.Controls.Add (myHscrlbar);
616 myHscrlbar.ImeModeChanged += new EventHandler (ScrollBar_EventHandler);
617 myHscrlbar.ImeMode = ImeMode.Katakana;
618 Assert.AreEqual (true, eventhandled, "I2");
619 eventhandled = false;
624 //public void MouseDownTest ()
626 // Form myform = new Form ();
627 // myform.ShowInTaskbar = false;
628 // myform.Visible = true;
629 // MyScrollBar myHscrlbar = new MyScrollBar ();
630 // myform.Controls.Add (myHscrlbar);
631 // myHscrlbar.MouseDown += new MouseEventHandler (ScrollBarMouse_EventHandler);
632 // myHscrlbar.MouseRightDown ();
634 // Assert.AreEqual (true, eventhandled, "M5");
635 // eventhandled = false;
636 // myform.Dispose ();
640 //public void MouseMoveTest ()
642 // Form myform = new Form ();
643 // myform.ShowInTaskbar = false;
644 // myform.Visible = true;
645 // MyScrollBar myHscrlbar = new MyScrollBar ();
646 // myform.Controls.Add (myHscrlbar);
647 // myHscrlbar.MouseMove += new MouseEventHandler (ScrollBarMouse_EventHandler);
648 // myHscrlbar.MoveMouse ();
650 // Assert.AreEqual (true, eventhandled, "M6");
651 // eventhandled = false;
652 // myform.Dispose ();
656 //public void MouseUpTest ()
658 // Form myform = new Form ();
659 // myform.ShowInTaskbar = false;
660 // myform.Visible = true;
661 // MyScrollBar myHscrlbar = new MyScrollBar ();
662 // myform.Controls.Add (myHscrlbar);
663 // myHscrlbar.MouseUp += new MouseEventHandler (ScrollBarMouse_EventHandler);
664 // myHscrlbar.MouseRightUp ();
666 // Assert.AreEqual (true, eventhandled, "M7");
667 // eventhandled = false;
668 // myform.Dispose ();
672 [Category ("NotWorking")]
673 public void ScrollTest ()
675 Form myform = new Form ();
676 myform.ShowInTaskbar = false;
677 myform.Visible = true;
678 MyScrollBar myHscrlbar = new MyScrollBar ();
679 myform.Controls.Add (myHscrlbar);
680 myHscrlbar.Scroll += new ScrollEventHandler (ScrollBarScroll_EventHandler);
681 myHscrlbar.ScrollNow ();
683 Assert.AreEqual (true, eventhandled, "S4");
684 eventhandled = false;
689 public void TextChangedTest ()
691 Form myform = new Form ();
692 myform.ShowInTaskbar = false;
693 myform.Visible = true;
694 MyScrollBar myHscrlbar = new MyScrollBar ();
695 myform.Controls.Add (myHscrlbar);
696 myHscrlbar.TextChanged += new EventHandler (ScrollBar_EventHandler);
697 myHscrlbar.Text = "foo";
699 Assert.AreEqual (true, eventhandled, "T6");
700 eventhandled = false;
705 public void ValueChangeTest ()
707 Form myform = new Form ();
708 myform.ShowInTaskbar = false;
709 myform.Visible = true;
710 MyScrollBar myHscrlbar = new MyScrollBar ();
711 myform.Controls.Add (myHscrlbar);
712 myHscrlbar.Value = 40 ;
713 myHscrlbar.ValueChanged += new EventHandler (ScrollBar_EventHandler);
714 myHscrlbar.Value = 50 ;
715 Assert.AreEqual (true, eventhandled, "V3");
716 eventhandled = false;
721 public class MyHScrollBar : HScrollBar
723 public MyHScrollBar () : base ()
727 public Size MyDefaultSize {
728 get { return DefaultSize; }
731 public CreateParams MyCreateParams {
732 get { return CreateParams; }
737 public class MyHScrollBarTest : TestHelper
740 public void ProtectedTest ()
742 MyHScrollBar msbar = new MyHScrollBar ();
744 Assert.AreEqual (80, msbar.MyDefaultSize.Width, "D1");
745 // this is environment dependent.
746 //Assert.AreEqual (21, msbar.MyDefaultSize.Height, "D2");
750 public class MyVScrollBar : VScrollBar
752 public MyVScrollBar () : base ()
756 public Size MyDefaultSize {
757 get { return DefaultSize; }
760 public CreateParams MyCreateParams {
761 get { return CreateParams; }
766 public class MyVScrollBarTest : TestHelper
769 public void PubMethodTest ()
771 MyVScrollBar msbar = new MyVScrollBar ();
773 Assert.AreEqual (RightToLeft.No, msbar.RightToLeft, "R1");
778 public void ProtMethodTest ()
780 MyVScrollBar msbar = new MyVScrollBar ();
782 // This is environment dependent.
783 //Assert.AreEqual (21, msbar.MyDefaultSize.Width, "D3");
784 Assert.AreEqual (80, msbar.MyDefaultSize.Height, "D4");
789 [Ignore("Tests too strict")]
790 public class HScrollBarTestEventsOrder : TestHelper
792 public string [] ArrayListToString (ArrayList arrlist)
794 string [] retval = new string [arrlist.Count];
795 for (int i = 0; i < arrlist.Count; i++)
796 retval[i] = (string)arrlist[i];
801 public void CreateEventsOrder ()
803 string[] EventsWanted = {
805 "OnBindingContextChanged",
806 "OnBindingContextChanged"
808 Form myform = new Form ();
809 myform.ShowInTaskbar = false;
810 myform.Visible = true;
811 MyScrollBar s = new MyScrollBar ();
812 myform.Controls.Add (s);
814 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
819 public void BackColorChangedEventsOrder ()
821 string[] EventsWanted = {
823 "OnBindingContextChanged",
824 "OnBindingContextChanged",
825 "OnBackColorChanged",
828 Form myform = new Form ();
829 myform.ShowInTaskbar = false;
830 myform.Visible = true;
831 MyScrollBar s = new MyScrollBar ();
832 myform.Controls.Add (s);
833 s.BackColor = Color.Aqua;
835 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
840 public void BackgroundImageChangedEventsOrder ()
842 string[] EventsWanted = {
844 "OnBindingContextChanged",
845 "OnBindingContextChanged",
846 "OnBackgroundImageChanged",
849 Form myform = new Form ();
850 myform.ShowInTaskbar = false;
851 myform.Visible = true;
852 MyScrollBar s = new MyScrollBar ();
853 myform.Controls.Add (s);
854 s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
856 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
860 //[Test, Ignore ("Need to send proper Click / DoubleClick")]
861 //public void ClickEventsOrder ()
863 // string[] EventsWanted = {
864 // "OnHandleCreated",
865 // "OnBindingContextChanged",
866 // "OnBindingContextChanged"
868 // Form myform = new Form ();
869 // myform.ShowInTaskbar = false;
870 // myform.Visible = true;
871 // MyScrollBar s = new MyScrollBar ();
872 // myform.Controls.Add (s);
875 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
876 // myform.Dispose ();
879 //[Test, Ignore ("Need to send proper Click / DoubleClick")]
880 //public void DoubleClickEventsOrder ()
882 // string[] EventsWanted = {
883 // "OnHandleCreated",
884 // "OnBindingContextChanged",
885 // "OnBindingContextChanged"
887 // Form myform = new Form ();
888 // myform.ShowInTaskbar = false;
889 // myform.Visible = true;
890 // MyScrollBar s = new MyScrollBar ();
891 // myform.Controls.Add (s);
892 // s.MouseDoubleClick ();
894 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
895 // myform.Dispose ();
899 public void FontChangedEventsOrder ()
901 string[] EventsWanted = {
903 "OnBindingContextChanged",
904 "OnBindingContextChanged"
906 Form myform = new Form ();
907 myform.ShowInTaskbar = false;
908 myform.Visible = true;
909 MyScrollBar s = new MyScrollBar ();
910 myform.Controls.Add (s);
911 FontDialog myFontDialog = new FontDialog();
912 s.Font = myFontDialog.Font;
914 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
919 public void ForeColorChangedEventsOrder ()
921 string[] EventsWanted = {
923 "OnBindingContextChanged",
924 "OnBindingContextChanged",
925 "OnForeColorChanged",
928 Form myform = new Form ();
929 myform.ShowInTaskbar = false;
930 myform.Visible = true;
931 MyScrollBar s = new MyScrollBar ();
932 myform.Controls.Add (s);
933 s.ForeColor = Color.Aqua;
935 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
940 public void ImeModeChangedChangedEventsOrder ()
942 string[] EventsWanted = {
944 "OnBindingContextChanged",
945 "OnBindingContextChanged",
948 Form myform = new Form ();
949 myform.ShowInTaskbar = false;
950 myform.Visible = true;
951 MyScrollBar s = new MyScrollBar ();
952 myform.Controls.Add (s);
953 s.ImeMode = ImeMode.Katakana;
955 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
960 //public void MouseDownEventsOrder ()
962 // string[] EventsWanted = {
963 // "OnHandleCreated",
964 // "OnBindingContextChanged",
965 // "OnBindingContextChanged",
968 // Form myform = new Form ();
969 // myform.ShowInTaskbar = false;
970 // myform.Visible = true;
971 // MyScrollBar s = new MyScrollBar ();
972 // myform.Controls.Add (s);
973 // s.MouseRightDown ();
975 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
976 // myform.Dispose ();
980 //public void MouseMoveEventsOrder ()
982 // string[] EventsWanted = {
983 // "OnHandleCreated",
984 // "OnBindingContextChanged",
985 // "OnBindingContextChanged",
989 // Form myform = new Form ();
990 // myform.ShowInTaskbar = false;
991 // myform.Visible = true;
992 // MyScrollBar s = new MyScrollBar ();
993 // myform.Controls.Add (s);
996 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
997 // myform.Dispose ();
1001 //public void MouseUpEventsOrder ()
1003 // string[] EventsWanted = {
1004 // "OnHandleCreated",
1005 // "OnBindingContextChanged",
1006 // "OnBindingContextChanged",
1009 // Form myform = new Form ();
1010 // myform.ShowInTaskbar = false;
1011 // myform.Visible = true;
1012 // MyScrollBar s = new MyScrollBar ();
1013 // myform.Controls.Add (s);
1014 // s.MouseRightUp ();
1016 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1017 // myform.Dispose ();
1021 public void PaintEventsOrder ()
1023 string[] EventsWanted = {
1025 "OnBindingContextChanged",
1026 "OnBindingContextChanged",
1029 Form myform = new Form ();
1030 myform.ShowInTaskbar = false;
1031 myform.Visible = true;
1032 MyScrollBar s = new MyScrollBar ();
1033 myform.Controls.Add (s);
1036 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1041 public void ScrollEventsOrder ()
1043 string[] EventsWanted = {
1045 "OnBindingContextChanged",
1046 "OnBindingContextChanged",
1050 Form myform = new Form ();
1051 myform.ShowInTaskbar = false;
1052 myform.Visible = true;
1053 MyScrollBar s = new MyScrollBar ();
1054 myform.Controls.Add (s);
1057 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1062 public void TextChangedEventsOrder ()
1064 string[] EventsWanted = {
1066 "OnBindingContextChanged",
1067 "OnBindingContextChanged",
1070 Form myform = new Form ();
1071 myform.ShowInTaskbar = false;
1072 myform.Visible = true;
1073 MyScrollBar s = new MyScrollBar ();
1074 myform.Controls.Add (s);
1077 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1082 public void ValueChangedEventsOrder ()
1084 string[] EventsWanted = {
1086 "OnBindingContextChanged",
1087 "OnBindingContextChanged",
1090 Form myform = new Form ();
1091 myform.ShowInTaskbar = false;
1092 myform.Visible = true;
1093 MyScrollBar s = new MyScrollBar ();
1094 myform.Controls.Add (s);
1097 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1102 public class MyScrollBar2 : HScrollBar
1104 protected ArrayList results = new ArrayList ();
1105 public MyScrollBar2 () : base ()
1107 this.HandleCreated += new EventHandler (HandleCreated_Handler);
1108 this.BackColorChanged += new EventHandler (BackColorChanged_Handler);
1109 this.BackgroundImageChanged += new EventHandler (BackgroundImageChanged_Handler);
1110 this.BindingContextChanged += new EventHandler (BindingContextChanged_Handler);
1111 this.Click += new EventHandler (Click_Handler);
1112 this.DoubleClick += new EventHandler (DoubleClick_Handler);
1113 this.FontChanged += new EventHandler (FontChanged_Handler);
1114 this.ForeColorChanged += new EventHandler (ForeColorChanged_Handler);
1115 this.ImeModeChanged += new EventHandler (ImeModeChanged_Handler);
1116 this.MouseDown += new MouseEventHandler (MouseDown_Handler);
1117 this.MouseMove += new MouseEventHandler (MouseMove_Handler);
1118 this.MouseUp += new MouseEventHandler (MouseUp_Handler);
1119 this.Invalidated += new InvalidateEventHandler (Invalidated_Handler);
1120 this.Resize += new EventHandler (Resize_Handler);
1121 this.SizeChanged += new EventHandler (SizeChanged_Handler);
1122 this.Layout += new LayoutEventHandler (Layout_Handler);
1123 this.VisibleChanged += new EventHandler (VisibleChanged_Handler);
1124 this.Paint += new PaintEventHandler (Paint_Handler);
1125 this.Scroll += new ScrollEventHandler (Scroll_Handler);
1126 this.TextChanged += new EventHandler (TextChanged_Handler);
1127 this.ValueChanged += new EventHandler (ValueChanged_Handler);
1130 protected void HandleCreated_Handler (object sender, EventArgs e)
1132 results.Add ("HandleCreated");
1135 protected void BackColorChanged_Handler (object sender, EventArgs e)
1137 results.Add ("BackColorChanged");
1140 protected void BackgroundImageChanged_Handler (object sender, EventArgs e)
1142 results.Add ("BackgroundImageChanged");
1145 protected void Click_Handler (object sender, EventArgs e)
1147 results.Add ("Click");
1150 protected void DoubleClick_Handler (object sender, EventArgs e)
1152 results.Add ("DoubleClick");
1155 protected void FontChanged_Handler (object sender, EventArgs e)
1157 results.Add ("FontChanged");
1160 protected void ForeColorChanged_Handler (object sender, EventArgs e)
1162 results.Add ("ForeColorChanged");
1165 protected void ImeModeChanged_Handler (object sender, EventArgs e)
1167 results.Add ("ImeModeChanged");
1170 protected void MouseDown_Handler (object sender, MouseEventArgs e)
1172 results.Add ("MouseDown");
1175 protected void MouseMove_Handler (object sender, MouseEventArgs e)
1177 results.Add ("MouseMove");
1180 protected void MouseUp_Handler (object sender, MouseEventArgs e)
1182 results.Add ("MouseUp");
1185 protected void BindingContextChanged_Handler (object sender, EventArgs e)
1187 results.Add ("BindingContextChanged");
1190 protected void Invalidated_Handler (object sender, InvalidateEventArgs e)
1192 results.Add("Invalidated");
1195 protected void Resize_Handler (object sender, EventArgs e)
1197 results.Add("Resize");
1200 protected void SizeChanged_Handler (object sender, EventArgs e)
1202 results.Add("SizeChanged");
1205 protected void Layout_Handler (object sender, LayoutEventArgs e)
1207 results.Add("Layout");
1210 protected void VisibleChanged_Handler (object sender, EventArgs e)
1212 results.Add("VisibleChanged");
1215 protected void Paint_Handler (object sender, PaintEventArgs e)
1217 results.Add("Paint");
1220 protected void Scroll_Handler (object sender, ScrollEventArgs e)
1222 results.Add ("Scroll");
1225 protected void TextChanged_Handler (object sender, EventArgs e)
1227 results.Add ("TextChanged");
1230 protected void ValueChanged_Handler (object sender, EventArgs e)
1232 results.Add ("ValueChanged");
1235 public ArrayList Results {
1236 get { return results; }
1239 //public void MoveMouse ()
1243 // m = new Message ();
1245 // m.Msg = (int)WndMsg.WM_NCHITTEST;
1246 // m.HWnd = this.Handle;
1247 // m.WParam = (IntPtr)0x0;
1248 // m.LParam = (IntPtr)0x1c604ea;
1249 // this.WndProc(ref m);
1251 // m.Msg = (int)WndMsg.WM_SETCURSOR;
1252 // m.HWnd = this.Handle;
1253 // m.WParam = (IntPtr)0x100448;
1254 // m.LParam = (IntPtr)0x2000001;
1255 // this.WndProc(ref m);
1257 // m.Msg = (int)WndMsg.WM_MOUSEFIRST;
1258 // m.HWnd = this.Handle;
1259 // m.WParam = (IntPtr)0x0;
1260 // m.LParam = (IntPtr)0x14000b;
1261 // this.WndProc(ref m);
1263 // m.Msg = (int)WndMsg.WM_MOUSEHOVER;
1264 // m.HWnd = this.Handle;
1265 // m.WParam = (IntPtr)0x0;
1266 // m.LParam = (IntPtr)0x14000b;
1267 // this.WndProc(ref m);
1270 //public void MouseRightDown()
1274 // m = new Message();
1276 // m.Msg = (int)WndMsg.WM_RBUTTONDOWN;
1277 // m.HWnd = this.Handle;
1278 // m.WParam = (IntPtr)0x01;
1279 // m.LParam = (IntPtr)0x9004f;
1280 // this.WndProc(ref m);
1283 //public new void MouseClick()
1287 // m = new Message();
1289 // m.Msg = (int)WndMsg.WM_LBUTTONDOWN;
1290 // m.HWnd = this.Handle;
1291 // m.WParam = (IntPtr)0x01;
1292 // m.LParam = (IntPtr)0x9004f;
1293 // this.WndProc(ref m);
1295 // m = new Message();
1297 // m.Msg = (int)WndMsg.WM_LBUTTONUP;
1298 // m.HWnd = this.Handle;
1299 // m.WParam = (IntPtr)0x01;
1300 // m.LParam = (IntPtr)0x9004f;
1301 // this.WndProc(ref m);
1304 //public new void MouseDoubleClick ()
1310 //public void MouseRightUp()
1314 // m = new Message();
1316 // m.Msg = (int)WndMsg.WM_RBUTTONUP;
1317 // m.HWnd = this.Handle;
1318 // m.WParam = (IntPtr)0x01;
1319 // m.LParam = (IntPtr)0x9004f;
1320 // this.WndProc(ref m);
1323 public void ScrollNow ()
1330 m.HWnd = this.Handle;
1331 m.WParam = (IntPtr)0x1;
1332 m.LParam = (IntPtr)0x1a051a;
1333 this.WndProc (ref m);
1336 m.HWnd = this.Handle;
1337 m.WParam = (IntPtr)0x1;
1338 m.LParam = (IntPtr)0x12eb34;
1339 this.WndProc (ref m);
1344 [Ignore("Tests too strict")]
1345 public class HScrollBarTestEventsOrder2 : TestHelper
1347 public string [] ArrayListToString (ArrayList arrlist)
1349 string [] retval = new string [arrlist.Count];
1350 for (int i = 0; i < arrlist.Count; i++)
1351 retval[i] = (string)arrlist[i];
1356 public void CreateEventsOrder ()
1358 string[] EventsWanted = {
1360 "BindingContextChanged",
1361 "BindingContextChanged"
1363 Form myform = new Form ();
1364 myform.ShowInTaskbar = false;
1365 myform.Visible = true;
1366 MyScrollBar2 s = new MyScrollBar2 ();
1367 myform.Controls.Add (s);
1369 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1374 public void BackColorChangedEventsOrder ()
1376 string[] EventsWanted = {
1378 "BindingContextChanged",
1379 "BindingContextChanged",
1383 Form myform = new Form ();
1384 myform.ShowInTaskbar = false;
1385 myform.Visible = true;
1386 MyScrollBar2 s = new MyScrollBar2 ();
1387 myform.Controls.Add (s);
1388 s.BackColor = Color.Aqua;
1390 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1395 public void BackgroundImageChangedEventsOrder ()
1397 string[] EventsWanted = {
1399 "BindingContextChanged",
1400 "BindingContextChanged",
1402 "BackgroundImageChanged"
1405 Form myform = new Form ();
1406 myform.ShowInTaskbar = false;
1407 myform.Visible = true;
1408 MyScrollBar2 s = new MyScrollBar2 ();
1409 myform.Controls.Add (s);
1410 s.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
1412 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1416 //[Test, Ignore ("Need to send proper Click / DoubleClick")]
1417 //public void ClickEventsOrder ()
1419 // string[] EventsWanted = {
1421 // "BindingContextChanged",
1422 // "BindingContextChanged"
1424 // Form myform = new Form ();
1425 // myform.ShowInTaskbar = false;
1426 // myform.Visible = true;
1427 // MyScrollBar2 s = new MyScrollBar2 ();
1428 // myform.Controls.Add (s);
1431 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1432 // myform.Dispose ();
1435 //[Test, Ignore ("Need to send proper Click / DoubleClick")]
1436 //public void DoubleClickEventsOrder ()
1438 // string[] EventsWanted = {
1440 // "BindingContextChanged",
1441 // "BindingContextChanged"
1443 // Form myform = new Form ();
1444 // myform.ShowInTaskbar = false;
1445 // myform.Visible = true;
1446 // MyScrollBar2 s = new MyScrollBar2 ();
1447 // myform.Controls.Add (s);
1448 // s.MouseDoubleClick ();
1450 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1451 // myform.Dispose ();
1455 public void FontChangedEventsOrder ()
1457 string[] EventsWanted = {
1459 "BindingContextChanged",
1460 "BindingContextChanged"
1462 Form myform = new Form ();
1463 myform.ShowInTaskbar = false;
1464 myform.Visible = true;
1465 MyScrollBar2 s = new MyScrollBar2 ();
1466 myform.Controls.Add (s);
1467 FontDialog myFontDialog = new FontDialog();
1468 s.Font = myFontDialog.Font;
1470 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1475 public void ForeColorChangedEventsOrder ()
1477 string[] EventsWanted = {
1479 "BindingContextChanged",
1480 "BindingContextChanged",
1484 Form myform = new Form ();
1485 myform.ShowInTaskbar = false;
1486 myform.Visible = true;
1487 MyScrollBar2 s = new MyScrollBar2 ();
1488 myform.Controls.Add (s);
1489 s.ForeColor = Color.Aqua;
1491 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1496 public void ImeModeChangedChangedEventsOrder ()
1498 string[] EventsWanted = {
1500 "BindingContextChanged",
1501 "BindingContextChanged",
1504 Form myform = new Form ();
1505 myform.ShowInTaskbar = false;
1506 myform.Visible = true;
1507 MyScrollBar2 s = new MyScrollBar2 ();
1508 myform.Controls.Add (s);
1509 s.ImeMode = ImeMode.Katakana;
1511 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1516 //public void MouseDownEventsOrder ()
1518 // string[] EventsWanted = {
1520 // "BindingContextChanged",
1521 // "BindingContextChanged",
1524 // Form myform = new Form ();
1525 // myform.ShowInTaskbar = false;
1526 // myform.Visible = true;
1527 // MyScrollBar2 s = new MyScrollBar2 ();
1528 // myform.Controls.Add (s);
1529 // s.MouseRightDown ();
1531 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1532 // myform.Dispose ();
1536 //public void MouseMoveEventsOrder ()
1538 // string[] EventsWanted = {
1540 // "BindingContextChanged",
1541 // "BindingContextChanged",
1544 // Form myform = new Form ();
1545 // myform.ShowInTaskbar = false;
1546 // myform.Visible = true;
1547 // MyScrollBar2 s = new MyScrollBar2 ();
1548 // myform.Controls.Add (s);
1551 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1552 // myform.Dispose ();
1556 //public void MouseUpEventsOrder ()
1558 // string[] EventsWanted = {
1560 // "BindingContextChanged",
1561 // "BindingContextChanged",
1564 // Form myform = new Form ();
1565 // myform.ShowInTaskbar = false;
1566 // myform.Visible = true;
1567 // MyScrollBar2 s = new MyScrollBar2 ();
1568 // myform.Controls.Add (s);
1569 // s.MouseRightUp ();
1571 // Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1572 // myform.Dispose ();
1576 public void PaintEventsOrder ()
1578 string[] EventsWanted = {
1580 "BindingContextChanged",
1581 "BindingContextChanged",
1584 Form myform = new Form ();
1585 myform.ShowInTaskbar = false;
1586 myform.Visible = true;
1587 MyScrollBar2 s = new MyScrollBar2 ();
1588 myform.Controls.Add (s);
1592 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1597 public void ScrollEventsOrder ()
1599 string[] EventsWanted = {
1601 "BindingContextChanged",
1602 "BindingContextChanged",
1606 Form myform = new Form ();
1607 myform.ShowInTaskbar = false;
1608 myform.Visible = true;
1609 MyScrollBar2 s = new MyScrollBar2 ();
1610 myform.Controls.Add (s);
1613 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1618 public void TextChangedEventsOrder ()
1620 string[] EventsWanted = {
1622 "BindingContextChanged",
1623 "BindingContextChanged",
1626 Form myform = new Form ();
1627 myform.ShowInTaskbar = false;
1628 myform.Visible = true;
1629 MyScrollBar2 s = new MyScrollBar2 ();
1630 myform.Controls.Add (s);
1633 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1638 public void ValueChangedEventsOrder ()
1640 string[] EventsWanted = {
1642 "BindingContextChanged",
1643 "BindingContextChanged",
1646 Form myform = new Form ();
1647 myform.ShowInTaskbar = false;
1648 myform.Visible = true;
1649 MyScrollBar2 s = new MyScrollBar2 ();
1650 myform.Controls.Add (s);
1653 Assert.AreEqual (EventsWanted, ArrayListToString (s.Results));
1660 public class ScrollEventArgsTest : TestHelper
1663 public void Defaults ()
1665 ScrollEventArgs e = new ScrollEventArgs (ScrollEventType.EndScroll, 5);
1667 Assert.AreEqual (5, e.NewValue, "A1");
1668 Assert.AreEqual (-1, e.OldValue, "A2");
1669 Assert.AreEqual (ScrollOrientation.HorizontalScroll, e.ScrollOrientation, "A3");
1670 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A4");
1672 e = new ScrollEventArgs (ScrollEventType.EndScroll, 5, 10);
1674 Assert.AreEqual (10, e.NewValue, "A5");
1675 Assert.AreEqual (5, e.OldValue, "A6");
1676 Assert.AreEqual (ScrollOrientation.HorizontalScroll, e.ScrollOrientation, "A7");
1677 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A8");
1679 e = new ScrollEventArgs (ScrollEventType.EndScroll, 5, ScrollOrientation.VerticalScroll);
1681 Assert.AreEqual (5, e.NewValue, "A9");
1682 Assert.AreEqual (-1, e.OldValue, "A10");
1683 Assert.AreEqual (ScrollOrientation.VerticalScroll, e.ScrollOrientation, "A11");
1684 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A12");
1686 e = new ScrollEventArgs (ScrollEventType.EndScroll, 5, 10, ScrollOrientation.VerticalScroll);
1688 Assert.AreEqual (10, e.NewValue, "A13");
1689 Assert.AreEqual (5, e.OldValue, "A14");
1690 Assert.AreEqual (ScrollOrientation.VerticalScroll, e.ScrollOrientation, "A15");
1691 Assert.AreEqual (ScrollEventType.EndScroll, e.Type, "A16");