* docs.make, Makefile.am: Build mono-file-formats{.tree,.zip},
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / TrackBarTest.cs
1 //
2 // TrackBarTest.cs: Test cases for TrackBar.
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 System.Reflection;
14 using NUnit.Framework;
15
16 namespace MonoTests.System.Windows.Forms
17 {
18         [TestFixture]
19         public class TrackBarBaseTest : TestHelper
20         {
21                 [Test]
22                 public void TrackBarPropertyTest ()
23                 {
24                         TrackBar myTrackBar = new TrackBar ();
25                         
26                         // A
27                         Assert.AreEqual (true, myTrackBar.AutoSize, "#A1");
28
29                         // L
30                         Assert.AreEqual (5, myTrackBar.LargeChange, "#L1");
31                         
32                         // M
33                         Assert.AreEqual (10, myTrackBar.Maximum, "#M1");
34                         Assert.AreEqual (0, myTrackBar.Minimum, "#M2");
35                         
36                         // O
37                         Assert.AreEqual (Orientation.Horizontal, myTrackBar.Orientation, "#O1");
38                                 
39                         // S
40                         Assert.AreEqual (1, myTrackBar.SmallChange, "#S1");
41
42                         // T
43                         Assert.AreEqual (1, myTrackBar.TickFrequency, "#T1");
44                         Assert.AreEqual (TickStyle.BottomRight, myTrackBar.TickStyle, "#T2");
45                         Assert.AreEqual ("", myTrackBar.Text, "#T3");
46                         myTrackBar.Text = "New TrackBar";
47                         Assert.AreEqual ("New TrackBar", myTrackBar.Text, "#T4");
48
49                         // V
50                         Assert.AreEqual (0, myTrackBar.Value, "#V1");
51                 }
52                 
53                 [Test]
54 #if NET_2_0
55                 [ExpectedException (typeof (ArgumentOutOfRangeException))]
56 #else
57                 [ExpectedException (typeof (ArgumentException))]
58 #endif
59                 public void LargeChangeTest ()
60                 {
61                         TrackBar myTrackBar = new TrackBar ();
62                         myTrackBar.LargeChange = -1;
63                 }
64
65                 [Test]
66 #if NET_2_0
67                 [ExpectedException (typeof (ArgumentOutOfRangeException))]
68 #else
69                 [ExpectedException (typeof (ArgumentException))]
70 #endif
71                 public void SmallChangeTest ()
72                 {
73                         TrackBar myTrackBar = new TrackBar ();
74                         myTrackBar.SmallChange = -1;
75                 }
76
77                 [Test]
78                 public void SetRangeTest () 
79                 {
80                         TrackBar myTrackBar = new TrackBar ();
81                         myTrackBar.SetRange (2,9);
82                         Assert.AreEqual (9, myTrackBar.Maximum, "#setM1");
83                         Assert.AreEqual (2, myTrackBar.Minimum, "#setM2");
84                 }
85
86                 [Test]
87                 public void ToStringMethodTest () 
88                 {
89                         TrackBar myTrackBar = new TrackBar ();
90                         myTrackBar.Text = "New TrackBar";
91                         Assert.AreEqual ("System.Windows.Forms.TrackBar, Minimum: 0, Maximum: 10, Value: 0", myTrackBar.ToString (), "#T3");
92                 }
93
94                 [Test]
95                 public void OrientationSizeTest ()
96                 {       
97                         IntPtr handle;
98                         int width;
99                         int height ;
100                         int default_height = 45;
101                         int default_height2 = 42;
102
103                         using (TrackBar myTrackBar = new TrackBar()) {
104                                 width = myTrackBar.Width;
105                                 height = myTrackBar.Height;
106                                 myTrackBar.Orientation = Orientation.Vertical;
107                                 Assert.AreEqual(width, myTrackBar.Width, "#OS1");
108                                 Assert.AreEqual(height, myTrackBar.Height, "#OS2");
109                         }
110                         
111                         using (Form myForm = new Form()) {
112                                 using ( TrackBar myTrackBar = new TrackBar()) {
113                                         width = myTrackBar.Width;
114                                         height = myTrackBar.Height;
115                                         myForm.Controls.Add(myTrackBar);
116                                         handle = myTrackBar.Handle; // causes the handle to be created.
117                                         myTrackBar.Orientation = Orientation.Vertical;
118                                         AreEqual(default_height, default_height2, myTrackBar.Width,  "#OS3");
119                                         Assert.AreEqual(width, myTrackBar.Height, "#OS4");
120                                 }
121                         }
122
123                         using (Form myForm = new Form()) {
124                                 using ( TrackBar myTrackBar = new TrackBar()) {
125                                         myForm.Controls.Add(myTrackBar);
126                                         handle = myTrackBar.Handle; // causes the handle to be created.
127                                         myTrackBar.Width = 200;
128                                         myTrackBar.Orientation = Orientation.Vertical;
129                                         Assert.AreEqual(200, myTrackBar.Height, "#OS5");
130                                 }
131                         }
132                         Assert.AreEqual(handle, handle, "Removes warning");
133                 }
134         
135                 private void AreEqual(int expected1, int expected2, int real, string name)
136                 {
137                         // This is needed since the default size vary between XP theme and W2K theme.
138                         if (real != expected1 && real != expected2) {
139                                 Assert.Fail("{3}: Expected <{0}> or <{1}>, but was <{2}>", expected1, expected2, real, name);
140                         }
141                 }
142
143                 [Test]
144                 [Category ("NotWorking")]
145                 public void SizeTestSettingOrientation ()
146                 {
147                         IntPtr handle;
148                         int default_height = 45;
149                         int default_height2 = 42;
150
151                         using (TrackBar myTrackBar = new TrackBar()) {
152                                 myTrackBar.Width = 200;
153                                 myTrackBar.Height = 250;
154                                 myTrackBar.Orientation = Orientation.Vertical;
155                                 Assert.AreEqual(200, myTrackBar.Width, "#SIZE03");
156                                 AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE04");
157                         }
158
159                         using (TrackBar myTrackBar = new TrackBar()) {
160                                 myTrackBar.AutoSize = false;
161                                 myTrackBar.Width = 200;
162                                 myTrackBar.Height = 250;
163                                 myTrackBar.Orientation = Orientation.Vertical;
164                                 Assert.AreEqual(200, myTrackBar.Width, "#SIZE07");
165                                 Assert.AreEqual(250, myTrackBar.Height, "#SIZE08");
166                         }
167
168                         using (TrackBar myTrackBar = new TrackBar()) {
169                                 myTrackBar.Width = 200;
170                                 myTrackBar.Height = 250;
171                                 myTrackBar.AutoSize = false;
172                                 myTrackBar.Orientation = Orientation.Vertical;
173                                 Assert.AreEqual(200, myTrackBar.Width, "#SIZE11");
174                                 AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE12");
175                         }
176
177                         using (TrackBar myTrackBar = new TrackBar()) {
178                                 using (Form myForm = new Form()) {
179                                         myForm.Controls.Add(myTrackBar);
180                                         myTrackBar.Width = 200;
181                                         myTrackBar.Height = 250;
182                                         myTrackBar.Orientation = Orientation.Vertical;
183                                         handle = myTrackBar.Handle;
184                                         
185                                         AreEqual(default_height, default_height2, myTrackBar.Width, "#SIZE17");
186                                         AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE18");
187                                 }
188                         }
189
190                         using (TrackBar myTrackBar = new TrackBar()) {
191                                 using (Form myForm = new Form()) {
192                                         myForm.Controls.Add(myTrackBar);
193                                         myTrackBar.Width = 200;
194                                         myTrackBar.Height = 250;
195                                         myTrackBar.Orientation = Orientation.Vertical;
196                                         handle = myTrackBar.Handle;
197                                         
198                                         AreEqual(default_height, default_height2, myTrackBar.Width, "#SIZE19");
199                                         AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE20");
200                                 }
201                         }
202
203                         using (TrackBar myTrackBar = new TrackBar()) {
204                                 using (Form myForm = new Form()) {
205                                         myForm.Controls.Add(myTrackBar);
206                                         myTrackBar.Width = 200;
207                                         myTrackBar.Height = 250;
208                                         myTrackBar.Orientation = Orientation.Vertical;
209                                         handle = myTrackBar.Handle;
210                                         
211                                         myTrackBar.Orientation = Orientation.Horizontal;
212                                         
213                                         AreEqual(default_height, default_height2, myTrackBar.Width, "#SIZE23");
214                                         AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE24");
215                                 }
216                         }
217
218                         using (TrackBar myTrackBar = new TrackBar()) {
219                                 myTrackBar.AutoSize = false;
220                                 myTrackBar.Height = 50;
221                                 myTrackBar.Width = 80;
222                                 myTrackBar.Orientation = Orientation.Vertical;
223                                 myTrackBar.Width = 100;
224                                 
225                                 Assert.AreEqual(50, myTrackBar.Height, "#SIZE2_1");
226                                 Assert.AreEqual(100, myTrackBar.Width, "#SIZE2_2");
227                                 
228                                 using (Form myForm = new Form()){
229                                         myForm.Controls.Add(myTrackBar);
230                                         myForm.Show();
231                                         
232                                         Assert.AreEqual(50, myTrackBar.Height, "#SIZE2_3");
233                                         Assert.AreEqual(100, myTrackBar.Width, "#SIZE2_4");
234                                 }
235                         }
236
237                         Assert.AreEqual(handle, handle, "Removes warning");
238                 }
239
240                 [Test]
241                 public void SizeTest ()
242                 {
243                         IntPtr handle;
244                         int default_height = 45;
245                         int default_height2 = 42;
246                         
247                         using (TrackBar myTrackBar = new TrackBar()) {
248                                 myTrackBar.Width = 200;
249                                 myTrackBar.Height = 250;
250                                 Assert.AreEqual(200, myTrackBar.Width, "#SIZE01");
251                                 AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE02");
252                         }
253                         
254                         using (TrackBar myTrackBar = new TrackBar()) {
255                                 myTrackBar.AutoSize = false;
256                                 myTrackBar.Width = 200;
257                                 myTrackBar.Height = 250;
258                                 Assert.AreEqual(200, myTrackBar.Width, "#SIZE05");
259                                 Assert.AreEqual(250, myTrackBar.Height, "#SIZE06");
260                         }
261
262                         using (TrackBar myTrackBar = new TrackBar()) {
263                                 myTrackBar.Width = 200;
264                                 myTrackBar.Height = 250;
265                                 myTrackBar.AutoSize = false;
266                                 Assert.AreEqual(200, myTrackBar.Width, "#SIZE09");
267                                 AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE10");
268                         }
269
270                         using (TrackBar myTrackBar = new TrackBar()) {
271                                 using (Form myForm = new Form()) {
272                                         myForm.Controls.Add(myTrackBar);
273                                         myTrackBar.Width = 200;
274                                         myTrackBar.Height = 250;
275                                         myTrackBar.Orientation = Orientation.Vertical;
276                                         myTrackBar.Orientation = Orientation.Horizontal;
277                                         handle = myTrackBar.Handle;
278                                         
279                                         Assert.AreEqual(200, myTrackBar.Width, "#SIZE21");
280                                         AreEqual(default_height, default_height2, myTrackBar.Height, "#SIZE22");
281                                 }
282                         }
283
284                         Assert.AreEqual(handle, handle, "Removes warning");
285                 }
286         }
287 }
288