2009-01-05 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / RadioButtonTest.cs
1 //
2 // RadioRadioButtonTest.cs: Test cases for RadioRadioButton.
3 //
4 // Author:
5 //   Ritvik Mayank (mritvik@novell.com)
6 //
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
8 //
9
10 using System;
11 using System.Windows.Forms;
12 using System.Drawing;
13 using NUnit.Framework;
14
15 namespace MonoTests.System.Windows.Forms
16 {
17         [TestFixture]
18         public class RadioButtonTest : TestHelper
19         {
20                 [Test]
21                 public void RadioButtonPropertyTest ()
22                 {
23                         RadioButton rButton1 = new RadioButton ();
24                         
25                         // A
26                         Assert.AreEqual (Appearance.Normal, rButton1.Appearance, "#A1");
27                         Assert.AreEqual (true, rButton1.AutoCheck, "#A2");
28
29                         // C
30                         Assert.AreEqual (false, rButton1.Checked, "#C1");
31                         Assert.AreEqual (ContentAlignment.MiddleLeft, rButton1.CheckAlign, "#C2");
32                                         
33                         // S
34                         Assert.AreEqual (null, rButton1.Site, "#S1");   
35
36                         // T
37                         rButton1.Text = "New RadioButton";
38                         Assert.AreEqual ("New RadioButton", rButton1.Text, "#T1");
39                         Assert.AreEqual (ContentAlignment.MiddleLeft, rButton1.TextAlign, "#T2");
40                         Assert.IsFalse (rButton1.TabStop, "#T3");
41                 }
42
43                 [Test]
44                 public void CheckedTest ()
45                 {
46                         RadioButton rb = new RadioButton ();
47
48                         Assert.AreEqual (false, rb.TabStop, "#A1");
49                         Assert.AreEqual (false, rb.Checked, "#A2");
50
51                         rb.Checked = true;
52
53                         Assert.AreEqual (true, rb.TabStop, "#B1");
54                         Assert.AreEqual (true, rb.Checked, "#B2");
55
56                         rb.Checked = false;
57
58                         Assert.AreEqual (false, rb.TabStop, "#C1");
59                         Assert.AreEqual (false, rb.Checked, "#C2");
60
61                         // RadioButton is NOT checked, but since it is the only
62                         // RadioButton instance in Form, when it gets selected (Form.Show)
63                         // it should acquire the focus
64                         Form f = new Form ();
65                         f.Controls.Add (rb);
66                         rb.CheckedChanged += new EventHandler (rb_checked_changed);
67                         event_received = false;
68
69                         f.ActiveControl = rb;
70                         f.Show ();
71
72                         Assert.AreEqual (true, event_received, "#D1");
73                         Assert.AreEqual (true, rb.Checked, "#D2");
74                         Assert.AreEqual (true, rb.TabStop, "#D3");
75
76                         f.Dispose ();
77                 }
78
79                 bool event_received = false;
80                 void rb_tabstop_changed (object sender, EventArgs e)
81                 {
82                         event_received = true;
83                 }
84
85                 void rb_checked_changed (object sender, EventArgs e)
86                 {
87                         event_received = true;
88                 }
89
90                 [Test]
91                 public void TabStopEventTest ()
92                 {
93                         RadioButton rb = new RadioButton ();
94
95                         rb.TabStopChanged += new EventHandler (rb_tabstop_changed);
96                         event_received = false;
97
98                         rb.TabStop = true;
99
100                         Assert.IsTrue (event_received);
101                 }
102
103                 [Test]
104                 public void ToStringTest ()
105                 {
106                         RadioButton rButton1 = new RadioButton ();
107                         Assert.AreEqual ("System.Windows.Forms.RadioButton, Checked: False" , rButton1.ToString (), "#9");
108                 }
109
110 #if NET_2_0
111                 [Test]
112                 public void AutoSizeText ()
113                 {
114                         Form f = new Form ();
115                         f.ShowInTaskbar = false;
116                         
117                         RadioButton rb = new RadioButton ();
118                         rb.AutoSize = true;
119                         rb.Width = 14;
120                         f.Controls.Add (rb);
121                         
122                         int width = rb.Width;
123                         
124                         rb.Text = "Some text that is surely longer than 100 pixels.";
125
126                         if (rb.Width == width)
127                                 Assert.Fail ("RadioButton did not autosize, actual: {0}", rb.Width);
128                 }
129 #endif
130         }
131         
132         [TestFixture]
133         public class RadioButtonEventTestClass : TestHelper
134         {
135                 static bool eventhandled = false;
136                 public static void RadioButton_EventHandler (object sender, EventArgs e)
137                 {
138                         eventhandled = true;
139                 }
140
141                 [Test]
142                 public void PanelClickTest ()
143                 {
144                         Form myForm = new Form ();
145                         myForm.ShowInTaskbar = false;
146                         RadioButton rButton1 = new RadioButton ();
147                         rButton1.Select ();
148                         rButton1.Visible = true;
149                         myForm.Controls.Add (rButton1);
150                         eventhandled = false;
151                         rButton1.Click += new EventHandler (RadioButton_EventHandler);
152                         myForm.Show ();
153                         rButton1.PerformClick ();
154                         Assert.AreEqual (true, eventhandled, "#2");
155                         myForm.Dispose ();
156                 }
157
158                 [Test]
159                 public void ApperanceChangedTest ()
160                 {
161                         Form myForm = new Form ();
162                         myForm.ShowInTaskbar = false;
163                         RadioButton rButton1 = new RadioButton ();
164                         rButton1.Select ();
165                         rButton1.Visible = true;
166                         myForm.Controls.Add (rButton1);
167                         rButton1.Appearance = Appearance.Normal;
168                         eventhandled = false;
169                         rButton1.AppearanceChanged += new EventHandler (RadioButton_EventHandler);
170                         rButton1.Appearance = Appearance.Button;
171                         Assert.AreEqual (true, eventhandled, "#2");
172                         myForm.Dispose ();
173                 }
174         
175                 [Test]
176                 public void CheckedChangedTest ()
177                 {
178                         Form myForm = new Form ();
179                         myForm.ShowInTaskbar = false;
180                         RadioButton rButton1 = new RadioButton ();
181                         rButton1.Select ();
182                         rButton1.Visible = true;
183                         myForm.Controls.Add (rButton1);
184                         rButton1.Checked = false;
185                         eventhandled = false;
186                         rButton1.CheckedChanged += new EventHandler (RadioButton_EventHandler);
187                         rButton1.Checked = true;
188                         Assert.AreEqual (true, eventhandled, "#3");
189                         myForm.Dispose ();
190                 }
191         }
192 }