2 // Copyright (c) 2005 Novell, Inc.
5 // Hisham Mardam Bey (hisham.mardambey@gmail.com)
10 using NUnit.Framework;
11 using System.Windows.Forms;
13 using System.Collections;
15 namespace MonoTests.System.Windows.Forms
18 public class LabelTest : TestHelper
21 public void LabelAccessibility ()
23 Label l = new Label ();
24 Assert.IsNotNull (l.AccessibilityObject, "1");
28 public void PreferredWidth ()
30 Label l = new Label();
32 // preferred width is 0 by default
33 Assert.AreEqual (0, l.PreferredWidth, "2");
35 // and after text is changed it's something else
37 Assert.IsTrue (l.PreferredWidth > 0, "3");
39 // now add it to a form and see
41 f.ShowInTaskbar = false;
46 Assert.AreEqual (0, l.PreferredWidth, "4");
49 Assert.IsTrue (l.PreferredWidth > 0, "5");
55 public void PreferredHeight ()
57 Label l = new Label();
58 Assert.AreEqual (l.PreferredHeight, (l.Font.Height + 3), "#1");
60 l.BorderStyle = BorderStyle.None;
61 Assert.AreEqual (l.PreferredHeight, (l.Font.Height + 3), "#2");
63 l.BorderStyle = BorderStyle.FixedSingle;
64 Assert.AreEqual (l.PreferredHeight, (l.Font.Height + 6), "#3");
66 l.BorderStyle = BorderStyle.Fixed3D;
67 Assert.AreEqual (l.PreferredHeight, (l.Font.Height + 6), "#4");
69 l.UseCompatibleTextRendering = false;
71 l.BorderStyle = BorderStyle.None;
72 Assert.AreEqual (l.PreferredHeight, (l.Font.Height), "#5");
74 l.BorderStyle = BorderStyle.FixedSingle;
75 Assert.AreEqual (l.PreferredHeight, (l.Font.Height), "#6");
77 l.BorderStyle = BorderStyle.Fixed3D;
78 Assert.AreEqual (l.PreferredHeight, (l.Font.Height), "#7");
82 public void SizesTest ()
84 Form myform = new Form ();
85 Label l1 = new Label (); l1.Text = "Test";
86 Label l2 = new Label (); l2.Text = "Test";
87 Label l3 = new Label (); l3.Text = "Test three";
88 Label l4 = new Label (); l4.Text = String.Format ("Test four{0}with line breaks", Environment.NewLine);
89 myform.Controls.Add (l1);
90 myform.Controls.Add (l2);
91 myform.Controls.Add (l3);
92 myform.Controls.Add (l4);
95 l2.Font = new Font (l1.Font.FontFamily, l1.Font.Size + 5, l1.Font.Style);
97 // Height: autosize = false
98 Assert.AreEqual (l1.Height, l2.Height, "#1");
99 Assert.AreEqual (l1.Height, l3.Height, "#2");
100 Assert.AreEqual (l1.Height, l4.Height, "#3");
102 // Width: autosize = false
103 Assert.AreEqual (l1.Width, l2.Width, "#4");
104 Assert.AreEqual (l1.Width, l3.Width, "#5");
105 Assert.AreEqual (l1.Width, l4.Width, "#6");
112 // Height: autosize = false
113 Assert.IsFalse (l1.Height.Equals (l2.Height), "#7");
114 Assert.IsTrue (l1.Height.Equals (l3.Height), "#8");
115 Assert.IsTrue ((l4.Height > l1.Height), "#9");
117 // Width: autosize = false
118 Assert.IsFalse (l1.Width.Equals (l2.Width), "#10");
119 Assert.IsFalse (l1.Width.Equals (l3.Width), "#11");
125 public void StyleTest ()
127 Label l = new Label ();
129 Assert.IsFalse (TestHelper.IsStyleSet (l, WindowStyles.WS_BORDER), "#1");
130 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_CLIENTEDGE), "#2");
131 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_STATICEDGE), "#3");
133 l.BorderStyle = BorderStyle.None;
135 Assert.IsFalse (TestHelper.IsStyleSet (l, WindowStyles.WS_BORDER), "#4");
136 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_CLIENTEDGE), "#5");
137 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_STATICEDGE), "#6");
139 l.BorderStyle = BorderStyle.FixedSingle;
141 Assert.IsTrue (TestHelper.IsStyleSet (l, WindowStyles.WS_BORDER), "#7");
142 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_CLIENTEDGE), "#8");
143 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_STATICEDGE), "#9");
145 l.BorderStyle = BorderStyle.Fixed3D;
147 Assert.IsFalse (TestHelper.IsStyleSet (l, WindowStyles.WS_BORDER), "#10");
148 Assert.IsFalse (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_CLIENTEDGE), "#11");
149 Assert.IsTrue (TestHelper.IsExStyleSet (l, WindowExStyles.WS_EX_STATICEDGE), "#12");
153 public void BoundsTest ()
155 Label l = new Label ();
157 Assert.AreEqual (new Rectangle (0,0,100,23), l.Bounds, "1");
158 Assert.AreEqual (new Rectangle (0,0,100,23), l.ClientRectangle, "2");
159 Assert.AreEqual (new Size (100,23), l.ClientSize, "3");
163 public void PubPropTest ()
165 Label l = new Label ();
167 Assert.IsFalse (l.AutoSize, "#3");
169 Assert.AreEqual ("Control", l.BackColor.Name , "#6");
170 Assert.IsNull (l.BackgroundImage, "#8");
171 Assert.AreEqual (BorderStyle.None , l.BorderStyle, "#9");
173 Assert.IsNull (l.Container, "#19");
174 Assert.IsFalse (l.ContainsFocus, "#20");
175 Assert.IsNull (l.ContextMenu, "#21");
176 Assert.IsFalse (l.Created, "#23");
177 Assert.AreEqual (Cursors.Default , l.Cursor, "#24");
179 Assert.IsNotNull (l.DataBindings, "#25");
180 Assert.AreEqual (DockStyle.None, l.Dock, "#28");
182 Assert.IsTrue (l.Enabled, "#29");
184 Assert.AreEqual (FlatStyle.Standard, l.FlatStyle, "#30");
185 Assert.IsFalse (l.Focused, "#31");
186 Assert.AreEqual (FontFamily.GenericSansSerif, l.Font.FontFamily, "#32");
187 Assert.AreEqual (SystemColors.ControlText, l.ForeColor, "#33");
189 Assert.IsFalse (l.HasChildren, "#35");
191 Assert.IsNull (l.Image, "#37");
192 Assert.AreEqual (ContentAlignment.MiddleCenter, l.ImageAlign, "#38");
193 Assert.AreEqual (-1, l.ImageIndex, "#39");
194 Assert.IsNull (l.ImageList, "#40");
195 Assert.IsFalse (l.InvokeRequired, "#42");
196 Assert.IsFalse (l.IsAccessible, "#43");
197 Assert.IsFalse (l.IsDisposed, "#44");
199 Assert.IsNull (l.Parent, "#49");
201 Assert.IsFalse (l.RecreatingHandle, "#54");
202 Assert.IsNull (l.Region, "#55");
203 Assert.AreEqual (RightToLeft.No, l.RightToLeft, "#57");
205 Assert.IsNull (l.Site, "#58");
207 Assert.AreEqual (0, l.TabIndex, "#60");
208 Assert.IsNull (l.Tag, "#61");
209 Assert.AreEqual ("", l.Text, "#62");
210 Assert.AreEqual (ContentAlignment.TopLeft, l.TextAlign, "#63");
211 Assert.IsNull (l.TopLevelControl, "#65");
213 Assert.IsTrue (l.UseMnemonic, "#66");
215 Assert.IsTrue (l.Visible, "#67");
219 public void LabelEqualsTest () {
220 Label s1 = new Label ();
221 Label s2 = new Label ();
224 Assert.IsFalse (s1.Equals (s2), "#69");
225 Assert.IsTrue (s1.Equals (s1), "#70");
229 public void LabelScaleTest () {
230 Label r1 = new Label ();
234 Assert.AreEqual (80, r1.Width, "#71");
235 Assert.AreEqual (40, r1.Height, "#72");
240 public void ToStringTest ()
242 Label l = new Label ();
246 Assert.AreEqual ("System.Windows.Forms.Label, Text: My Label", l.ToString (), "T1");
250 public void AutoSizeExplicitSize ()
252 Form f = new Form ();
253 f.ShowInTaskbar = false;
255 Label l = new Label ();
256 l.Size = new Size (5, 5);
265 Assert.AreEqual (s, l.Size, "A1");
268 Assert.AreEqual (s, l.Size, "A2");
272 public void LabelMargin ()
274 Assert.AreEqual (new Padding (3, 0, 3, 0), new Label ().Margin, "A1");
278 public void BehaviorImageList ()
280 // Basically, this shows that whichever of [Image|ImageIndex|ImageKey]
281 // is set last resets the others to their default state
282 Label b = new Label ();
284 Bitmap i1 = new Bitmap (16, 16);
285 i1.SetPixel (0, 0, Color.Blue);
286 Bitmap i2 = new Bitmap (16, 16);
287 i2.SetPixel (0, 0, Color.Red);
288 Bitmap i3 = new Bitmap (16, 16);
289 i3.SetPixel (0, 0, Color.Green);
291 Assert.AreEqual (null, b.Image, "D1");
292 Assert.AreEqual (-1, b.ImageIndex, "D2");
293 Assert.AreEqual (string.Empty, b.ImageKey, "D3");
295 ImageList il = new ImageList ();
296 il.Images.Add ("i2", i2);
297 il.Images.Add ("i3", i3);
302 Assert.AreEqual (-1, b.ImageIndex, "D4");
303 Assert.AreEqual ("i3", b.ImageKey, "D5");
304 Assert.AreEqual (i3.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D6");
307 Assert.AreEqual (0, b.ImageIndex, "D7");
308 Assert.AreEqual (string.Empty, b.ImageKey, "D8");
309 Assert.AreEqual (i2.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D9");
311 // Also, Image is not cached, changing the underlying ImageList image is reflected
313 Assert.AreEqual (i1.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D16");
315 // Note: setting Image resets ImageList to null
317 Assert.AreEqual (-1, b.ImageIndex, "D10");
318 Assert.AreEqual (string.Empty, b.ImageKey, "D11");
319 Assert.AreEqual (i1.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D12");
320 Assert.AreEqual (null, b.ImageList, "D12-2");
323 Assert.AreEqual (null, b.Image, "D13");
324 Assert.AreEqual (-1, b.ImageIndex, "D14");
325 Assert.AreEqual (string.Empty, b.ImageKey, "D15");
330 public class LabelEventTest : TestHelper
332 static bool eventhandled = false;
333 public void Label_EventHandler (object sender,EventArgs e)
338 public void Label_KeyDownEventHandler (object sender, KeyEventArgs e)
343 [Ignore ("AutoSize moved to Control in 2.0, Label.AutoSize needs to be reworked a bit.")]
345 public void AutoSizeChangedChangedTest ()
347 Form myform = new Form ();
348 myform.ShowInTaskbar = false;
349 myform.Visible = true;
350 Label l = new Label ();
352 myform.Controls.Add (l);
353 l.AutoSizeChanged += new EventHandler (Label_EventHandler);
355 Assert.AreEqual (true, eventhandled, "B4");
356 eventhandled = false;
361 public void BackgroundImageChangedTest ()
363 Form myform = new Form ();
364 myform.ShowInTaskbar = false;
365 myform.Visible = true;
366 Label l = new Label ();
368 myform.Controls.Add (l);
369 l.BackgroundImageChanged += new EventHandler (Label_EventHandler);
370 l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
371 Assert.AreEqual (true, eventhandled, "B4");
372 eventhandled = false;
377 public void ImeModeChangedTest ()
379 Form myform = new Form ();
380 myform.ShowInTaskbar = false;
381 myform.Visible = true;
382 Label l = new Label ();
384 myform.Controls.Add (l);
385 l.ImeModeChanged += new EventHandler (Label_EventHandler);
386 l.ImeMode = ImeMode.Katakana;
387 Assert.AreEqual (true, eventhandled, "I16");
388 eventhandled = false;
393 public void KeyDownTest ()
395 Form myform = new Form ();
396 myform.ShowInTaskbar = false;
397 myform.Visible = true;
398 MyLabel l = new MyLabel ();
400 myform.Controls.Add (l);
401 l.KeyDown += new KeyEventHandler (Label_KeyDownEventHandler);
404 Assert.AreEqual (true, eventhandled, "K1");
405 eventhandled = false;
410 public void TabStopChangedTest ()
412 Form myform = new Form ();
413 myform.ShowInTaskbar = false;
414 myform.Visible = true;
415 Label l = new Label ();
417 myform.Controls.Add (l);
418 l.TabStopChanged += new EventHandler (Label_EventHandler);
420 Assert.AreEqual (true, eventhandled, "T3");
421 eventhandled = false;
426 public void TextAlignChangedTest ()
428 Form myform = new Form ();
429 myform.ShowInTaskbar = false;
430 myform.Visible = true;
431 Label l = new Label ();
433 myform.Controls.Add (l);
434 l.TextAlignChanged += new EventHandler (Label_EventHandler);
435 l.TextAlign = ContentAlignment.TopRight;
436 Assert.AreEqual (true, eventhandled, "T4");
437 eventhandled = false;
442 public class MyLabelInvalidate : MyLabel
444 //protected ArrayList results = new ArrayList ();
445 public MyLabelInvalidate () : base ()
448 protected override void OnInvalidated (InvalidateEventArgs e)
450 base.OnInvalidated (e);
451 string res = (string)results [results.Count - 1];
452 results [results.Count - 1 ] = string.Concat (res, "," + e.InvalidRect.ToString ());
453 //results.Add ("OnInvalidate," + e.InvalidRect.ToString ());
456 //public ArrayList Results {
457 // get { return results; }
462 public class MyLabel : Label
464 protected ArrayList results = new ArrayList ();
465 public MyLabel () : base ()
468 protected override void OnAutoSizeChanged (EventArgs e)
470 results.Add ("OnAutoSizeChanged");
471 base.OnAutoSizeChanged (e);
474 protected override void OnBackgroundImageChanged (EventArgs e)
476 results.Add ("OnBackgroundImageChanged");
477 base.OnBackgroundImageChanged (e);
480 protected override void OnImeModeChanged (EventArgs e)
482 results.Add ("OnImeModeChanged");
483 base.OnImeModeChanged (e);
486 protected override void OnKeyDown (KeyEventArgs e)
488 results.Add ("OnKeyDown,"+(char)e.KeyValue);
492 protected override void OnKeyPress (KeyPressEventArgs e)
494 results.Add ("OnKeyPress,"+e.KeyChar.ToString ());
498 protected override void OnKeyUp (KeyEventArgs e)
500 results.Add ("OnKeyUp,"+(char)e.KeyValue);
504 protected override void OnHandleCreated (EventArgs e)
506 results.Add ("OnHandleCreated");
507 base.OnHandleCreated (e);
510 protected override void OnBindingContextChanged (EventArgs e)
512 results.Add ("OnBindingContextChanged");
513 base.OnBindingContextChanged (e);
516 protected override void OnInvalidated (InvalidateEventArgs e)
518 results.Add("OnInvalidated");
519 base.OnInvalidated (e);
522 protected override void OnResize (EventArgs e)
524 results.Add("OnResize");
528 protected override void OnSizeChanged (EventArgs e)
530 results.Add("OnSizeChanged");
531 base.OnSizeChanged (e);
534 protected override void OnLayout (LayoutEventArgs e)
536 results.Add("OnLayout");
540 protected override void OnVisibleChanged (EventArgs e)
542 results.Add("OnVisibleChanged");
543 base.OnVisibleChanged (e);
546 protected override void OnPaint (PaintEventArgs e)
548 results.Add("OnPaint");
552 public void KeyPressA()
558 m.Msg = (int)WndMsg.WM_KEYDOWN;
559 m.HWnd = this.Handle;
560 m.WParam = (IntPtr)0x41;
561 m.LParam = (IntPtr)0x1e0001;
564 m.Msg = (int)WndMsg.WM_CHAR;
565 m.HWnd = this.Handle;
566 m.WParam = (IntPtr)0x61;
567 m.LParam = (IntPtr)0x1e0001;
570 m.Msg = (int)WndMsg.WM_KEYUP;
571 m.HWnd = this.Handle;
572 m.WParam = (IntPtr)0x41;
573 m.LParam = (IntPtr)unchecked((int)0xC01e0001);
577 public void KeyDownA()
583 m.Msg = (int)WndMsg.WM_KEYDOWN;
584 m.HWnd = this.Handle;
585 m.WParam = (IntPtr)0x41;
586 m.LParam = (IntPtr)0x1e0001;
589 m.Msg = (int)WndMsg.WM_CHAR;
590 m.HWnd = this.Handle;
591 m.WParam = (IntPtr)0x61;
592 m.LParam = (IntPtr)0x1e0001;
602 m.Msg = (int)WndMsg.WM_KEYUP;
603 m.HWnd = this.Handle;
604 m.WParam = (IntPtr)0x41;
605 m.LParam = (IntPtr)unchecked((int)0xC01e0001);
609 public ArrayList Results {
610 get { return results; }
615 [Ignore("Comparisons too strict")]
616 public class LabelTestEventsOrder : TestHelper
618 public string [] ArrayListToString (ArrayList arrlist)
620 string [] retval = new string [arrlist.Count];
621 for (int i = 0; i < arrlist.Count; i++)
622 retval[i] = (string)arrlist[i];
626 //private void OrderedAssert(string[] wanted, ArrayList found) {
632 // for (int i = 0; i < wanted.Length; i++) {
634 // for (int j = last_target; j < found.Count; j++) {
635 // if (wanted[i] == (string)found[j]) {
637 // last_target = j + 1;
643 // Console.WriteLine("Needed {0}", wanted[i]);
648 public void PrintList(string name, ArrayList list) {
649 Console.WriteLine("{0}", name);
650 for (int i = 0; i < list.Count; i++) {
651 Console.WriteLine(" {0}", list[i]);
653 Console.WriteLine("");
658 public void CreateEventsOrder ()
660 string[] EventsWanted = {
662 "OnBindingContextChanged",
663 "OnBindingContextChanged"
665 Form myform = new Form ();
666 myform.ShowInTaskbar = false;
667 myform.Visible = true;
668 MyLabel l = new MyLabel ();
669 myform.Controls.Add (l);
671 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
676 public void SizeChangedEventsOrder ()
678 string[] EventsWanted = {
680 "OnBindingContextChanged",
681 "OnBindingContextChanged",
687 Form myform = new Form ();
688 myform.ShowInTaskbar = false;
689 myform.Visible = true;
690 MyLabel l = new MyLabel ();
691 myform.Controls.Add (l);
692 l.Size = new Size (150, 20);
694 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
699 public void AutoSizeChangedEventsOrder ()
701 string[] EventsWanted = {
703 "OnBindingContextChanged",
704 "OnBindingContextChanged",
711 Form myform = new Form ();
712 myform.ShowInTaskbar = false;
713 myform.Visible = true;
714 MyLabel l = new MyLabel ();
715 myform.Controls.Add (l);
718 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
723 public void BackgroundImageChangedEventsOrder ()
725 string[] EventsWanted = {
727 "OnBindingContextChanged",
728 "OnBindingContextChanged",
729 "OnBackgroundImageChanged",
732 Form myform = new Form ();
733 myform.ShowInTaskbar = false;
734 myform.Visible = true;
735 MyLabel l = new MyLabel ();
736 myform.Controls.Add (l);
737 l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
739 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
744 public void ImeModeChangedChangedEventsOrder ()
746 string[] EventsWanted = {
748 "OnBindingContextChanged",
749 "OnBindingContextChanged",
752 Form myform = new Form ();
753 myform.ShowInTaskbar = false;
754 myform.Visible = true;
755 MyLabel l = new MyLabel ();
756 myform.Controls.Add (l);
757 l.ImeMode = ImeMode.Katakana;
759 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
764 public void KeyPressEventsOrder ()
766 string[] EventsWanted = {
768 "OnBindingContextChanged",
769 "OnBindingContextChanged",
774 Form myform = new Form ();
775 myform.ShowInTaskbar = false;
776 myform.Visible = true;
777 MyLabel l = new MyLabel ();
778 myform.Controls.Add (l);
781 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
786 public void TabStopChangedEventsOrder ()
788 string[] EventsWanted = {
790 "OnBindingContextChanged",
791 "OnBindingContextChanged"
793 Form myform = new Form ();
794 myform.ShowInTaskbar = false;
795 myform.Visible = true;
796 MyLabel l = new MyLabel ();
797 myform.Controls.Add (l);
799 PrintList("TabStopChanged", l.Results);
800 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
805 public void TextAlignChangedEventsOrder ()
807 string[] EventsWanted = {
809 "OnBindingContextChanged",
810 "OnBindingContextChanged",
813 Form myform = new Form ();
814 myform.ShowInTaskbar = false;
815 myform.Visible = true;
816 MyLabel l = new MyLabel ();
817 myform.Controls.Add (l);
818 l.TextAlign = ContentAlignment.TopRight;
820 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
825 public void InvalidateEventsOrder ()
827 Rectangle rect = new Rectangle (new Point (0,0), new Size (2, 2));
829 Form myform = new Form ();
830 myform.ShowInTaskbar = false;
831 myform.Visible = true;
832 MyLabelInvalidate l = new MyLabelInvalidate ();
833 myform.Controls.Add (l);
834 l.TextAlign = ContentAlignment.TopRight;
836 string [] EventsWanted = {
838 "OnBindingContextChanged",
839 "OnBindingContextChanged",
840 "OnInvalidated,{X=0,Y=0,Width="+l.Size.Width+",Height="+l.Size.Height+"}",
841 "OnInvalidated," + rect.ToString ()
846 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
851 public void PaintEventsOrder ()
853 string[] EventsWanted = {
855 "OnBindingContextChanged",
856 "OnBindingContextChanged",
861 Form myform = new Form ();
862 myform.ShowInTaskbar = false;
863 myform.Visible = true;
864 MyLabel l = new MyLabel ();
865 myform.Controls.Add (l);
866 l.TextAlign = ContentAlignment.TopRight;
868 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
874 public class MyLabel2 : Label
876 protected ArrayList results = new ArrayList ();
877 public MyLabel2 () : base ()
879 this.AutoSizeChanged += new EventHandler (AutoSizeChanged_Handler);
880 this.HandleCreated += new EventHandler (HandleCreated_Handler);
881 this.BindingContextChanged += new EventHandler (BindingContextChanged_Handler);
882 this.BackgroundImageChanged += new EventHandler (BackgroundImageChanged_Handler);
883 this.ImeModeChanged += new EventHandler (ImeModeChanged_Handler);
884 this.KeyDown += new KeyEventHandler (KeyDown_Handler);
885 this.KeyPress += new KeyPressEventHandler (KeyPress_Handler);
886 this.KeyUp += new KeyEventHandler (KeyUp_Handler);
887 this.Invalidated += new InvalidateEventHandler (Invalidated_Handler);
888 this.Resize += new EventHandler (Resize_Handler);
889 this.SizeChanged += new EventHandler (SizeChanged_Handler);
890 this.Layout += new LayoutEventHandler (Layout_Handler);
891 this.VisibleChanged += new EventHandler (VisibleChanged_Handler);
892 this.Paint += new PaintEventHandler (Paint_Handler);
895 protected void AutoSizeChanged_Handler (object sender, EventArgs e)
897 results.Add ("AutoSizeChanged");
900 protected void BackgroundImageChanged_Handler (object sender, EventArgs e)
902 results.Add ("BackgroundImageChanged");
905 protected void ImeModeChanged_Handler (object sender, EventArgs e)
907 results.Add ("ImeModeChanged");
910 protected void KeyDown_Handler (object sender, KeyEventArgs e)
912 results.Add ("KeyDown,"+(char)e.KeyValue);
915 protected void KeyPress_Handler (object sender, KeyPressEventArgs e)
917 results.Add ("KeyPress,"+e.KeyChar.ToString ());
920 protected void KeyUp_Handler (object sender, KeyEventArgs e)
922 results.Add ("KeyUp,"+(char)e.KeyValue);
925 protected void HandleCreated_Handler (object sender, EventArgs e)
927 results.Add ("HandleCreated");
930 protected void BindingContextChanged_Handler (object sender, EventArgs e)
932 results.Add ("BindingContextChanged");
935 protected void Invalidated_Handler (object sender, InvalidateEventArgs e)
937 results.Add("Invalidated");
940 protected void Resize_Handler (object sender, EventArgs e)
942 results.Add("Resize");
945 protected void SizeChanged_Handler (object sender, EventArgs e)
947 results.Add("SizeChanged");
950 protected void Layout_Handler (object sender, LayoutEventArgs e)
952 results.Add("Layout");
955 protected void VisibleChanged_Handler (object sender, EventArgs e)
957 results.Add("VisibleChanged");
960 protected void Paint_Handler (object sender, PaintEventArgs e)
962 results.Add("Paint");
965 public void KeyPressA()
971 m.Msg = (int)WndMsg.WM_KEYDOWN;
972 m.HWnd = this.Handle;
973 m.WParam = (IntPtr)0x41;
974 m.LParam = (IntPtr)0x1e0001;
977 m.Msg = (int)WndMsg.WM_CHAR;
978 m.HWnd = this.Handle;
979 m.WParam = (IntPtr)0x61;
980 m.LParam = (IntPtr)0x1e0001;
983 m.Msg = (int)WndMsg.WM_KEYUP;
984 m.HWnd = this.Handle;
985 m.WParam = (IntPtr)0x41;
986 m.LParam = (IntPtr)unchecked((int)0xC01e0001);
990 public void KeyDownA()
996 m.Msg = (int)WndMsg.WM_KEYDOWN;
997 m.HWnd = this.Handle;
998 m.WParam = (IntPtr)0x41;
999 m.LParam = (IntPtr)0x1e0001;
1000 this.WndProc(ref m);
1002 m.Msg = (int)WndMsg.WM_CHAR;
1003 m.HWnd = this.Handle;
1004 m.WParam = (IntPtr)0x61;
1005 m.LParam = (IntPtr)0x1e0001;
1006 this.WndProc(ref m);
1009 public void KeyUpA()
1015 m.Msg = (int)WndMsg.WM_KEYUP;
1016 m.HWnd = this.Handle;
1017 m.WParam = (IntPtr)0x41;
1018 m.LParam = (IntPtr)unchecked((int)0xC01e0001);
1019 this.WndProc(ref m);
1022 public ArrayList Results {
1023 get { return results; }
1028 [Ignore("Comparisons too strict")]
1029 public class LabelTestEventsOrder2 : TestHelper
1031 public string [] ArrayListToString (ArrayList arrlist)
1033 string [] retval = new string [arrlist.Count];
1034 for (int i = 0; i < arrlist.Count; i++)
1035 retval[i] = (string)arrlist[i];
1040 public void CreateEventsOrder ()
1042 string[] EventsWanted = {
1044 "BindingContextChanged",
1045 "BindingContextChanged"
1047 Form myform = new Form ();
1048 myform.ShowInTaskbar = false;
1049 myform.Visible = true;
1050 MyLabel2 l = new MyLabel2 ();
1051 myform.Controls.Add (l);
1053 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1058 public void SizeChangedEventsOrder ()
1060 string[] EventsWanted = {
1062 "BindingContextChanged",
1063 "BindingContextChanged",
1069 Form myform = new Form ();
1070 myform.ShowInTaskbar = false;
1071 myform.Visible = true;
1072 MyLabel2 l = new MyLabel2 ();
1073 myform.Controls.Add (l);
1074 l.Size = new Size (150, 20);
1076 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1081 public void AutoSizeChangedEventsOrder ()
1083 string[] EventsWanted = {
1085 "BindingContextChanged",
1086 "BindingContextChanged",
1093 Form myform = new Form ();
1094 myform.ShowInTaskbar = false;
1095 myform.Visible = true;
1096 MyLabel2 l = new MyLabel2 ();
1097 myform.Controls.Add (l);
1100 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1105 public void BackgroundImageChangedEventsOrder ()
1107 string[] EventsWanted = {
1109 "BindingContextChanged",
1110 "BindingContextChanged",
1112 "BackgroundImageChanged"
1114 Form myform = new Form ();
1115 myform.ShowInTaskbar = false;
1116 myform.Visible = true;
1117 MyLabel2 l = new MyLabel2 ();
1118 myform.Controls.Add (l);
1119 l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
1121 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1126 public void ImeModeChangedChangedEventsOrder ()
1128 string[] EventsWanted = {
1130 "BindingContextChanged",
1131 "BindingContextChanged",
1134 Form myform = new Form ();
1135 myform.ShowInTaskbar = false;
1136 myform.Visible = true;
1137 MyLabel2 l = new MyLabel2 ();
1138 myform.Controls.Add (l);
1139 l.ImeMode = ImeMode.Katakana;
1141 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1146 public void KeyPressEventsOrder ()
1148 string[] EventsWanted = {
1150 "BindingContextChanged",
1151 "BindingContextChanged",
1156 Form myform = new Form ();
1157 myform.ShowInTaskbar = false;
1158 myform.Visible = true;
1159 MyLabel2 l = new MyLabel2 ();
1160 myform.Controls.Add (l);
1163 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1168 public void TabStopChangedEventsOrder ()
1170 string[] EventsWanted = {
1172 "BindingContextChanged",
1173 "BindingContextChanged"
1175 Form myform = new Form ();
1176 myform.ShowInTaskbar = false;
1177 myform.Visible = true;
1178 MyLabel2 l = new MyLabel2 ();
1179 myform.Controls.Add (l);
1182 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1187 public void TextAlignChangedEventsOrder ()
1189 string[] EventsWanted = {
1191 "BindingContextChanged",
1192 "BindingContextChanged",
1195 Form myform = new Form ();
1196 myform.ShowInTaskbar = false;
1197 myform.Visible = true;
1198 MyLabel2 l = new MyLabel2 ();
1199 myform.Controls.Add (l);
1200 l.TextAlign = ContentAlignment.TopRight;
1202 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
1207 public void PaintEventsOrder ()
1209 string[] EventsWanted = {
1211 "BindingContextChanged",
1212 "BindingContextChanged",
1217 Form myform = new Form ();
1218 myform.ShowInTaskbar = false;
1219 myform.Visible = true;
1220 MyLabel2 l = new MyLabel2 ();
1221 myform.Controls.Add (l);
1222 l.TextAlign = ContentAlignment.TopRight;
1224 Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));