-//\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
- internal enum WndMsg {\r
- WM_NULL = 0x0000,\r
- WM_CREATE = 0x0001,\r
- WM_DESTROY = 0x0002,\r
- WM_MOVE = 0x0003,\r
- WM_SIZE = 0x0005,\r
- WM_ACTIVATE = 0x0006,\r
- WM_SETFOCUS = 0x0007,\r
- WM_KILLFOCUS = 0x0008,\r
- //public const uint WM_SETVISIBLE = 0x0009;\r
- WM_ENABLE = 0x000A,\r
- WM_SETREDRAW = 0x000B,\r
- WM_SETTEXT = 0x000C,\r
- WM_GETTEXT = 0x000D,\r
- WM_GETTEXTLENGTH = 0x000E,\r
- WM_PAINT = 0x000F,\r
- WM_CLOSE = 0x0010,\r
- WM_QUERYENDSESSION = 0x0011,\r
- WM_QUIT = 0x0012,\r
- WM_QUERYOPEN = 0x0013,\r
- WM_ERASEBKGND = 0x0014,\r
- WM_SYSCOLORCHANGE = 0x0015,\r
- WM_ENDSESSION = 0x0016,\r
- //public const uint WM_SYSTEMERROR = 0x0017;\r
- WM_SHOWWINDOW = 0x0018,\r
- WM_CTLCOLOR = 0x0019,\r
- WM_WININICHANGE = 0x001A,\r
- WM_SETTINGCHANGE = 0x001A,\r
- WM_DEVMODECHANGE = 0x001B,\r
- WM_ACTIVATEAPP = 0x001C,\r
- WM_FONTCHANGE = 0x001D,\r
- WM_TIMECHANGE = 0x001E,\r
- WM_CANCELMODE = 0x001F,\r
- WM_SETCURSOR = 0x0020,\r
- WM_MOUSEACTIVATE = 0x0021,\r
- WM_CHILDACTIVATE = 0x0022,\r
- WM_QUEUESYNC = 0x0023,\r
- WM_GETMINMAXINFO = 0x0024,\r
- WM_PAINTICON = 0x0026,\r
- WM_ICONERASEBKGND = 0x0027,\r
- WM_NEXTDLGCTL = 0x0028,\r
- //public const uint WM_ALTTABACTIVE = 0x0029;\r
- WM_SPOOLERSTATUS = 0x002A,\r
- WM_DRAWITEM = 0x002B,\r
- WM_MEASUREITEM = 0x002C,\r
- WM_DELETEITEM = 0x002D,\r
- WM_VKEYTOITEM = 0x002E,\r
- WM_CHARTOITEM = 0x002F,\r
- WM_SETFONT = 0x0030,\r
- WM_GETFONT = 0x0031,\r
- WM_SETHOTKEY = 0x0032,\r
- WM_GETHOTKEY = 0x0033,\r
- //public const uint WM_FILESYSCHANGE = 0x0034;\r
- //public const uint WM_ISACTIVEICON = 0x0035;\r
- //public const uint WM_QUERYPARKICON = 0x0036;\r
- WM_QUERYDRAGICON = 0x0037,\r
- WM_COMPAREITEM = 0x0039,\r
- //public const uint WM_TESTING = 0x003a;\r
- //public const uint WM_OTHERWINDOWCREATED = 0x003c;\r
- WM_GETOBJECT = 0x003D,\r
- //public const uint WM_ACTIVATESHELLWINDOW = 0x003e;\r
- WM_COMPACTING = 0x0041,\r
- WM_COMMNOTIFY = 0x0044 ,\r
- WM_WINDOWPOSCHANGING = 0x0046,\r
- WM_WINDOWPOSCHANGED = 0x0047,\r
- WM_POWER = 0x0048,\r
- WM_COPYDATA = 0x004A,\r
- WM_CANCELJOURNAL = 0x004B,\r
- WM_NOTIFY = 0x004E,\r
- WM_INPUTLANGCHANGEREQUEST = 0x0050,\r
- WM_INPUTLANGCHANGE = 0x0051,\r
- WM_TCARD = 0x0052,\r
- WM_HELP = 0x0053,\r
- WM_USERCHANGED = 0x0054,\r
- WM_NOTIFYFORMAT = 0x0055,\r
- WM_CONTEXTMENU = 0x007B,\r
- WM_STYLECHANGING = 0x007C,\r
- WM_STYLECHANGED = 0x007D,\r
- WM_DISPLAYCHANGE = 0x007E,\r
- WM_GETICON = 0x007F,\r
-\r
- // Non-Client messages\r
- WM_SETICON = 0x0080,\r
- WM_NCCREATE = 0x0081,\r
- WM_NCDESTROY = 0x0082,\r
- WM_NCCALCSIZE = 0x0083,\r
- WM_NCHITTEST = 0x0084,\r
- WM_NCPAINT = 0x0085,\r
- WM_NCACTIVATE = 0x0086,\r
- WM_GETDLGCODE = 0x0087,\r
- WM_SYNCPAINT = 0x0088,\r
- //public const uint WM_SYNCTASK = 0x0089;\r
- WM_NCMOUSEMOVE = 0x00A0,\r
- WM_NCLBUTTONDOWN = 0x00A1,\r
- WM_NCLBUTTONUP = 0x00A2,\r
- WM_NCLBUTTONDBLCLK = 0x00A3,\r
- WM_NCRBUTTONDOWN = 0x00A4,\r
- WM_NCRBUTTONUP = 0x00A5,\r
- WM_NCRBUTTONDBLCLK = 0x00A6,\r
- WM_NCMBUTTONDOWN = 0x00A7,\r
- WM_NCMBUTTONUP = 0x00A8,\r
- WM_NCMBUTTONDBLCLK = 0x00A9,\r
- //public const uint WM_NCXBUTTONDOWN = 0x00ab;\r
- //public const uint WM_NCXBUTTONUP = 0x00ac;\r
- //public const uint WM_NCXBUTTONDBLCLK = 0x00ad;\r
- WM_KEYDOWN = 0x0100,\r
- WM_KEYFIRST = 0x0100,\r
- WM_KEYUP = 0x0101,\r
- WM_CHAR = 0x0102,\r
- WM_DEADCHAR = 0x0103,\r
- WM_SYSKEYDOWN = 0x0104,\r
- WM_SYSKEYUP = 0x0105,\r
- WM_SYSCHAR = 0x0106,\r
- WM_SYSDEADCHAR = 0x0107,\r
- WM_KEYLAST = 0x0108,\r
- WM_IME_STARTCOMPOSITION = 0x010D,\r
- WM_IME_ENDCOMPOSITION = 0x010E,\r
- WM_IME_COMPOSITION = 0x010F,\r
- WM_IME_KEYLAST = 0x010F,\r
- WM_INITDIALOG = 0x0110,\r
- WM_COMMAND = 0x0111,\r
- WM_SYSCOMMAND = 0x0112,\r
- WM_TIMER = 0x0113,\r
- WM_HSCROLL = 0x0114,\r
- WM_VSCROLL = 0x0115,\r
- WM_INITMENU = 0x0116,\r
- WM_INITMENUPOPUP = 0x0117,\r
- //public const uint WM_SYSTIMER = 0x0118;\r
- WM_MENUSELECT = 0x011F,\r
- WM_MENUCHAR = 0x0120,\r
- WM_ENTERIDLE = 0x0121,\r
- WM_MENURBUTTONUP = 0x0122,\r
- WM_MENUDRAG = 0x0123,\r
- WM_MENUGETOBJECT = 0x0124,\r
- WM_UNINITMENUPOPUP = 0x0125,\r
- WM_MENUCOMMAND = 0x0126,\r
- //public const uint WM_CHANGEUISTATE = 0x0127;\r
- //public const uint WM_UPDATEUISTATE = 0x0128;\r
- //public const uint WM_QUERYUISTATE = 0x0129;\r
- //\r
- //public const uint WM_LBTRACKPOINT = 0x0131;\r
- WM_CTLCOLORMSGBOX = 0x0132,\r
- WM_CTLCOLOREDIT = 0x0133,\r
- WM_CTLCOLORLISTBOX = 0x0134,\r
- WM_CTLCOLORBTN = 0x0135,\r
- WM_CTLCOLORDLG = 0x0136,\r
- WM_CTLCOLORSCROLLBAR = 0x0137,\r
- WM_CTLCOLORSTATIC = 0x0138,\r
- WM_MOUSEMOVE = 0x0200,\r
- WM_MOUSEFIRST = 0x0200,\r
- WM_LBUTTONDOWN = 0x0201,\r
- WM_LBUTTONUP = 0x0202,\r
- WM_LBUTTONDBLCLK = 0x0203,\r
- WM_RBUTTONDOWN = 0x0204,\r
- WM_RBUTTONUP = 0x0205,\r
- WM_RBUTTONDBLCLK = 0x0206,\r
- WM_MBUTTONDOWN = 0x0207,\r
- WM_MBUTTONUP = 0x0208,\r
- WM_MBUTTONDBLCLK = 0x0209,\r
- WM_MOUSEWHEEL = 0x020A,\r
- WM_MOUSELAST = 0x020D,\r
- //public const uint WM_XBUTTONDOWN = 0x020B;\r
- //public const uint WM_XBUTTONUP = 0x020C;\r
- //public const uint WM_XBUTTONDBLCLK = 0x020D;\r
- WM_PARENTNOTIFY = 0x0210,\r
- WM_ENTERMENULOOP = 0x0211,\r
- WM_EXITMENULOOP = 0x0212,\r
- WM_NEXTMENU = 0x0213,\r
- WM_SIZING = 0x0214,\r
- WM_CAPTURECHANGED = 0x0215,\r
- WM_MOVING = 0x0216,\r
- //public const uint WM_POWERBROADCAST = 0x0218;\r
- WM_DEVICECHANGE = 0x0219,\r
- WM_MDICREATE = 0x0220,\r
- WM_MDIDESTROY = 0x0221,\r
- WM_MDIACTIVATE = 0x0222,\r
- WM_MDIRESTORE = 0x0223,\r
- WM_MDINEXT = 0x0224,\r
- WM_MDIMAXIMIZE = 0x0225,\r
- WM_MDITILE = 0x0226,\r
- WM_MDICASCADE = 0x0227,\r
- WM_MDIICONARRANGE = 0x0228,\r
- WM_MDIGETACTIVE = 0x0229,\r
- /* D&D messages */\r
- //public const uint WM_DROPOBJECT = 0x022A;\r
- //public const uint WM_QUERYDROPOBJECT = 0x022B;\r
- //public const uint WM_BEGINDRAG = 0x022C;\r
- //public const uint WM_DRAGLOOP = 0x022D;\r
- //public const uint WM_DRAGSELECT = 0x022E;\r
- //public const uint WM_DRAGMOVE = 0x022F;\r
- WM_MDISETMENU = 0x0230,\r
- WM_ENTERSIZEMOVE = 0x0231,\r
- WM_EXITSIZEMOVE = 0x0232,\r
- WM_DROPFILES = 0x0233,\r
- WM_MDIREFRESHMENU = 0x0234,\r
- WM_IME_SETCONTEXT = 0x0281,\r
- WM_IME_NOTIFY = 0x0282,\r
- WM_IME_CONTROL = 0x0283,\r
- WM_IME_COMPOSITIONFULL = 0x0284,\r
- WM_IME_SELECT = 0x0285,\r
- WM_IME_CHAR = 0x0286,\r
- WM_IME_REQUEST = 0x0288,\r
- WM_IME_KEYDOWN = 0x0290,\r
- WM_IME_KEYUP = 0x0291,\r
- WM_MOUSEHOVER = 0x02A1,\r
- WM_MOUSELEAVE = 0x02A3,\r
- WM_CUT = 0x0300,\r
- WM_COPY = 0x0301,\r
- WM_PASTE = 0x0302,\r
- WM_CLEAR = 0x0303,\r
- WM_UNDO = 0x0304,\r
- WM_RENDERFORMAT = 0x0305,\r
- WM_RENDERALLFORMATS = 0x0306,\r
- WM_DESTROYCLIPBOARD = 0x0307,\r
- WM_DRAWCLIPBOARD = 0x0308,\r
- WM_PAINTCLIPBOARD = 0x0309,\r
- WM_VSCROLLCLIPBOARD = 0x030A,\r
- WM_SIZECLIPBOARD = 0x030B,\r
- WM_ASKCBFORMATNAME = 0x030C,\r
- WM_CHANGECBCHAIN = 0x030D,\r
- WM_HSCROLLCLIPBOARD = 0x030E,\r
- WM_QUERYNEWPALETTE = 0x030F,\r
- WM_PALETTEISCHANGING = 0x0310,\r
- WM_PALETTECHANGED = 0x0311,\r
- WM_HOTKEY = 0x0312,\r
- WM_PRINT = 0x0317,\r
- WM_PRINTCLIENT = 0x0318,\r
- WM_HANDHELDFIRST = 0x0358,\r
- WM_HANDHELDLAST = 0x035F,\r
- WM_AFXFIRST = 0x0360,\r
- WM_AFXLAST = 0x037F,\r
- WM_PENWINFIRST = 0x0380,\r
- WM_PENWINLAST = 0x038F,\r
- WM_APP = 0x8000,\r
- WM_USER = 0x0400,\r
-\r
- // Our "private" ones\r
- WM_MOUSE_ENTER = 0x0401,\r
- WM_MOUSE_LEAVE = 0x0402,\r
- WM_ASYNC_MESSAGE = 0x0403,\r
- WM_REFLECT = WM_USER + 0x1c00\r
- }\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
+//
+// 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.Collections;
+
+namespace MonoTests.System.Windows.Forms
+{
+ [TestFixture]
+
+ 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.Label, Text: My Label", l.ToString (), "T1");
+
+ }
+ }
+
+ [TestFixture]
+ public class LabelEventTest
+ {
+ static bool eventhandled = false;
+ public void Label_EventHandler (object sender,EventArgs e)
+ {
+ eventhandled = true;
+ }
+
+ public void Label_KeyDownEventHandler (object sender, KeyEventArgs 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]
+ public void KeyDownTest ()
+ {
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ l.Visible = true;
+ myform.Controls.Add (l);
+ l.KeyDown += new KeyEventHandler (Label_KeyDownEventHandler);
+ l.KeyPressA ();
+
+ Assert.AreEqual (true, eventhandled, "K1");
+ eventhandled = false;
+ }
+
+ [Test]
+ 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;
+ }
+ }
+
+public class MyLabelInvalidate : MyLabel
+ {
+ //protected ArrayList results = new ArrayList ();
+ public MyLabelInvalidate () : base ()
+ {}
+
+ protected override void OnInvalidated (InvalidateEventArgs e)
+ {
+ base.OnInvalidated (e);
+ string res = (string)results [results.Count - 1];
+ results [results.Count - 1 ] = string.Concat (res, "," + e.InvalidRect.ToString ());
+ //results.Add ("OnInvalidate," + e.InvalidRect.ToString ());
+ }
+
+ //public ArrayList Results {
+ // get { return results; }
+ //}
+
+ }
+
+public class MyLabel : Label
+ {
+ protected ArrayList results = new ArrayList ();
+ public MyLabel () : base ()
+ { }
+
+ protected override void OnAutoSizeChanged (EventArgs e)
+ {
+ results.Add ("OnAutoSizeChanged");
+ base.OnAutoSizeChanged (e);
+ }
+
+ protected override void OnBackgroundImageChanged (EventArgs e)
+ {
+ results.Add ("OnBackgroundImageChanged");
+ base.OnBackgroundImageChanged (e);
+ }
+
+ protected override void OnImeModeChanged (EventArgs e)
+ {
+ results.Add ("OnImeModeChanged");
+ base.OnImeModeChanged (e);
+ }
+
+ protected override void OnKeyDown (KeyEventArgs e)
+ {
+ results.Add ("OnKeyDown,"+(char)e.KeyValue);
+ base.OnKeyDown (e);
+ }
+
+ protected override void OnKeyPress (KeyPressEventArgs e)
+ {
+ results.Add ("OnKeyPress,"+e.KeyChar.ToString ());
+ base.OnKeyPress (e);
+ }
+
+ protected override void OnKeyUp (KeyEventArgs e)
+ {
+ results.Add ("OnKeyUp,"+(char)e.KeyValue);
+ base.OnKeyUp (e);
+ }
+
+ protected override void OnHandleCreated (EventArgs e)
+ {
+ results.Add ("OnHandleCreated");
+ base.OnHandleCreated (e);
+ }
+
+ protected override void OnBindingContextChanged (EventArgs e)
+ {
+ results.Add ("OnBindingContextChanged");
+ base.OnBindingContextChanged (e);
+ }
+
+ protected override void OnInvalidated (InvalidateEventArgs e)
+ {
+ results.Add("OnInvalidated");
+ base.OnInvalidated (e);
+ }
+
+ protected override void OnResize (EventArgs e)
+ {
+ results.Add("OnResize");
+ base.OnResize (e);
+ }
+
+ protected override void OnSizeChanged (EventArgs e)
+ {
+ results.Add("OnSizeChanged");
+ base.OnSizeChanged (e);
+ }
+
+ protected override void OnLayout (LayoutEventArgs e)
+ {
+ results.Add("OnLayout");
+ base.OnLayout (e);
+ }
+
+ protected override void OnVisibleChanged (EventArgs e)
+ {
+ results.Add("OnVisibleChanged");
+ base.OnVisibleChanged (e);
+ }
+
+ protected override void OnPaint (PaintEventArgs e)
+ {
+ results.Add("OnPaint");
+ base.OnPaint (e);
+ }
+
+ public void KeyPressA()
+ {
+ Message m;
+
+ m = new Message();
+
+ m.Msg = (int)WndMsg.WM_KEYDOWN;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+
+ m.Msg = (int)WndMsg.WM_CHAR;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x61;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+
+ m.Msg = (int)WndMsg.WM_KEYUP;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);
+ this.WndProc(ref m);
+ }
+
+ public void KeyDownA()
+ {
+ Message m;
+
+ m = new Message();
+
+ m.Msg = (int)WndMsg.WM_KEYDOWN;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+
+ m.Msg = (int)WndMsg.WM_CHAR;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x61;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+ }
+
+ public void KeyUpA()
+ {
+ Message m;
+
+ m = new Message();
+
+ m.Msg = (int)WndMsg.WM_KEYUP;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);
+ this.WndProc(ref m);
+ }
+
+ public ArrayList Results {
+ get { return results; }
+ }
+ }
+
+ [TestFixture]
+ [Ignore("Comparisons too strict")]
+ public class LabelTestEventsOrder
+ {
+ public string [] ArrayListToString (ArrayList arrlist)
+ {
+ string [] retval = new string [arrlist.Count];
+ for (int i = 0; i < arrlist.Count; i++)
+ retval[i] = (string)arrlist[i];
+ return retval;
+ }
+
+ private void OrderedAssert(string[] wanted, ArrayList found) {
+ int last_target;
+ bool seen;
+
+ last_target = 0;
+
+ for (int i = 0; i < wanted.Length; i++) {
+ seen = false;
+ for (int j = last_target; j < found.Count; j++) {
+ if (wanted[i] == (string)found[j]) {
+ seen = true;
+ last_target = j + 1;
+ break;
+ }
+ }
+
+ if (!seen) {
+ Console.WriteLine("Needed {0}", wanted[i]);
+ }
+ }
+ }
+
+ public void PrintList(string name, ArrayList list) {
+ Console.WriteLine("{0}", name);
+ for (int i = 0; i < list.Count; i++) {
+ Console.WriteLine(" {0}", list[i]);
+ }
+ Console.WriteLine("");
+ }
+
+
+ [Test]
+ public void CreateEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void SizeChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnSizeChanged",
+ "OnResize",
+ "OnInvalidated",
+ "OnLayout"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.Size = new Size (150, 20);
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void AutoSizeChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnSizeChanged",
+ "OnResize",
+ "OnInvalidated",
+ "OnLayout",
+ "OnAutoSizeChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.AutoSize = true;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void BackgroundImageChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnBackgroundImageChanged",
+ "OnInvalidated"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void ImeModeChangedChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnImeModeChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.ImeMode = ImeMode.Katakana;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void KeyPressEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnKeyDown,A",
+ "OnKeyPress,a",
+ "OnKeyUp,A"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.KeyPressA ();
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void TabStopChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.TabStop = true;
+PrintList("TabStopChanged", l.Results);
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void TextAlignChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnInvalidated"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.TextAlign = ContentAlignment.TopRight;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void InvalidateEventsOrder ()
+ {
+ Rectangle rect = new Rectangle (new Point (0,0), new Size (2, 2));
+
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabelInvalidate l = new MyLabelInvalidate ();
+ myform.Controls.Add (l);
+ l.TextAlign = ContentAlignment.TopRight;
+
+ string [] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnInvalidated,{X=0,Y=0,Width="+l.Size.Width+",Height="+l.Size.Height+"}",
+ "OnInvalidated," + rect.ToString ()
+ };
+
+ l.Invalidate (rect);
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+
+ }
+
+ [Test]
+ public void PaintEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "OnHandleCreated",
+ "OnBindingContextChanged",
+ "OnBindingContextChanged",
+ "OnInvalidated",
+ "OnInvalidated",
+ "OnPaint"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel l = new MyLabel ();
+ myform.Controls.Add (l);
+ l.TextAlign = ContentAlignment.TopRight;
+ l.Refresh ();
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ }
+
+public class MyLabel2 : Label
+ {
+ protected ArrayList results = new ArrayList ();
+ public MyLabel2 () : base ()
+ {
+ this.AutoSizeChanged += new EventHandler (AutoSizeChanged_Handler);
+ this.HandleCreated += new EventHandler (HandleCreated_Handler);
+ this.BindingContextChanged += new EventHandler (BindingContextChanged_Handler);
+ this.BackgroundImageChanged += new EventHandler (BackgroundImageChanged_Handler);
+ this.ImeModeChanged += new EventHandler (ImeModeChanged_Handler);
+ this.KeyDown += new KeyEventHandler (KeyDown_Handler);
+ this.KeyPress += new KeyPressEventHandler (KeyPress_Handler);
+ this.KeyUp += new KeyEventHandler (KeyUp_Handler);
+ this.Invalidated += new InvalidateEventHandler (Invalidated_Handler);
+ this.Resize += new EventHandler (Resize_Handler);
+ this.SizeChanged += new EventHandler (SizeChanged_Handler);
+ this.Layout += new LayoutEventHandler (Layout_Handler);
+ this.VisibleChanged += new EventHandler (VisibleChanged_Handler);
+ this.Paint += new PaintEventHandler (Paint_Handler);
+ }
+
+ protected void AutoSizeChanged_Handler (object sender, EventArgs e)
+ {
+ results.Add ("AutoSizeChanged");
+ }
+
+ protected void BackgroundImageChanged_Handler (object sender, EventArgs e)
+ {
+ results.Add ("BackgroundImageChanged");
+ }
+
+ protected void ImeModeChanged_Handler (object sender, EventArgs e)
+ {
+ results.Add ("ImeModeChanged");
+ }
+
+ protected void KeyDown_Handler (object sender, KeyEventArgs e)
+ {
+ results.Add ("KeyDown,"+(char)e.KeyValue);
+ }
+
+ protected void KeyPress_Handler (object sender, KeyPressEventArgs e)
+ {
+ results.Add ("KeyPress,"+e.KeyChar.ToString ());
+ }
+
+ protected void KeyUp_Handler (object sender, KeyEventArgs e)
+ {
+ results.Add ("KeyUp,"+(char)e.KeyValue);
+ }
+
+ protected void HandleCreated_Handler (object sender, EventArgs e)
+ {
+ results.Add ("HandleCreated");
+ }
+
+ protected void BindingContextChanged_Handler (object sender, EventArgs e)
+ {
+ results.Add ("BindingContextChanged");
+ }
+
+ protected void Invalidated_Handler (object sender, InvalidateEventArgs e)
+ {
+ results.Add("Invalidated");
+ }
+
+ protected void Resize_Handler (object sender, EventArgs e)
+ {
+ results.Add("Resize");
+ }
+
+ protected void SizeChanged_Handler (object sender, EventArgs e)
+ {
+ results.Add("SizeChanged");
+ }
+
+ protected void Layout_Handler (object sender, LayoutEventArgs e)
+ {
+ results.Add("Layout");
+ }
+
+ protected void VisibleChanged_Handler (object sender, EventArgs e)
+ {
+ results.Add("VisibleChanged");
+ }
+
+ protected void Paint_Handler (object sender, PaintEventArgs e)
+ {
+ results.Add("Paint");
+ }
+
+ public void KeyPressA()
+ {
+ Message m;
+
+ m = new Message();
+
+ m.Msg = (int)WndMsg.WM_KEYDOWN;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+
+ m.Msg = (int)WndMsg.WM_CHAR;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x61;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+
+ m.Msg = (int)WndMsg.WM_KEYUP;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);
+ this.WndProc(ref m);
+ }
+
+ public void KeyDownA()
+ {
+ Message m;
+
+ m = new Message();
+
+ m.Msg = (int)WndMsg.WM_KEYDOWN;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+
+ m.Msg = (int)WndMsg.WM_CHAR;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x61;
+ m.LParam = (IntPtr)0x1e0001;
+ this.WndProc(ref m);
+ }
+
+ public void KeyUpA()
+ {
+ Message m;
+
+ m = new Message();
+
+ m.Msg = (int)WndMsg.WM_KEYUP;
+ m.HWnd = this.Handle;
+ m.WParam = (IntPtr)0x41;
+ m.LParam = (IntPtr)unchecked((int)0xC01e0001);
+ this.WndProc(ref m);
+ }
+
+ public ArrayList Results {
+ get { return results; }
+ }
+ }
+
+ [TestFixture]
+ [Ignore("Comparisons too strict")]
+ public class LabelTestEventsOrder2
+ {
+ public string [] ArrayListToString (ArrayList arrlist)
+ {
+ string [] retval = new string [arrlist.Count];
+ for (int i = 0; i < arrlist.Count; i++)
+ retval[i] = (string)arrlist[i];
+ return retval;
+ }
+
+ [Test]
+ public void CreateEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void SizeChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "Invalidated",
+ "Layout",
+ "Resize",
+ "SizeChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.Size = new Size (150, 20);
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void AutoSizeChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "Invalidated",
+ "Layout",
+ "Resize",
+ "SizeChanged",
+ "AutoSizeChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.AutoSize = true;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void BackgroundImageChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "Invalidated",
+ "BackgroundImageChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.BackgroundImage = Image.FromFile ("Test/System.Windows.Forms/bitmaps/a.png");
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void ImeModeChangedChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "ImeModeChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.ImeMode = ImeMode.Katakana;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void KeyPressEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "KeyDown,A",
+ "KeyPress,a",
+ "KeyUp,A"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.KeyPressA ();
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void TabStopChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.TabStop = true;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void TextAlignChangedEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "Invalidated"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.TextAlign = ContentAlignment.TopRight;
+
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ [Test]
+ public void PaintEventsOrder ()
+ {
+ string[] EventsWanted = {
+ "HandleCreated",
+ "BindingContextChanged",
+ "BindingContextChanged",
+ "Invalidated",
+ "Invalidated",
+ "Paint"
+ };
+ Form myform = new Form ();
+ myform.Visible = true;
+ MyLabel2 l = new MyLabel2 ();
+ myform.Controls.Add (l);
+ l.TextAlign = ContentAlignment.TopRight;
+ l.Refresh ();
+ Assert.AreEqual (EventsWanted, ArrayListToString (l.Results));
+ }
+
+ }
+
+}