ButtonTest.cs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. //
  2. // Copyright (c) 2005-2006 Novell, Inc.
  3. //
  4. // Authors:
  5. // Ritvik Mayank ([email protected])
  6. // Sebastien Pouliot <[email protected]>
  7. //
  8. using System;
  9. using System.Windows.Forms;
  10. using System.Drawing;
  11. using NUnit.Framework;
  12. namespace MonoTests.System.Windows.Forms
  13. {
  14. [TestFixture]
  15. public class ButtonTest
  16. {
  17. [Test]
  18. public void FlatStyleTest ()
  19. {
  20. Button B1 = new Button ();
  21. Assert.AreEqual (FlatStyle.Standard, B1.FlatStyle, "#1");
  22. }
  23. #if NET_2_0
  24. [Test]
  25. public void FlatButtonAppearanceTest ()
  26. {
  27. Button B1 = new Button ();
  28. FlatButtonAppearance flatApp = B1.FlatAppearance;
  29. Assert.AreEqual (Color.Empty, flatApp.BorderColor, "#A1");
  30. Assert.AreEqual (1, flatApp.BorderSize, "#A2");
  31. Assert.AreEqual (Color.Empty, flatApp.CheckedBackColor, "#A3");
  32. Assert.AreEqual (Color.Empty, flatApp.MouseDownBackColor, "#A4");
  33. Assert.AreEqual (Color.Empty, flatApp.MouseOverBackColor, "#A5");
  34. flatApp.BorderColor = Color.Blue;
  35. Assert.AreEqual (Color.Blue, flatApp.BorderColor, "#B1");
  36. flatApp.BorderSize = 10;
  37. Assert.AreEqual (10, flatApp.BorderSize, "#B2");
  38. flatApp.CheckedBackColor = Color.Blue;
  39. Assert.AreEqual (Color.Blue, flatApp.CheckedBackColor, "#B3");
  40. flatApp.MouseDownBackColor = Color.Blue;
  41. Assert.AreEqual (Color.Blue, flatApp.MouseDownBackColor, "#B4");
  42. flatApp.MouseOverBackColor = Color.Blue;
  43. Assert.AreEqual (Color.Blue, flatApp.MouseOverBackColor, "#B5");
  44. }
  45. [Test]
  46. [ExpectedException(typeof(ArgumentOutOfRangeException))]
  47. public void FlatButtonAppearanceExceptionTest ()
  48. {
  49. Button B1 = new Button ();
  50. FlatButtonAppearance flatApp = B1.FlatAppearance;
  51. flatApp.BorderSize = -1;
  52. }
  53. [Test]
  54. [Ignore ("Needs a bugfix in libgdiplus, #80842")]
  55. public void BehaviorImageList ()
  56. {
  57. // Basically, this shows that whichever of [Image|ImageIndex|ImageKey]
  58. // is set last resets the others to their default state
  59. Button b = new Button ();
  60. Bitmap i1 = new Bitmap (16, 4);
  61. i1.SetPixel (0, 0, Color.Blue);
  62. Bitmap i2 = new Bitmap (16, 5);
  63. i2.SetPixel (0, 0, Color.Red);
  64. Bitmap i3 = new Bitmap (16, 6);
  65. i3.SetPixel (0, 0, Color.Green);
  66. Assert.AreEqual (null, b.Image, "D1");
  67. Assert.AreEqual (-1, b.ImageIndex, "D2");
  68. Assert.AreEqual (string.Empty, b.ImageKey, "D3");
  69. ImageList il = new ImageList ();
  70. il.Images.Add ("i2", i2);
  71. il.Images.Add ("i3", i3);
  72. b.ImageList = il;
  73. b.ImageKey = "i3";
  74. Assert.AreEqual (-1, b.ImageIndex, "D4");
  75. Assert.AreEqual ("i3", b.ImageKey, "D5");
  76. Assert.AreEqual (i3.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D6");
  77. b.ImageIndex = 0;
  78. Assert.AreEqual (0, b.ImageIndex, "D7");
  79. Assert.AreEqual (string.Empty, b.ImageKey, "D8");
  80. Assert.AreEqual (i2.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D9");
  81. // Also, Image is not cached, changing the underlying ImageList image is reflected
  82. il.Images[0] = i1;
  83. Assert.AreEqual (i1.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D16");
  84. // Note: setting Image resets ImageList to null
  85. b.Image = i1;
  86. Assert.AreEqual (-1, b.ImageIndex, "D10");
  87. Assert.AreEqual (string.Empty, b.ImageKey, "D11");
  88. Assert.AreEqual (i1.GetPixel (0, 0), (b.Image as Bitmap).GetPixel (0, 0), "D12");
  89. Assert.AreEqual (null, b.ImageList, "D12-2");
  90. b.Image = null;
  91. Assert.AreEqual (null, b.Image, "D13");
  92. Assert.AreEqual (-1, b.ImageIndex, "D14");
  93. Assert.AreEqual (string.Empty, b.ImageKey, "D15");
  94. }
  95. #endif
  96. [Test]
  97. public void ImageTest ()
  98. {
  99. Button B1 = new Button ();
  100. B1.Visible = true;
  101. B1.Image = Image.FromFile ("M.gif");
  102. Assert.AreEqual (ContentAlignment.MiddleCenter, B1.ImageAlign, "#2");
  103. }
  104. [Test]
  105. public void ImageListTest ()
  106. {
  107. Button B1 = new Button ();
  108. B1.Image = Image.FromFile ("M.gif");
  109. Assert.AreEqual (null, B1.ImageList, "#3a");
  110. B1 = new Button ();
  111. ImageList ImageList1 = new ImageList ();
  112. ImageList1.Images.Add(Image.FromFile ("M.gif"));
  113. ImageList1.Images.Add(Image.FromFile ("M.gif"));
  114. Assert.AreEqual (2, ImageList1.Images.Count, "#3b");
  115. B1.ImageList = ImageList1;
  116. Assert.AreEqual (-1, B1.ImageIndex, "#3c");
  117. B1 = new Button ();
  118. B1.ImageIndex = 1;
  119. B1.ImageList = ImageList1;
  120. Assert.AreEqual (1, B1.ImageIndex, "#3d");
  121. Assert.AreEqual (2, B1.ImageList.Images.Count, "#3e");
  122. Assert.AreEqual (16, B1.ImageList.ImageSize.Height, "#3f");
  123. Assert.AreEqual (16, B1.ImageList.ImageSize.Width, "#3g");
  124. }
  125. [Test]
  126. public void IMeModeTest ()
  127. {
  128. Button B1 = new Button ();
  129. Assert.AreEqual (ImeMode.Disable, B1.ImeMode, "#4a");
  130. B1.ImeMode = ImeMode.Off;
  131. Assert.AreEqual (ImeMode.Off, B1.ImeMode, "#4b");
  132. B1 = new Button ();
  133. Assert.AreEqual (ImeMode.Disable, ((Control)B1).ImeMode, "#4c");
  134. ((Control)B1).ImeMode = ImeMode.Off;
  135. Assert.AreEqual (ImeMode.Off, ((Control)B1).ImeMode, "#4d");
  136. Assert.AreEqual (ImeMode.Off, B1.ImeMode, "#4e");
  137. }
  138. [Test]
  139. public void TextAlignTest ()
  140. {
  141. Button B1 = new Button ();
  142. Assert.AreEqual (ContentAlignment.MiddleCenter, B1.TextAlign, "#5");
  143. }
  144. [Test]
  145. public void DialogResultTest ()
  146. {
  147. Form f = new Form ();
  148. f.ShowInTaskbar = false;
  149. Button B1 = new Button ();
  150. B1.Text = "DialogResult";
  151. B1.DialogResult = DialogResult.No;
  152. B1.TextAlign = ContentAlignment.BottomRight;
  153. B1.Visible = true;
  154. f.Controls.Add (B1);
  155. Assert.AreEqual (DialogResult.No, B1.DialogResult, "#6");
  156. f.Dispose();
  157. // check cancel button behavior
  158. f = new Form ();
  159. f.ShowInTaskbar = false;
  160. B1 = new Button ();
  161. f.CancelButton = B1;
  162. f.Controls.Add (B1);
  163. Assert.AreEqual (DialogResult.Cancel, B1.DialogResult, "#7");
  164. f.Dispose ();
  165. f = new Form ();
  166. f.ShowInTaskbar = false;
  167. B1 = new Button ();
  168. B1.DialogResult = DialogResult.No;
  169. f.CancelButton = B1;
  170. f.Controls.Add (B1);
  171. Assert.AreEqual (DialogResult.No, B1.DialogResult, "#8");
  172. f.Dispose ();
  173. f = new Form ();
  174. f.ShowInTaskbar = false;
  175. B1 = new Button ();
  176. B1.DialogResult = DialogResult.No;
  177. B1.DialogResult = DialogResult.None;
  178. f.CancelButton = B1;
  179. f.Controls.Add (B1);
  180. Assert.AreEqual (DialogResult.Cancel, B1.DialogResult, "#9");
  181. f.Dispose ();
  182. // check accept button behavior
  183. f = new Form ();
  184. f.ShowInTaskbar = false;
  185. B1 = new Button ();
  186. f.AcceptButton = B1;
  187. f.Controls.Add (B1);
  188. Assert.AreEqual (DialogResult.None, B1.DialogResult, "#10");
  189. f.Dispose ();
  190. f = new Form ();
  191. f.ShowInTaskbar = false;
  192. B1 = new Button ();
  193. B1.DialogResult = DialogResult.No;
  194. f.AcceptButton = B1;
  195. f.Controls.Add (B1);
  196. Assert.AreEqual (DialogResult.No, B1.DialogResult, "#11");
  197. f.Dispose ();
  198. f = new Form ();
  199. f.ShowInTaskbar = false;
  200. B1 = new Button ();
  201. B1.DialogResult = DialogResult.No;
  202. B1.DialogResult = DialogResult.None;
  203. f.AcceptButton = B1;
  204. f.Controls.Add (B1);
  205. Assert.AreEqual (DialogResult.None, B1.DialogResult, "#12");
  206. f.Dispose ();
  207. }
  208. [Test]
  209. public void PerformClickTest ()
  210. {
  211. Form f = new Form ();
  212. f.ShowInTaskbar = false;
  213. Button B1 = new Button ();
  214. B1.Text = "DialogResult";
  215. B1.Visible = true;
  216. f.Controls.Add (B1);
  217. B1.PerformClick ();
  218. Assert.AreEqual (DialogResult.None, B1.DialogResult, "#7");
  219. f.Dispose ();
  220. }
  221. [Test]
  222. public void ToStringTest ()
  223. {
  224. Button B1 = new Button ();
  225. Assert.AreEqual ("System.Windows.Forms.Button, Text: " , B1.ToString (), "#9");
  226. }
  227. }
  228. [TestFixture]
  229. public class ButtonInheritorTest : Button {
  230. [Test]
  231. public void DefaultImeModeTest ()
  232. {
  233. Assert.AreEqual (ImeMode.Disable, DefaultImeMode, "1");
  234. }
  235. [Test]
  236. [ExpectedException (typeof (ArgumentNullException))]
  237. public void Constructor_Null ()
  238. {
  239. new ButtonBaseAccessibleObject (null);
  240. }
  241. [Test]
  242. public void Constructor ()
  243. {
  244. ButtonBaseAccessibleObject bbao = new ButtonBaseAccessibleObject (this);
  245. Assert.IsNotNull (bbao.Owner, "Owner");
  246. Assert.IsTrue (Object.ReferenceEquals (this, bbao.Owner), "ReferenceEquals");
  247. Assert.AreEqual ("Press", bbao.DefaultAction, "DefaultAction");
  248. Assert.IsNull (bbao.Description, "Description");
  249. Assert.IsNull (bbao.Help, "Help");
  250. Assert.IsNull (bbao.Name, "Name");
  251. Assert.AreEqual (AccessibleRole.PushButton, bbao.Role, "Role");
  252. Assert.AreEqual (AccessibleStates.None, bbao.State, "State");
  253. }
  254. [Test]
  255. public void CreateAccessibilityInstanceTest ()
  256. {
  257. AccessibleObject ao = base.CreateAccessibilityInstance ();
  258. Button.ButtonBaseAccessibleObject bbao = (ao as Button.ButtonBaseAccessibleObject);
  259. Assert.IsNotNull (bbao, "ButtonBaseAccessibleObject");
  260. Assert.IsNotNull (bbao.Owner, "Owner");
  261. Assert.IsTrue (Object.ReferenceEquals (this, bbao.Owner), "ReferenceEquals");
  262. Assert.AreEqual ("Press", bbao.DefaultAction, "DefaultAction");
  263. Assert.IsNull (bbao.Description, "Description");
  264. Assert.IsNull (bbao.Help, "Help");
  265. Assert.IsNull (bbao.Name, "Name");
  266. Assert.AreEqual (AccessibleRole.PushButton, bbao.Role, "Role");
  267. Assert.AreEqual (AccessibleStates.None, bbao.State, "State");
  268. }
  269. }
  270. }