ButtonTest.cs 8.8 KB

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