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