ControlEventTest.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. using System;
  2. using NUnit.Framework;
  3. using System.Windows.Forms;
  4. using System.Drawing;
  5. using System.Threading;
  6. namespace MonoTests.System.Windows.Forms
  7. {
  8. [TestFixture]
  9. public class EventClass
  10. {
  11. static bool eventhandled = false;
  12. public static void Event_Handler1 (object sender, EventArgs e)
  13. {
  14. eventhandled = true;
  15. }
  16. [Test]
  17. public void BackColorChangedTest ()
  18. {
  19. Control c = new Control ();
  20. // Test BackColorChanged Event
  21. c.BackColorChanged += new EventHandler (Event_Handler1);
  22. c.BackColor = Color.Black;
  23. Assert.AreEqual (true, eventhandled, "#A1");
  24. }
  25. [Test]
  26. public void BgrndImageChangedTest ()
  27. {
  28. Control c = new Control ();
  29. // Test BackgroundImageChanged Event
  30. c.BackgroundImageChanged += new EventHandler (Event_Handler1);
  31. string abc = "M.gif";
  32. eventhandled = false;
  33. c.BackgroundImage = Image.FromFile (abc);
  34. Assert.AreEqual (true, eventhandled, "#A2");
  35. }
  36. [Test]
  37. public void BindingContextChangedTest ()
  38. {
  39. Control c = new Control ();
  40. // Test BindingContextChanged Event
  41. c.BindingContextChanged += new EventHandler (Event_Handler1);
  42. BindingContext bcG1 = new BindingContext ();
  43. eventhandled = false;
  44. c.BindingContext = bcG1;
  45. Assert.AreEqual (true, eventhandled, "#A3");
  46. }
  47. [Test]
  48. public void CausesValidationChangedTest ()
  49. {
  50. Control c = new Control ();
  51. // Test CausesValidationChanged Event
  52. c.CausesValidationChanged += new EventHandler (Event_Handler1);
  53. eventhandled = false;
  54. c.CausesValidation = false;
  55. Assert.AreEqual (true, eventhandled, "#A4");
  56. }
  57. [Test]
  58. public void CursorChangedTest ()
  59. {
  60. Control c = new Control ();
  61. // Test CursorChanged Event
  62. c.CursorChanged += new EventHandler (Event_Handler1);
  63. eventhandled = false;
  64. c.Cursor = Cursors.Hand;
  65. Assert.AreEqual (true, eventhandled, "#A6");
  66. }
  67. [Test]
  68. public void DisposedTest ()
  69. {
  70. Control c = new Control ();
  71. // Test Disposed Event
  72. c.Disposed += new EventHandler (Event_Handler1);
  73. eventhandled = false;
  74. c.Dispose ();
  75. Assert.AreEqual (true, eventhandled, "#A7");
  76. }
  77. [Test]
  78. public void DockChangedTest ()
  79. {
  80. Control c = new Control ();
  81. // Test DockChanged Event
  82. c.DockChanged += new EventHandler (Event_Handler1);
  83. eventhandled = false;
  84. c.Dock = DockStyle.Bottom;
  85. Assert.AreEqual (true, eventhandled, "#A8");
  86. }
  87. [Test]
  88. public void EnabledChangedTest ()
  89. {
  90. Control c = new Control ();
  91. // Test EnabledChanged Event
  92. c.EnabledChanged += new EventHandler (Event_Handler1);
  93. eventhandled = false;
  94. c.Enabled = false;
  95. Assert.AreEqual (true, eventhandled, "#A9");
  96. }
  97. [Test]
  98. public void FontChangedTest ()
  99. {
  100. Control c = new Control ();
  101. // Test FontChanged Event
  102. c.FontChanged += new EventHandler (Event_Handler1);
  103. eventhandled = false;
  104. c.Font = new Font (c.Font, FontStyle.Bold);
  105. Assert.AreEqual (true, eventhandled, "#A11");
  106. }
  107. [Test]
  108. public void ForeColorChangedTest ()
  109. {
  110. Control c = new Control ();
  111. // Test ForeColorChanged Event
  112. c.ForeColorChanged += new EventHandler (Event_Handler1);
  113. eventhandled = false;
  114. c.ForeColor = Color.Red;
  115. Assert.AreEqual (true, eventhandled, "#A12");
  116. }
  117. [Test]
  118. public void HandleCreatedTest ()
  119. {
  120. Control c = new Control ();
  121. // Test HandleCreated Event
  122. c.HandleCreated += new EventHandler (Event_Handler1);
  123. eventhandled = false;
  124. c.Handle.GetType ();
  125. Assert.AreEqual (true, eventhandled, "#A15");
  126. }
  127. [Test]
  128. public void ImeModeChangedTest ()
  129. {
  130. Control c = new Control ();
  131. // Test ImeModeChanged Event
  132. c.ImeModeChanged += new EventHandler (Event_Handler1);
  133. eventhandled = false;
  134. c.ImeMode = ImeMode.Off;
  135. Assert.AreEqual (true, eventhandled, "#A19");
  136. }
  137. [Test]
  138. public void LocationChangedTest ()
  139. {
  140. Control c = new Control ();
  141. // Test LocationChanged Event
  142. c.LocationChanged += new EventHandler (Event_Handler1);
  143. eventhandled = false;
  144. c.Left = 20;
  145. Assert.AreEqual (true, eventhandled, "#A20");
  146. }
  147. [Test]
  148. public void ResizeTest ()
  149. {
  150. Control c = new Control ();
  151. // Test Resize Event
  152. c.Resize += new EventHandler (Event_Handler1);
  153. eventhandled = false;
  154. c.Height = 20;
  155. Assert.AreEqual (true, eventhandled, "#A22");
  156. }
  157. [Test]
  158. public void RightToLeftChangedTest ()
  159. {
  160. Control c = new Control ();
  161. // Test RightToLeftChanged Event
  162. c.RightToLeftChanged += new EventHandler (Event_Handler1);
  163. eventhandled = false;
  164. c.RightToLeft = RightToLeft.Yes;
  165. Assert.AreEqual (true, eventhandled, "#A23");
  166. }
  167. [Test]
  168. public void SizeChangedTest ()
  169. {
  170. Control c = new Control ();
  171. // Test SizeChanged Event
  172. c.SizeChanged += new EventHandler (Event_Handler1);
  173. eventhandled = false;
  174. c.Height = 80;
  175. Assert.AreEqual (true, eventhandled, "#A24");
  176. }
  177. [Test]
  178. public void TabIndexChangedTest ()
  179. {
  180. Control c = new Control ();
  181. // Test TabIndexChanged Event
  182. c.TabIndexChanged += new EventHandler (Event_Handler1);
  183. eventhandled = false;
  184. c.TabIndex = 1;
  185. Assert.AreEqual (true, eventhandled, "#A27");
  186. }
  187. [Test]
  188. public void TabStopChangedTest ()
  189. {
  190. Control c = new Control ();
  191. // Test TabStopChanged Event
  192. c.TabStopChanged += new EventHandler (Event_Handler1);
  193. eventhandled = false;
  194. c.TabStop = false;
  195. Assert.AreEqual (true, eventhandled, "#A28");
  196. }
  197. [Test]
  198. public void TextChangedTest ()
  199. {
  200. Control c = new Control ();
  201. // Test TextChanged Event
  202. c.TextChanged += new EventHandler (Event_Handler1);
  203. eventhandled = false;
  204. c.Text = "some Text";
  205. Assert.AreEqual (true, eventhandled, "#A29");
  206. }
  207. [Test]
  208. public void VisibleChangedTest ()
  209. {
  210. Control c = new Control ();
  211. // Test VisibleChanged Event
  212. c.VisibleChanged += new EventHandler (Event_Handler1);
  213. eventhandled = false;
  214. c.Visible = false;
  215. Assert.AreEqual (true, eventhandled, "#A30");
  216. }
  217. }
  218. [TestFixture]
  219. public class LayoutEventClass
  220. {
  221. static bool eventhandled = false;
  222. public static void LayoutEvent (object sender, LayoutEventArgs e)
  223. {
  224. eventhandled = true;
  225. }
  226. [Test]
  227. public void LayoutTest ()
  228. {
  229. Control c = new Control ();
  230. c.Layout += new LayoutEventHandler (LayoutEvent);
  231. eventhandled = false;
  232. c.Visible = true;
  233. c.Height = 100;
  234. Assert.AreEqual (true, eventhandled, "#D1");
  235. }
  236. int event_count;
  237. int resize_event;
  238. int size_changed_event;
  239. int layout_event;
  240. void resize (object sender, EventArgs e)
  241. {
  242. resize_event = ++event_count;
  243. }
  244. void layout (object sender, LayoutEventArgs le)
  245. {
  246. layout_event = ++event_count;
  247. }
  248. void size_changed (object sender, EventArgs e)
  249. {
  250. size_changed_event = ++event_count;
  251. }
  252. [Test]
  253. public void LayoutResizeTest ()
  254. {
  255. Control c = new Control ();
  256. c.Layout += new LayoutEventHandler (layout);
  257. c.Resize += new EventHandler (resize);
  258. c.SizeChanged += new EventHandler (size_changed);
  259. c.Size = new Size (100, 100);
  260. Assert.AreEqual (1, layout_event, "1");
  261. Assert.AreEqual (2, resize_event, "2");
  262. Assert.AreEqual (3, size_changed_event, "3");
  263. }
  264. }
  265. [TestFixture]
  266. public class ControlAddRemoveEventClass
  267. {
  268. static bool eventhandled = false;
  269. public static void ControlEvent (object sender, ControlEventArgs e)
  270. {
  271. eventhandled = true;
  272. }
  273. [Test]
  274. public void ControlAddedTest ()
  275. {
  276. Control c = new Control ();
  277. c.ControlAdded += new ControlEventHandler (ControlEvent);
  278. TextBox TB = new TextBox ();
  279. eventhandled = false;
  280. c.Controls.Add (TB);
  281. Assert.AreEqual (true, eventhandled, "#F1");
  282. }
  283. [Test]
  284. public void ControlRemovedTest ()
  285. {
  286. Control c = new Control ();
  287. c.ControlRemoved += new ControlEventHandler (ControlEvent);
  288. TextBox TB = new TextBox ();
  289. c.Controls.Add (TB);
  290. eventhandled = false;
  291. c.Controls.Remove (TB);
  292. Assert.AreEqual (true, eventhandled, "#F2");
  293. }
  294. }
  295. [TestFixture]
  296. public class ControlRefresh
  297. {
  298. [SetUp]
  299. public void SetUp ()
  300. {
  301. invalidated = 0;
  302. }
  303. [Test]
  304. public void HandleNotCreated ()
  305. {
  306. Control c = new Control ();
  307. c.Invalidated += new InvalidateEventHandler (Control_Invalidated);
  308. c.Visible = true;
  309. c.Refresh ();
  310. Assert.AreEqual (0, invalidated, "#1");
  311. c.Visible = false;
  312. c.Refresh ();
  313. Assert.AreEqual (0, invalidated, "#2");
  314. }
  315. [Test]
  316. [Category ("NotWorking")]
  317. public void Visible ()
  318. {
  319. Control c = new Control ();
  320. c.Invalidated += new InvalidateEventHandler (Control_Invalidated);
  321. c.Visible = true;
  322. Form form = new Form ();
  323. form.ShowInTaskbar = false;
  324. form.Controls.Add (c);
  325. form.Show ();
  326. Assert.AreEqual (0, invalidated, "#1");
  327. c.Refresh ();
  328. Assert.AreEqual (1, invalidated, "#2");
  329. form.Refresh ();
  330. Assert.AreEqual (1, invalidated, "#3");
  331. }
  332. [Test]
  333. public void NotVisible ()
  334. {
  335. Control c = new Control ();
  336. c.Invalidated += new InvalidateEventHandler (Control_Invalidated);
  337. c.Visible = false;
  338. Form form = new Form ();
  339. form.ShowInTaskbar = false;
  340. form.Controls.Add (c);
  341. form.Show ();
  342. Assert.AreEqual (0, invalidated, "#1");
  343. c.Refresh ();
  344. Assert.AreEqual (0, invalidated, "#2");
  345. form.Refresh ();
  346. Assert.AreEqual (0, invalidated, "#3");
  347. }
  348. private void Control_Invalidated (object sender, InvalidateEventArgs e)
  349. {
  350. invalidated++;
  351. }
  352. private int invalidated;
  353. }
  354. }