| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
- //
- // Copyright (c) 2005-2006 Novell, Inc.
- //
- // Authors:
- // Ritvik Mayank ([email protected])
- // Sebastien Pouliot <[email protected]>
- //
- using System;
- using System.Windows.Forms;
- using System.Drawing;
- using NUnit.Framework;
- namespace MonoTests.System.Windows.Forms
- {
- [TestFixture]
- public class ButtonTest : TestHelper
- {
- [Test]
- public void Constructor ()
- {
- Button b = new Button ();
-
- Assert.AreEqual (SystemColors.Control, b.BackColor, "A4");
- Assert.AreEqual (FlatStyle.Standard, b.FlatStyle, "A6");
- Assert.AreEqual (null, b.Image, "A7");
- Assert.AreEqual (ContentAlignment.MiddleCenter, b.ImageAlign, "A8");
- Assert.AreEqual (-1, b.ImageIndex, "A9");
- Assert.AreEqual (null, b.ImageList, "A11");
- Assert.AreEqual (ImeMode.Disable, b.ImeMode, "A12");
- Assert.AreEqual (string.Empty, b.Text, "A13");
- Assert.AreEqual (ContentAlignment.MiddleCenter, b.TextAlign, "A14");
- #if NET_2_0
- Assert.AreEqual (false, b.AutoEllipsis, "A1");
- Assert.AreEqual (false, b.AutoSize, "A2");
- Assert.AreEqual (string.Empty, b.ImageKey, "A10");
- Assert.AreEqual (TextImageRelation.Overlay, b.TextImageRelation, "A15");
- Assert.AreEqual (true, b.UseCompatibleTextRendering, "A16");
- Assert.AreEqual (true, b.UseMnemonic, "A17");
- Assert.AreEqual (true, b.UseVisualStyleBackColor, "A18");
- #endif
- }
-
- #if NET_2_0
- [Test]
- public void FlatButtonAppearanceTest ()
- {
- Button B1 = new Button ();
- FlatButtonAppearance flatApp = B1.FlatAppearance;
- Assert.AreEqual (Color.Empty, flatApp.BorderColor, "#A1");
- Assert.AreEqual (1, flatApp.BorderSize, "#A2");
- Assert.AreEqual (Color.Empty, flatApp.CheckedBackColor, "#A3");
- Assert.AreEqual (Color.Empty, flatApp.MouseDownBackColor, "#A4");
- Assert.AreEqual (Color.Empty, flatApp.MouseOverBackColor, "#A5");
- flatApp.BorderColor = Color.Blue;
- Assert.AreEqual (Color.Blue, flatApp.BorderColor, "#B1");
- flatApp.BorderSize = 10;
- Assert.AreEqual (10, flatApp.BorderSize, "#B2");
- flatApp.CheckedBackColor = Color.Blue;
- Assert.AreEqual (Color.Blue, flatApp.CheckedBackColor, "#B3");
- flatApp.MouseDownBackColor = Color.Blue;
- Assert.AreEqual (Color.Blue, flatApp.MouseDownBackColor, "#B4");
- flatApp.MouseOverBackColor = Color.Blue;
- Assert.AreEqual (Color.Blue, flatApp.MouseOverBackColor, "#B5");
- }
- [Test]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void FlatButtonAppearanceExceptionTest ()
- {
- Button B1 = new Button ();
- FlatButtonAppearance flatApp = B1.FlatAppearance;
- flatApp.BorderSize = -1;
- }
- [Test]
- [ExpectedException (typeof (NotSupportedException))]
- public void FlatButtonAppearanceBorderColor ()
- {
- Button B1 = new Button ();
- FlatButtonAppearance flatApp = B1.FlatAppearance;
- flatApp.BorderColor = Color.Transparent;
- }
- [Test]
- public void BehaviorAutoSize ()
- {
- if (TestHelper.RunningOnUnix)
- Assert.Ignore ("Depends on font measurements, corresponds to windows");
-
- Form f = new Form ();
- f.ShowInTaskbar = false;
-
- f.Show ();
-
- Image i = new Bitmap (20, 20);
- String s = "My test string";
-
- Button b = new Button ();
- Size s_size = TextRenderer.MeasureText (s, new Button ().Font);
-
- b.UseCompatibleTextRendering = false;
- b.AutoSize = true;
- b.AutoSizeMode = AutoSizeMode.GrowAndShrink;
- b.Text = s;
- f.Controls.Add (b);
-
- // Text only
- b.TextImageRelation = TextImageRelation.Overlay;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + 10), b.Size, "A1");
- b.TextImageRelation = TextImageRelation.ImageAboveText;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + 10), b.Size, "A2");
- b.TextImageRelation = TextImageRelation.ImageBeforeText;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + 10), b.Size, "A3");
- b.TextImageRelation = TextImageRelation.TextAboveImage;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + 10), b.Size, "A4");
- b.TextImageRelation = TextImageRelation.TextBeforeImage;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + 10), b.Size, "A5");
-
- // Text and Image
- b.Image = i;
- b.TextImageRelation = TextImageRelation.Overlay;
- Assert.AreEqual (new Size (s_size.Width + 10, i.Height + 6), b.Size, "A6");
- b.TextImageRelation = TextImageRelation.ImageAboveText;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + i.Height + 10), b.Size, "A7");
- b.TextImageRelation = TextImageRelation.ImageBeforeText;
- Assert.AreEqual (new Size (s_size.Width + i.Width + 10, i.Height + 6), b.Size, "A8");
- b.TextImageRelation = TextImageRelation.TextAboveImage;
- Assert.AreEqual (new Size (s_size.Width + 10, s_size.Height + i.Height + 10), b.Size, "A9");
- b.TextImageRelation = TextImageRelation.TextBeforeImage;
- Assert.AreEqual (new Size (s_size.Width + i.Width + 10, i.Height + 6), b.Size, "A10");
- // Image only
- b.Text = string.Empty;
- b.TextImageRelation = TextImageRelation.Overlay;
- Assert.AreEqual (new Size (i.Height + 6, i.Height + 6), b.Size, "A11");
- b.TextImageRelation = TextImageRelation.ImageAboveText;
- Assert.AreEqual (new Size (i.Height + 6, i.Height + 6), b.Size, "A12");
- b.TextImageRelation = TextImageRelation.ImageBeforeText;
- Assert.AreEqual (new Size (i.Height + 6, i.Height + 6), b.Size, "A13");
- b.TextImageRelation = TextImageRelation.TextAboveImage;
- Assert.AreEqual (new Size (i.Height + 6, i.Height + 6), b.Size, "A14");
- b.TextImageRelation = TextImageRelation.TextBeforeImage;
- Assert.AreEqual (new Size (i.Height + 6, i.Height + 6), b.Size, "A15");
-
- // Neither
- b.Image = null;
- b.TextImageRelation = TextImageRelation.Overlay;
- Assert.AreEqual (new Size (6, 6), b.Size, "A16");
- b.TextImageRelation = TextImageRelation.ImageAboveText;
- Assert.AreEqual (new Size (6, 6), b.Size, "A17");
- b.TextImageRelation = TextImageRelation.ImageBeforeText;
- Assert.AreEqual (new Size (6, 6), b.Size, "A18");
- b.TextImageRelation = TextImageRelation.TextAboveImage;
- Assert.AreEqual (new Size (6, 6), b.Size, "A19");
- b.TextImageRelation = TextImageRelation.TextBeforeImage;
- Assert.AreEqual (new Size (6, 6), b.Size, "A20");
-
- // Padding
- b.Padding = new Padding (5, 10, 15, 20);
- Assert.AreEqual (new Size (6 + b.Padding.Horizontal, 6 + b.Padding.Vertical), b.Size, "A21");
- f.Dispose ();
- }
- [Test]
- public void BehaviorImageList ()
- {
- // Basically, this shows that whichever of [Image|ImageIndex|ImageKey]
- // is set last resets the others to their default state
- Button b = new Button ();
- Bitmap i1 = new Bitmap (16, 16);
- i1.SetPixel (0, 0, Color.Blue);
- Bitmap i2 = new Bitmap (16, 16);
- i2.SetPixel (0, 0, Color.Red);
- Bitmap i3 = new Bitmap (16, 16);
- i3.SetPixel (0, 0, Color.Green);
- Assert.AreEqual (null, b.Image, "D1");
- Assert.AreEqual (-1, b.ImageIndex, "D2");
- Assert.AreEqual (string.Empty, b.ImageKey, "D3");
- ImageList il = new ImageList ();
- il.Images.Add ("i2", i2);
- il.Images.Add ("i3", i3);
- b.ImageList = il;
- b.ImageKey = "i3";
- Assert.AreEqual (-1, b.ImageIndex, "D4");
- Assert.AreEqual ("i3", b.ImageKey, "D5");
- Assert.AreEqual (i3.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D6");
- b.ImageIndex = 0;
- Assert.AreEqual (0, b.ImageIndex, "D7");
- Assert.AreEqual (string.Empty, b.ImageKey, "D8");
- Assert.AreEqual (i2.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D9");
-
- // Also, Image is not cached, changing the underlying ImageList image is reflected
- il.Images[0] = i1;
- Assert.AreEqual (i1.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D16");
- // Note: setting Image resets ImageList to null
- b.Image = i1;
- Assert.AreEqual (-1, b.ImageIndex, "D10");
- Assert.AreEqual (string.Empty, b.ImageKey, "D11");
- Assert.AreEqual (i1.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D12");
- Assert.AreEqual (null, b.ImageList, "D12-2");
- b.Image = null;
- Assert.AreEqual (null, b.Image, "D13");
- Assert.AreEqual (-1, b.ImageIndex, "D14");
- Assert.AreEqual (string.Empty, b.ImageKey, "D15");
- }
- #endif
- [Test]
- public void ImageTest ()
- {
- Button B1 = new Button ();
- B1.Visible = true;
- B1.Image = Image.FromFile ("M.gif");
- Assert.AreEqual (ContentAlignment.MiddleCenter, B1.ImageAlign, "#2");
- }
- [Test]
- public void ImageListTest ()
- {
- Button B1 = new Button ();
- B1.Image = Image.FromFile ("M.gif");
- Assert.AreEqual (null, B1.ImageList, "#3a");
- B1 = new Button ();
- ImageList ImageList1 = new ImageList ();
- ImageList1.Images.Add(Image.FromFile ("M.gif"));
- ImageList1.Images.Add(Image.FromFile ("M.gif"));
- Assert.AreEqual (2, ImageList1.Images.Count, "#3b");
- B1.ImageList = ImageList1;
- Assert.AreEqual (-1, B1.ImageIndex, "#3c");
- B1 = new Button ();
- B1.ImageIndex = 1;
- B1.ImageList = ImageList1;
- Assert.AreEqual (1, B1.ImageIndex, "#3d");
- Assert.AreEqual (2, B1.ImageList.Images.Count, "#3e");
- Assert.AreEqual (16, B1.ImageList.ImageSize.Height, "#3f");
- Assert.AreEqual (16, B1.ImageList.ImageSize.Width, "#3g");
- }
- [Test]
- public void IMeModeTest ()
- {
- Button B1 = new Button ();
- Assert.AreEqual (ImeMode.Disable, B1.ImeMode, "#4a");
- B1.ImeMode = ImeMode.Off;
- Assert.AreEqual (ImeMode.Off, B1.ImeMode, "#4b");
- B1 = new Button ();
- Assert.AreEqual (ImeMode.Disable, ((Control)B1).ImeMode, "#4c");
- ((Control)B1).ImeMode = ImeMode.Off;
- Assert.AreEqual (ImeMode.Off, ((Control)B1).ImeMode, "#4d");
- Assert.AreEqual (ImeMode.Off, B1.ImeMode, "#4e");
- }
- [Test]
- public void TextAlignTest ()
- {
- Button B1 = new Button ();
- Assert.AreEqual (ContentAlignment.MiddleCenter, B1.TextAlign, "#5");
- }
- [Test]
- public void DialogResultTest ()
- {
- Form f = new Form ();
- f.ShowInTaskbar = false;
- Button B1 = new Button ();
- B1.Text = "DialogResult";
- B1.DialogResult = DialogResult.No;
- B1.TextAlign = ContentAlignment.BottomRight;
- B1.Visible = true;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.No, B1.DialogResult, "#6");
- f.Dispose();
- // check cancel button behavior
- f = new Form ();
- f.ShowInTaskbar = false;
- B1 = new Button ();
- f.CancelButton = B1;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.Cancel, B1.DialogResult, "#7");
- f.Dispose ();
- f = new Form ();
- f.ShowInTaskbar = false;
- B1 = new Button ();
- B1.DialogResult = DialogResult.No;
- f.CancelButton = B1;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.No, B1.DialogResult, "#8");
- f.Dispose ();
- f = new Form ();
- f.ShowInTaskbar = false;
- B1 = new Button ();
- B1.DialogResult = DialogResult.No;
- B1.DialogResult = DialogResult.None;
- f.CancelButton = B1;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.Cancel, B1.DialogResult, "#9");
- f.Dispose ();
- // check accept button behavior
- f = new Form ();
- f.ShowInTaskbar = false;
- B1 = new Button ();
- f.AcceptButton = B1;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.None, B1.DialogResult, "#10");
- f.Dispose ();
- f = new Form ();
- f.ShowInTaskbar = false;
- B1 = new Button ();
- B1.DialogResult = DialogResult.No;
- f.AcceptButton = B1;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.No, B1.DialogResult, "#11");
- f.Dispose ();
- f = new Form ();
- f.ShowInTaskbar = false;
- B1 = new Button ();
- B1.DialogResult = DialogResult.No;
- B1.DialogResult = DialogResult.None;
- f.AcceptButton = B1;
- f.Controls.Add (B1);
- Assert.AreEqual (DialogResult.None, B1.DialogResult, "#12");
- f.Dispose ();
- }
- [Test]
- public void PerformClickTest ()
- {
- Form f = new Form ();
- f.ShowInTaskbar = false;
- Button B1 = new Button ();
- B1.Text = "DialogResult";
- B1.Visible = true;
- f.Controls.Add (B1);
- B1.PerformClick ();
- Assert.AreEqual (DialogResult.None, B1.DialogResult, "#7");
- f.Dispose ();
- }
- [Test]
- public void ToStringTest ()
- {
- Button B1 = new Button ();
- Assert.AreEqual ("System.Windows.Forms.Button, Text: " , B1.ToString (), "#9");
- }
- }
- [TestFixture]
- public class ButtonInheritorTest : Button {
- [Test]
- public void DefaultImeModeTest ()
- {
- Assert.AreEqual (ImeMode.Disable, DefaultImeMode, "1");
- }
- [Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void Constructor_Null ()
- {
- new ButtonBaseAccessibleObject (null);
- }
- [Test]
- public void Constructor ()
- {
- ButtonBaseAccessibleObject bbao = new ButtonBaseAccessibleObject (this);
- Assert.IsNotNull (bbao.Owner, "Owner");
- Assert.IsTrue (Object.ReferenceEquals (this, bbao.Owner), "ReferenceEquals");
- Assert.AreEqual ("Press", bbao.DefaultAction, "DefaultAction");
- Assert.IsNull (bbao.Description, "Description");
- Assert.IsNull (bbao.Help, "Help");
- Assert.IsNull (bbao.Name, "Name");
- Assert.AreEqual (AccessibleRole.PushButton, bbao.Role, "Role");
- Assert.AreEqual (AccessibleStates.None, bbao.State, "State");
- }
- [Test]
- public void CreateAccessibilityInstanceTest ()
- {
- AccessibleObject ao = base.CreateAccessibilityInstance ();
- Button.ButtonBaseAccessibleObject bbao = (ao as Button.ButtonBaseAccessibleObject);
- Assert.IsNotNull (bbao, "ButtonBaseAccessibleObject");
- Assert.IsNotNull (bbao.Owner, "Owner");
- Assert.IsTrue (Object.ReferenceEquals (this, bbao.Owner), "ReferenceEquals");
- Assert.AreEqual ("Press", bbao.DefaultAction, "DefaultAction");
- Assert.IsNull (bbao.Description, "Description");
- Assert.IsNull (bbao.Help, "Help");
- Assert.IsNull (bbao.Name, "Name");
- Assert.AreEqual (AccessibleRole.PushButton, bbao.Role, "Role");
- Assert.AreEqual (AccessibleStates.None, bbao.State, "State");
- }
- }
- }
|