-//
-// Copyright (c) 2005 Novell, Inc.
-//
-// Authors:
-// Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-//
-
-
-using System;
-using NUnit.Framework;
-using System.Windows.Forms;
-using System.Drawing;
-using System.Runtime.Remoting;
-
-namespace MonoTests.System.Windows.Forms
-{
- [TestFixture]
- [Ignore ("This is a work in progress.")]
- public class LabelTest2
- {
-
- [Test]
- public void PubPropTest ()
- {
- Label l = new Label ();
-
- // A
- Assert.AreEqual (false, l.AutoSize, "A1");
- l.AutoSize = true;
- Assert.AreEqual (true, l.AutoSize, "A2");
- l.AutoSize = false;
- Assert.AreEqual (false, l.AutoSize, "A3");
-
- // B
- Assert.AreEqual (null, l.BackgroundImage, "B1");
- l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
- Assert.IsNotNull (l.BackgroundImage, "B2");
- Bitmap bmp = (Bitmap)l.BackgroundImage;
- Assert.IsNotNull (bmp.GetPixel (0, 0), "B3");
-
- Assert.AreEqual (BorderStyle.None, l.BorderStyle, "B4");
- l.BorderStyle = BorderStyle.FixedSingle;
- Assert.AreEqual (BorderStyle.FixedSingle, l.BorderStyle, "B5");
- l.BorderStyle = BorderStyle.Fixed3D;
- Assert.AreEqual (BorderStyle.Fixed3D, l.BorderStyle, "B6");
- l.BorderStyle = BorderStyle.None;
- Assert.AreEqual (BorderStyle.None, l.BorderStyle, "B7");
-
- // C
- string name = l.CompanyName;
- if (!name.Equals("Mono Project, Novell, Inc.") && !name.Equals("Microsoft Corporation")) {
- Assert.Fail("CompanyName property does not match any accepted value - C1");
- }
-
-
- // F
- Assert.AreEqual (FlatStyle.Standard, l.FlatStyle, "F1");
- l.FlatStyle = FlatStyle.Flat;
- Assert.AreEqual (FlatStyle.Flat, l.FlatStyle, "F1");
- l.FlatStyle = FlatStyle.Popup;
- Assert.AreEqual (FlatStyle.Popup, l.FlatStyle, "F2");
- l.FlatStyle = FlatStyle.Standard;
- Assert.AreEqual (FlatStyle.Standard, l.FlatStyle, "F3");
- l.FlatStyle = FlatStyle.System;
- Assert.AreEqual (FlatStyle.System, l.FlatStyle, "F4");
-
- // I
- Assert.AreEqual (ContentAlignment.MiddleCenter, l.ImageAlign, "I1");
- l.ImageAlign = ContentAlignment.TopLeft;
- Assert.AreEqual (ContentAlignment.TopLeft, l.ImageAlign, "I2");
- l.ImageAlign = ContentAlignment.TopCenter;
- Assert.AreEqual (ContentAlignment.TopCenter, l.ImageAlign, "I3");
- l.ImageAlign = ContentAlignment.TopRight;
- Assert.AreEqual (ContentAlignment.TopRight, l.ImageAlign, "I4");
- l.ImageAlign = ContentAlignment.MiddleLeft;
- Assert.AreEqual (ContentAlignment.MiddleLeft, l.ImageAlign, "I5");
- l.ImageAlign = ContentAlignment.MiddleCenter;
- Assert.AreEqual (ContentAlignment.MiddleCenter, l.ImageAlign, "I6");
- l.ImageAlign = ContentAlignment.MiddleRight;
- Assert.AreEqual (ContentAlignment.MiddleRight, l.ImageAlign, "I7");
- l.ImageAlign = ContentAlignment.BottomLeft;
- Assert.AreEqual (ContentAlignment.BottomLeft, l.ImageAlign, "I8");
- l.ImageAlign = ContentAlignment.BottomCenter;
- Assert.AreEqual (ContentAlignment.BottomCenter, l.ImageAlign, "I9");
- l.ImageAlign = ContentAlignment.BottomRight;
- Assert.AreEqual (ContentAlignment.BottomRight, l.ImageAlign, "I10");
- Assert.AreEqual (-1, l.ImageIndex, "I11");
- Assert.AreEqual (null, l.ImageList, "I12");
- Assert.AreEqual (null, l.Image, "I13");
- l.Image = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
- Assert.IsNotNull (l.Image, "I14");
- bmp = (Bitmap)l.Image;
- Assert.IsNotNull (bmp.GetPixel (0, 0), "I15");
-
-
- ImageList il = new ImageList ();
- il.ColorDepth = ColorDepth.Depth32Bit;
- il.ImageSize = new Size (15, 15);
- il.Images.Add (Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png"));
- l.ImageList = il;
- l.ImageIndex = 0;
-
- Assert.AreEqual (0, l.ImageIndex, "I16");
- Assert.IsNotNull (l.ImageList, "I17");
-
- // PreferredHeight
- // PregerredWidth
- // RenderTransparent
-
- // T
- // Assert.AreEqual (false, l.TabStop, "T1");
- Assert.AreEqual (ContentAlignment.TopLeft, l.TextAlign, "T2");
-
- // U
- Assert.AreEqual (true, l.UseMnemonic, "U1");
- l.UseMnemonic = false;
- Assert.AreEqual (false, l.UseMnemonic, "U2");
- }
-
-
- [Test]
- public void LabelEqualsTest ()
- {
- Label s1 = new Label ();
- Label s2 = new Label ();
- s1.Text = "abc";
- s2.Text = "abc";
- Assert.AreEqual (false, s1.Equals (s2), "E1");
- Assert.AreEqual (true, s1.Equals (s1), "E2");
- }
-
- [Test]
- public void LabelScaleTest ()
- {
- Label r1 = new Label ();
- r1.Width = 40;
- r1.Height = 20 ;
- r1.Scale (2);
- Assert.AreEqual (80, r1.Width, "W1");
- Assert.AreEqual (40, r1.Height, "H1");
- }
-
- [Test]
- public void PubMethodTest ()
- {
- Label l = new Label ();
-
- l.Text = "My Label";
-
- Assert.AreEqual ("System.Windows.Forms.LabelText: My Label", l.ToString (), "T1");
-
- }
- }
-
- [TestFixture]
- public class LabelEventTest
- {
- static bool eventhandled = false;
- public void Label_EventHandler (object sender,EventArgs e)
- {
- eventhandled = true;
- }
-
- [Test]
- public void AutoSizeChangedChangedTest ()
- {
- Form myform = new Form ();
- myform.Visible = true;
- Label l = new Label ();
- l.Visible = true;
- myform.Controls.Add (l);
- l.AutoSizeChanged += new EventHandler (Label_EventHandler);
- l.AutoSize = true;
- Assert.AreEqual (true, eventhandled, "B4");
- eventhandled = false;
- }
-
- [Test]
- public void BackgroundImageChangedTest ()
- {
- Form myform = new Form ();
- myform.Visible = true;
- Label l = new Label ();
- l.Visible = true;
- myform.Controls.Add (l);
- l.BackgroundImageChanged += new EventHandler (Label_EventHandler);
- l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
- Assert.AreEqual (true, eventhandled, "B4");
- eventhandled = false;
- }
-
- [Test]
- public void ImeModeChangedTest ()
- {
- Form myform = new Form ();
- myform.Visible = true;
- Label l = new Label ();
- l.Visible = true;
- myform.Controls.Add (l);
- l.ImeModeChanged += new EventHandler (Label_EventHandler);
- l.ImeMode = ImeMode.Katakana;
- Assert.AreEqual (true, eventhandled, "I16");
- eventhandled = false;
- }
-
- [Test, Ignore ("This isnt complete.")]
- public void KeyDownTest ()
- {
- Form myform = new Form ();
- myform.Visible = true;
- Label l = new Label ();
- l.Visible = true;
- myform.Controls.Add (l);
- l.KeyDown += new KeyEventHandler (Label_EventHandler);
-
- //Assert.AreEqual (true, eventhandled, "K1");
- eventhandled = false;
- }
-
-
- [Test, Ignore ("This is failing.")]
- public void TabStopChangedTest ()
- {
- Form myform = new Form ();
- myform.Visible = true;
- Label l = new Label ();
- l.Visible = true;
- myform.Controls.Add (l);
- l.TabStopChanged += new EventHandler (Label_EventHandler);
- l.TabStop = true;
- Assert.AreEqual (true, eventhandled, "T3");
- eventhandled = false;
- }
-
- [Test]
- public void TextAlignChangedTest ()
- {
- Form myform = new Form ();
- myform.Visible = true;
- Label l = new Label ();
- l.Visible = true;
- myform.Controls.Add (l);
- l.TextAlignChanged += new EventHandler (Label_EventHandler);
- l.TextAlign = ContentAlignment.TopRight;
- Assert.AreEqual (true, eventhandled, "T4");
- eventhandled = false;
- }
- }
-}
-
+//\r
+// Copyright (c) 2005 Novell, Inc.\r
+//\r
+// Authors:\r
+// Hisham Mardam Bey (hisham.mardambey@gmail.com)\r
+//\r
+//\r
+\r
+using System;\r
+using NUnit.Framework;\r
+using System.Windows.Forms;\r
+using System.Drawing;\r
+using System.Collections;\r
+\r
+namespace MonoTests.System.Windows.Forms\r
+{\r
+ [TestFixture]\r
+\r
+ public class LabelTest2\r
+ {\r
+\r
+ [Test]\r
+ public void PubPropTest ()\r
+ {\r
+ Label l = new Label ();\r
+\r
+ // A\r
+ Assert.AreEqual (false, l.AutoSize, "A1");\r
+ l.AutoSize = true;\r
+ Assert.AreEqual (true, l.AutoSize, "A2");\r
+ l.AutoSize = false;\r
+ Assert.AreEqual (false, l.AutoSize, "A3");\r
+\r
+ // B\r
+ Assert.AreEqual (null, l.BackgroundImage, "B1");\r
+ l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");\r
+ Assert.IsNotNull (l.BackgroundImage, "B2");\r
+ Bitmap bmp = (Bitmap)l.BackgroundImage;\r
+ Assert.IsNotNull (bmp.GetPixel (0, 0), "B3");\r
+\r
+ Assert.AreEqual (BorderStyle.None, l.BorderStyle, "B4");\r
+ l.BorderStyle = BorderStyle.FixedSingle;\r
+ Assert.AreEqual (BorderStyle.FixedSingle, l.BorderStyle, "B5");\r
+ l.BorderStyle = BorderStyle.Fixed3D;\r
+ Assert.AreEqual (BorderStyle.Fixed3D, l.BorderStyle, "B6");\r
+ l.BorderStyle = BorderStyle.None;\r
+ Assert.AreEqual (BorderStyle.None, l.BorderStyle, "B7");\r
+\r
+ // C\r
+ string name = l.CompanyName;\r
+ if (!name.Equals("Mono Project, Novell, Inc.") && !name.Equals("Microsoft Corporation")) {\r
+ Assert.Fail("CompanyName property does not match any accepted value - C1");\r
+ }\r
+\r
+ // F\r
+ Assert.AreEqual (FlatStyle.Standard, l.FlatStyle, "F1");\r
+ l.FlatStyle = FlatStyle.Flat;\r
+ Assert.AreEqual (FlatStyle.Flat, l.FlatStyle, "F1");\r
+ l.FlatStyle = FlatStyle.Popup;\r
+ Assert.AreEqual (FlatStyle.Popup, l.FlatStyle, "F2");\r
+ l.FlatStyle = FlatStyle.Standard;\r
+ Assert.AreEqual (FlatStyle.Standard, l.FlatStyle, "F3");\r
+ l.FlatStyle = FlatStyle.System;\r
+ Assert.AreEqual (FlatStyle.System, l.FlatStyle, "F4");\r
+\r
+ // I\r
+ Assert.AreEqual (ContentAlignment.MiddleCenter, l.ImageAlign, "I1");\r
+ l.ImageAlign = ContentAlignment.TopLeft;\r
+ Assert.AreEqual (ContentAlignment.TopLeft, l.ImageAlign, "I2");\r
+ l.ImageAlign = ContentAlignment.TopCenter;\r
+ Assert.AreEqual (ContentAlignment.TopCenter, l.ImageAlign, "I3");\r
+ l.ImageAlign = ContentAlignment.TopRight;\r
+ Assert.AreEqual (ContentAlignment.TopRight, l.ImageAlign, "I4");\r
+ l.ImageAlign = ContentAlignment.MiddleLeft;\r
+ Assert.AreEqual (ContentAlignment.MiddleLeft, l.ImageAlign, "I5");\r
+ l.ImageAlign = ContentAlignment.MiddleCenter;\r
+ Assert.AreEqual (ContentAlignment.MiddleCenter, l.ImageAlign, "I6");\r
+ l.ImageAlign = ContentAlignment.MiddleRight;\r
+ Assert.AreEqual (ContentAlignment.MiddleRight, l.ImageAlign, "I7");\r
+ l.ImageAlign = ContentAlignment.BottomLeft;\r
+ Assert.AreEqual (ContentAlignment.BottomLeft, l.ImageAlign, "I8");\r
+ l.ImageAlign = ContentAlignment.BottomCenter;\r
+ Assert.AreEqual (ContentAlignment.BottomCenter, l.ImageAlign, "I9");\r
+ l.ImageAlign = ContentAlignment.BottomRight;\r
+ Assert.AreEqual (ContentAlignment.BottomRight, l.ImageAlign, "I10");\r
+ Assert.AreEqual (-1, l.ImageIndex, "I11");\r
+ Assert.AreEqual (null, l.ImageList, "I12");\r
+ Assert.AreEqual (null, l.Image, "I13");\r
+ l.Image = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");\r
+ Assert.IsNotNull (l.Image, "I14");\r
+ bmp = (Bitmap)l.Image;\r
+ Assert.IsNotNull (bmp.GetPixel (0, 0), "I15");\r
+\r
+ ImageList il = new ImageList ();\r
+ il.ColorDepth = ColorDepth.Depth32Bit;\r
+ il.ImageSize = new Size (15, 15);\r
+ il.Images.Add (Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png"));\r
+ l.ImageList = il;\r
+ l.ImageIndex = 0;\r
+\r
+ Assert.AreEqual (0, l.ImageIndex, "I16");\r
+ Assert.IsNotNull (l.ImageList, "I17");\r
+\r
+ // PreferredHeight\r
+ // PregerredWidth\r
+ // RenderTransparent\r
+ //\r
+ // T\r
+ // Assert.AreEqual (false, l.TabStop, "T1");\r
+ Assert.AreEqual (ContentAlignment.TopLeft, l.TextAlign, "T2");\r
+\r
+ // U\r
+ Assert.AreEqual (true, l.UseMnemonic, "U1");\r
+ l.UseMnemonic = false;\r
+ Assert.AreEqual (false, l.UseMnemonic, "U2");\r
+ }\r
+\r
+ [Test]\r
+ public void LabelEqualsTest ()\r
+ {\r
+ Label s1 = new Label ();\r
+ Label s2 = new Label ();\r
+ s1.Text = "abc";\r
+ s2.Text = "abc";\r
+ Assert.AreEqual (false, s1.Equals (s2), "E1");\r
+ Assert.AreEqual (true, s1.Equals (s1), "E2");\r
+ }\r
+\r
+ [Test]\r
+ public void LabelScaleTest ()\r
+ {\r
+ Label r1 = new Label ();\r
+ r1.Width = 40;\r
+ r1.Height = 20 ;\r
+ r1.Scale (2);\r
+ Assert.AreEqual (80, r1.Width, "W1");\r
+ Assert.AreEqual (40, r1.Height, "H1");\r
+ }\r
+\r
+ [Test]\r
+ public void PubMethodTest ()\r
+ {\r
+ Label l = new Label ();\r
+\r
+ l.Text = "My Label";\r
+\r
+ Assert.AreEqual ("System.Windows.Forms.Label, Text: My Label", l.ToString (), "T1");\r
+\r
+ }\r
+ }\r
+\r
+ [TestFixture]\r
+ public class LabelEventTest\r
+ {\r
+ static bool eventhandled = false;\r
+ public void Label_EventHandler (object sender,EventArgs e)\r
+ {\r
+ eventhandled = true;\r
+ }\r
+\r
+ public void Label_KeyDownEventHandler (object sender, KeyEventArgs e)\r
+ {\r
+ eventhandled = true;\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeChangedChangedTest ()\r
+ {\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ Label l = new Label ();\r
+ l.Visible = true;\r
+ myform.Controls.Add (l);\r
+ l.AutoSizeChanged += new EventHandler (Label_EventHandler);\r
+ l.AutoSize = true;\r
+ Assert.AreEqual (true, eventhandled, "B4");\r
+ eventhandled = false;\r
+ }\r
+\r
+ [Test]\r
+ public void BackgroundImageChangedTest ()\r
+ {\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ Label l = new Label ();\r
+ l.Visible = true;\r
+ myform.Controls.Add (l);\r
+ l.BackgroundImageChanged += new EventHandler (Label_EventHandler);\r
+ l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");\r
+ Assert.AreEqual (true, eventhandled, "B4");\r
+ eventhandled = false;\r
+ }\r
+\r
+ [Test]\r
+ public void ImeModeChangedTest ()\r
+ {\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ Label l = new Label ();\r
+ l.Visible = true;\r
+ myform.Controls.Add (l);\r
+ l.ImeModeChanged += new EventHandler (Label_EventHandler);\r
+ l.ImeMode = ImeMode.Katakana;\r
+ Assert.AreEqual (true, eventhandled, "I16");\r
+ eventhandled = false;\r
+ }\r
+\r
+ [Test]\r
+ public void KeyDownTest ()\r
+ {\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ l.Visible = true;\r
+ myform.Controls.Add (l);\r
+ l.KeyDown += new KeyEventHandler (Label_KeyDownEventHandler);\r
+ l.KeyPressA ();\r
+\r
+ Assert.AreEqual (true, eventhandled, "K1");\r
+ eventhandled = false;\r
+ }\r
+\r
+ [Test]\r
+ public void TabStopChangedTest ()\r
+ {\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ Label l = new Label ();\r
+ l.Visible = true;\r
+ myform.Controls.Add (l);\r
+ l.TabStopChanged += new EventHandler (Label_EventHandler);\r
+ l.TabStop = true;\r
+ Assert.AreEqual (true, eventhandled, "T3");\r
+ eventhandled = false;\r
+ }\r
+\r
+ [Test]\r
+ public void TextAlignChangedTest ()\r
+ {\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ Label l = new Label ();\r
+ l.Visible = true;\r
+ myform.Controls.Add (l);\r
+ l.TextAlignChanged += new EventHandler (Label_EventHandler);\r
+ l.TextAlign = ContentAlignment.TopRight;\r
+ Assert.AreEqual (true, eventhandled, "T4");\r
+ eventhandled = false;\r
+ }\r
+ }\r
+\r
+public class MyLabelInvalidate : MyLabel\r
+ {\r
+ //protected ArrayList results = new ArrayList ();\r
+ public MyLabelInvalidate () : base ()\r
+ {}\r
+\r
+ protected override void OnInvalidated (InvalidateEventArgs e)\r
+ {\r
+ base.OnInvalidated (e);\r
+ string res = (string)results [results.Count - 1];\r
+ results [results.Count - 1 ] = string.Concat (res, "," + e.InvalidRect.ToString ());\r
+ //results.Add ("OnInvalidate," + e.InvalidRect.ToString ());\r
+ }\r
+\r
+ //public ArrayList Results {\r
+ // get { return results; }\r
+ //}\r
+\r
+ }\r
+\r
+public class MyLabel : Label\r
+ {\r
+ protected ArrayList results = new ArrayList ();\r
+ public MyLabel () : base ()\r
+ { }\r
+\r
+ protected override void OnAutoSizeChanged (EventArgs e)\r
+ {\r
+ results.Add ("OnAutoSizeChanged");\r
+ base.OnAutoSizeChanged (e);\r
+ }\r
+\r
+ protected override void OnBackgroundImageChanged (EventArgs e)\r
+ {\r
+ results.Add ("OnBackgroundImageChanged");\r
+ base.OnBackgroundImageChanged (e);\r
+ }\r
+\r
+ protected override void OnImeModeChanged (EventArgs e)\r
+ {\r
+ results.Add ("OnImeModeChanged");\r
+ base.OnImeModeChanged (e);\r
+ }\r
+\r
+ protected override void OnKeyDown (KeyEventArgs e)\r
+ {\r
+ results.Add ("OnKeyDown,"+(char)e.KeyValue);\r
+ base.OnKeyDown (e);\r
+ }\r
+\r
+ protected override void OnKeyPress (KeyPressEventArgs e)\r
+ {\r
+ results.Add ("OnKeyPress,"+e.KeyChar.ToString ());\r
+ base.OnKeyPress (e);\r
+ }\r
+\r
+ protected override void OnKeyUp (KeyEventArgs e)\r
+ {\r
+ results.Add ("OnKeyUp,"+(char)e.KeyValue);\r
+ base.OnKeyUp (e);\r
+ }\r
+\r
+ protected override void OnHandleCreated (EventArgs e)\r
+ {\r
+ results.Add ("OnHandleCreated");\r
+ base.OnHandleCreated (e);\r
+ }\r
+\r
+ protected override void OnBindingContextChanged (EventArgs e)\r
+ {\r
+ results.Add ("OnBindingContextChanged");\r
+ base.OnBindingContextChanged (e);\r
+ }\r
+\r
+ protected override void OnInvalidated (InvalidateEventArgs e)\r
+ {\r
+ results.Add("OnInvalidated");\r
+ base.OnInvalidated (e);\r
+ }\r
+\r
+ protected override void OnResize (EventArgs e)\r
+ {\r
+ results.Add("OnResize");\r
+ base.OnResize (e);\r
+ }\r
+\r
+ protected override void OnSizeChanged (EventArgs e)\r
+ {\r
+ results.Add("OnSizeChanged");\r
+ base.OnSizeChanged (e);\r
+ }\r
+\r
+ protected override void OnLayout (LayoutEventArgs e)\r
+ {\r
+ results.Add("OnLayout");\r
+ base.OnLayout (e);\r
+ }\r
+\r
+ protected override void OnVisibleChanged (EventArgs e)\r
+ {\r
+ results.Add("OnVisibleChanged");\r
+ base.OnVisibleChanged (e);\r
+ }\r
+\r
+ protected override void OnPaint (PaintEventArgs e)\r
+ {\r
+ results.Add("OnPaint");\r
+ base.OnPaint (e);\r
+ }\r
+\r
+ public void KeyPressA()\r
+ {\r
+ Message m;\r
+\r
+ m = new Message();\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYDOWN;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+\r
+ m.Msg = (int)WndMsg.WM_CHAR;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x61;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYUP;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);\r
+ this.WndProc(ref m);\r
+ }\r
+\r
+ public void KeyDownA()\r
+ {\r
+ Message m;\r
+\r
+ m = new Message();\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYDOWN;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+\r
+ m.Msg = (int)WndMsg.WM_CHAR;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x61;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+ }\r
+\r
+ public void KeyUpA()\r
+ {\r
+ Message m;\r
+\r
+ m = new Message();\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYUP;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);\r
+ this.WndProc(ref m);\r
+ }\r
+\r
+ public ArrayList Results {\r
+ get { return results; }\r
+ }\r
+ }\r
+\r
+ [TestFixture]\r
+ public class LabelTestEventsOrder\r
+ {\r
+ public string [] ArrayListToString (ArrayList arrlist)\r
+ {\r
+ string [] retval = new string [arrlist.Count];\r
+ for (int i = 0; i < arrlist.Count; i++)\r
+ retval[i] = (string)arrlist[i];\r
+ return retval;\r
+ }\r
+\r
+ [Test]\r
+ public void CreateEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void SizeChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnSizeChanged",\r
+ "OnResize",\r
+ "OnInvalidated",\r
+ "OnLayout"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.Size = new Size (150, 20);\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnSizeChanged",\r
+ "OnResize",\r
+ "OnInvalidated",\r
+ "OnLayout",\r
+ "OnAutoSizeChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.AutoSize = true;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void BackgroundImageChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnBackgroundImageChanged",\r
+ "OnInvalidated"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void ImeModeChangedChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnImeModeChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.ImeMode = ImeMode.Katakana;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void KeyPressEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnKeyDown,A",\r
+ "OnKeyPress,a",\r
+ "OnKeyUp,A"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.KeyPressA ();\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void TabStopChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.TabStop = true;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void TextAlignChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnInvalidated"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.TextAlign = ContentAlignment.TopRight;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void InvalidateEventsOrder ()\r
+ {\r
+ Rectangle rect = new Rectangle (new Point (0,0), new Size (2, 2));\r
+\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabelInvalidate l = new MyLabelInvalidate ();\r
+ myform.Controls.Add (l);\r
+ l.TextAlign = ContentAlignment.TopRight;\r
+\r
+ string [] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnInvalidated,{X=0,Y=0,Width="+l.Size.Width+",Height="+l.Size.Height+"}",\r
+ "OnInvalidated," + rect.ToString ()\r
+ };\r
+\r
+ l.Invalidate (rect);\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+\r
+ }\r
+\r
+ [Test]\r
+ public void PaintEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "OnHandleCreated",\r
+ "OnBindingContextChanged",\r
+ "OnBindingContextChanged",\r
+ "OnInvalidated",\r
+ "OnInvalidated",\r
+ "OnPaint"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel l = new MyLabel ();\r
+ myform.Controls.Add (l);\r
+ l.TextAlign = ContentAlignment.TopRight;\r
+ l.Refresh ();\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ }\r
+\r
+public class MyLabel2 : Label\r
+ {\r
+ protected ArrayList results = new ArrayList ();\r
+ public MyLabel2 () : base ()\r
+ {\r
+ this.AutoSizeChanged += new EventHandler (AutoSizeChanged_Handler);\r
+ this.HandleCreated += new EventHandler (HandleCreated_Handler);\r
+ this.BindingContextChanged += new EventHandler (BindingContextChanged_Handler);\r
+ this.BackgroundImageChanged += new EventHandler (BackgroundImageChanged_Handler);\r
+ this.ImeModeChanged += new EventHandler (ImeModeChanged_Handler);\r
+ this.KeyDown += new KeyEventHandler (KeyDown_Handler);\r
+ this.KeyPress += new KeyPressEventHandler (KeyPress_Handler);\r
+ this.KeyUp += new KeyEventHandler (KeyUp_Handler);\r
+ this.Invalidated += new InvalidateEventHandler (Invalidated_Handler);\r
+ this.Resize += new EventHandler (Resize_Handler);\r
+ this.SizeChanged += new EventHandler (SizeChanged_Handler);\r
+ this.Layout += new LayoutEventHandler (Layout_Handler);\r
+ this.VisibleChanged += new EventHandler (VisibleChanged_Handler);\r
+ this.Paint += new PaintEventHandler (Paint_Handler);\r
+ }\r
+\r
+ protected void AutoSizeChanged_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add ("AutoSizeChanged");\r
+ }\r
+\r
+ protected void BackgroundImageChanged_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add ("BackgroundImageChanged");\r
+ }\r
+\r
+ protected void ImeModeChanged_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add ("ImeModeChanged");\r
+ }\r
+\r
+ protected void KeyDown_Handler (object sender, KeyEventArgs e)\r
+ {\r
+ results.Add ("KeyDown,"+(char)e.KeyValue);\r
+ }\r
+\r
+ protected void KeyPress_Handler (object sender, KeyPressEventArgs e)\r
+ {\r
+ results.Add ("KeyPress,"+e.KeyChar.ToString ());\r
+ }\r
+\r
+ protected void KeyUp_Handler (object sender, KeyEventArgs e)\r
+ {\r
+ results.Add ("KeyUp,"+(char)e.KeyValue);\r
+ }\r
+\r
+ protected void HandleCreated_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add ("HandleCreated");\r
+ }\r
+\r
+ protected void BindingContextChanged_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add ("BindingContextChanged");\r
+ }\r
+\r
+ protected void Invalidated_Handler (object sender, InvalidateEventArgs e)\r
+ {\r
+ results.Add("Invalidated");\r
+ }\r
+\r
+ protected void Resize_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add("Resize");\r
+ }\r
+\r
+ protected void SizeChanged_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add("SizeChanged");\r
+ }\r
+\r
+ protected void Layout_Handler (object sender, LayoutEventArgs e)\r
+ {\r
+ results.Add("Layout");\r
+ }\r
+\r
+ protected void VisibleChanged_Handler (object sender, EventArgs e)\r
+ {\r
+ results.Add("VisibleChanged");\r
+ }\r
+\r
+ protected void Paint_Handler (object sender, PaintEventArgs e)\r
+ {\r
+ results.Add("Paint");\r
+ }\r
+\r
+ public void KeyPressA()\r
+ {\r
+ Message m;\r
+\r
+ m = new Message();\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYDOWN;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+\r
+ m.Msg = (int)WndMsg.WM_CHAR;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x61;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYUP;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);\r
+ this.WndProc(ref m);\r
+ }\r
+\r
+ public void KeyDownA()\r
+ {\r
+ Message m;\r
+\r
+ m = new Message();\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYDOWN;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+\r
+ m.Msg = (int)WndMsg.WM_CHAR;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x61;\r
+ m.LParam = (IntPtr)0x1e0001;\r
+ this.WndProc(ref m);\r
+ }\r
+\r
+ public void KeyUpA()\r
+ {\r
+ Message m;\r
+\r
+ m = new Message();\r
+\r
+ m.Msg = (int)WndMsg.WM_KEYUP;\r
+ m.HWnd = this.Handle;\r
+ m.WParam = (IntPtr)0x41;\r
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);\r
+ this.WndProc(ref m);\r
+ }\r
+\r
+ public ArrayList Results {\r
+ get { return results; }\r
+ }\r
+ }\r
+\r
+ [TestFixture]\r
+ public class LabelTestEventsOrder2\r
+ {\r
+ public string [] ArrayListToString (ArrayList arrlist)\r
+ {\r
+ string [] retval = new string [arrlist.Count];\r
+ for (int i = 0; i < arrlist.Count; i++)\r
+ retval[i] = (string)arrlist[i];\r
+ return retval;\r
+ }\r
+\r
+ [Test]\r
+ public void CreateEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void SizeChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "Invalidated",\r
+ "Layout",\r
+ "Resize",\r
+ "SizeChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.Size = new Size (150, 20);\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "Invalidated",\r
+ "Layout",\r
+ "Resize",\r
+ "SizeChanged",\r
+ "AutoSizeChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.AutoSize = true;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void BackgroundImageChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "Invalidated",\r
+ "BackgroundImageChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void ImeModeChangedChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "ImeModeChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.ImeMode = ImeMode.Katakana;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void KeyPressEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "KeyDown,A",\r
+ "KeyPress,a",\r
+ "KeyUp,A"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.KeyPressA ();\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void TabStopChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.TabStop = true;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void TextAlignChangedEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "Invalidated"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.TextAlign = ContentAlignment.TopRight;\r
+\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ [Test]\r
+ public void PaintEventsOrder ()\r
+ {\r
+ string[] EventsWanted = {\r
+ "HandleCreated",\r
+ "BindingContextChanged",\r
+ "BindingContextChanged",\r
+ "Invalidated",\r
+ "Invalidated",\r
+ "Paint"\r
+ };\r
+ Form myform = new Form ();\r
+ myform.Visible = true;\r
+ MyLabel2 l = new MyLabel2 ();\r
+ myform.Controls.Add (l);\r
+ l.TextAlign = ContentAlignment.TopRight;\r
+ l.Refresh ();\r
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));\r
+ }\r
+\r
+ }\r
+\r
+}\r