2006-12-19 Daniel Nauck <dna@mono-project.de>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / DockingTests.cs
1 using System;\r
2 using NUnit.Framework;\r
3 using System.Windows.Forms;\r
4 using System.Drawing;\r
5 \r
6 namespace MonoTests.System.Windows.Forms\r
7 {\r
8         [TestFixture()] \r
9         public class DockingTests\r
10         {\r
11                 Form form;\r
12                 Panel panel;\r
13 \r
14                 int event_count;\r
15 \r
16                 [SetUp]\r
17                 public void Init ()\r
18                 {\r
19                         form = new Form ();\r
20                         form.Size = new Size (400, 400);\r
21                         panel = new Panel ();\r
22                         form.Controls.Add (panel);\r
23                         event_count = 0;\r
24                 }\r
25 \r
26                 [TearDown]\r
27                 public void Cleanup ()\r
28                 {\r
29                         form.Dispose ();\r
30                 }\r
31 \r
32                 void IncrementEventCount (object o, EventArgs args)\r
33                 {\r
34                         event_count++;\r
35                 }\r
36 \r
37                 [Test]\r
38                 [Category ("NotWorking")]\r
39                 public void TestDockSizeChangedEvent ()\r
40                 {\r
41                         panel.SizeChanged += new EventHandler (IncrementEventCount);\r
42                         panel.Dock = DockStyle.Bottom;\r
43                         Assert.AreEqual (1, event_count);\r
44                 }\r
45 \r
46                 [Test]\r
47                 [Category ("NotWorking")]\r
48                 public void TestDockLocationChangedEvent ()\r
49                 {\r
50                         panel.LocationChanged += new EventHandler (IncrementEventCount);\r
51                         panel.Dock = DockStyle.Bottom;\r
52                         Assert.AreEqual (1, event_count);\r
53                 }\r
54 \r
55         }\r
56 \r
57         [TestFixture()] \r
58         public class UndockingTests\r
59         {\r
60                 class TestPanel : Panel {\r
61 \r
62                         public void InvokeSetBoundsCore ()\r
63                         {\r
64                                 SetBoundsCore (37, 37, 37, 37, BoundsSpecified.All);\r
65                         }\r
66 \r
67                         public void InvokeUpdateBounds ()\r
68                         {\r
69                                 UpdateBounds (37, 37, 37, 37);\r
70                         }\r
71                 }\r
72 \r
73                 Form form;\r
74                 TestPanel panel;\r
75 \r
76                 [SetUp]\r
77                 public void Init ()\r
78                 {\r
79                         form = new Form ();\r
80                         form.Size = new Size (400, 400);\r
81                         panel = new TestPanel ();\r
82                         form.Controls.Add (panel);\r
83                 }\r
84 \r
85                 [TearDown]\r
86                 public void Cleanup ()\r
87                 {\r
88                         form.Dispose ();\r
89                 }\r
90 \r
91                 [Test]\r
92                 public void TestUndockDefaultLocation ()\r
93                 {\r
94                         Point loc = panel.Location;\r
95                         panel.Dock = DockStyle.Bottom;\r
96                         panel.Dock = DockStyle.None;\r
97                         Assert.AreEqual (loc, panel.Location);\r
98                 }\r
99 \r
100                 [Test]\r
101                 public void TestUndockDefaultLocationVisible ()\r
102                 {\r
103                         form.Show ();\r
104                         Point loc = panel.Location;\r
105                         panel.Dock = DockStyle.Bottom;\r
106                         panel.Dock = DockStyle.None;\r
107                         Assert.AreEqual (loc, panel.Location);\r
108                 }\r
109 \r
110                 [Test]\r
111                 public void TestUndockExplicitLeft ()\r
112                 {\r
113                         panel.Left = 150;\r
114                         panel.Dock = DockStyle.Top;\r
115                         panel.Dock = DockStyle.None;\r
116                         Assert.AreEqual (150, panel.Left);\r
117                 }\r
118 \r
119                 [Test]\r
120                 public void TestUndockExplicitTop ()\r
121                 {\r
122                         panel.Top = 150;\r
123                         panel.Dock = DockStyle.Top;\r
124                         panel.Dock = DockStyle.None;\r
125                         Assert.AreEqual (150, panel.Top);\r
126                 }\r
127 \r
128                 [Test]\r
129                 public void TestUndockExplicitLocation ()\r
130                 {\r
131                         panel.Location = new Point (50, 50);\r
132                         Point loc = panel.Location;\r
133                         panel.Dock = DockStyle.Bottom;\r
134                         panel.Dock = DockStyle.None;\r
135                         Assert.AreEqual (loc, panel.Location);\r
136                 }\r
137 \r
138                 [Test]\r
139                 public void TestUndockExplicitLeftVisible ()\r
140                 {\r
141                         form.Show ();\r
142                         panel.Left = 150;\r
143                         panel.Dock = DockStyle.Top;\r
144                         panel.Dock = DockStyle.None;\r
145                         Assert.AreEqual (150, panel.Left);\r
146                 }\r
147 \r
148                 [Test]\r
149                 public void TestUndockExplicitTopVisible ()\r
150                 {\r
151                         form.Show ();\r
152                         panel.Top = 150;\r
153                         panel.Dock = DockStyle.Top;\r
154                         panel.Dock = DockStyle.None;\r
155                         Assert.AreEqual (150, panel.Top);\r
156                 }\r
157 \r
158                 [Test]\r
159                 public void TestUndockExplicitLocationVisible ()\r
160                 {\r
161                         form.Show ();\r
162                         panel.Location = new Point (50, 50);\r
163                         Point loc = panel.Location;\r
164                         panel.Dock = DockStyle.Bottom;\r
165                         panel.Dock = DockStyle.None;\r
166                         Assert.AreEqual (loc, panel.Location);\r
167                 }\r
168 \r
169                 [Test]\r
170                 public void TestUndockDefaultSize ()\r
171                 {\r
172                         Size sz = panel.Size;\r
173                         panel.Dock = DockStyle.Fill;\r
174                         panel.Dock = DockStyle.None;\r
175                         Assert.AreEqual (sz, panel.Size);\r
176                 }\r
177 \r
178                 [Test]\r
179                 public void TestUndockExplicitHeight ()\r
180                 {\r
181                         panel.Height = 50;\r
182                         panel.Dock = DockStyle.Left;\r
183                         panel.Dock = DockStyle.None;\r
184                         Assert.AreEqual (50, panel.Height);\r
185                 }\r
186 \r
187                 [Test]\r
188                 public void TestUndockExplicitSize ()\r
189                 {\r
190                         panel.Size = new Size (50, 50);\r
191                         Size sz = panel.Size;\r
192                         panel.Dock = DockStyle.Fill;\r
193                         panel.Dock = DockStyle.None;\r
194                         Assert.AreEqual (sz, panel.Size);\r
195                 }\r
196 \r
197                 [Test]\r
198                 public void TestUndockExplicitWidth ()\r
199                 {\r
200                         panel.Width = 50;\r
201                         panel.Dock = DockStyle.Top;\r
202                         panel.Dock = DockStyle.None;\r
203                         Assert.AreEqual (50, panel.Width);\r
204                 }\r
205 \r
206                 [Test]\r
207                 public void TestUndockExplicitHeightVisible ()\r
208                 {\r
209                         form.Show ();\r
210                         panel.Height = 50;\r
211                         panel.Dock = DockStyle.Left;\r
212                         panel.Dock = DockStyle.None;\r
213                         Assert.AreEqual (50, panel.Height);\r
214                 }\r
215 \r
216                 [Test]\r
217                 public void TestUndockExplicitSizeVisible ()\r
218                 {\r
219                         form.Show ();\r
220                         panel.Size = new Size (50, 50);\r
221                         Size sz = panel.Size;\r
222                         panel.Dock = DockStyle.Fill;\r
223                         panel.Dock = DockStyle.None;\r
224                         Assert.AreEqual (sz, panel.Size);\r
225                 }\r
226 \r
227                 [Test]\r
228                 public void TestUndockExplicitWidthVisible ()\r
229                 {\r
230                         form.Show ();\r
231                         panel.Width = 50;\r
232                         panel.Dock = DockStyle.Top;\r
233                         panel.Dock = DockStyle.None;\r
234                         Assert.AreEqual (50, panel.Width);\r
235                 }\r
236 \r
237                 [Test]\r
238                 public void TestUndockSetBounds ()\r
239                 {\r
240                         panel.SetBounds (50, 50, 50, 50, BoundsSpecified.All);\r
241                         panel.Dock = DockStyle.Top;\r
242                         panel.Dock = DockStyle.None;\r
243                         Assert.AreEqual (50, panel.Height, "Height");\r
244                         Assert.AreEqual (50, panel.Left, "Left");\r
245                         Assert.AreEqual (50, panel.Top, "Top");\r
246                         Assert.AreEqual (50, panel.Width, "Width");\r
247                 }\r
248 \r
249                 [Test]\r
250                 public void TestUndockSetBoundsVisible ()\r
251                 {\r
252                         form.Show ();\r
253                         panel.SetBounds (50, 50, 50, 50, BoundsSpecified.All);\r
254                         panel.Dock = DockStyle.Top;\r
255                         panel.Dock = DockStyle.None;\r
256                         Assert.AreEqual (50, panel.Height, "Height");\r
257                         Assert.AreEqual (50, panel.Left, "Left");\r
258                         Assert.AreEqual (50, panel.Top, "Top");\r
259                         Assert.AreEqual (50, panel.Width, "Width");\r
260                 }\r
261 \r
262                 [Test]\r
263                 public void TestUndockSetBoundsCore ()\r
264                 {\r
265                         panel.InvokeSetBoundsCore ();\r
266                         panel.Dock = DockStyle.Top;\r
267                         panel.Dock = DockStyle.None;\r
268                         Assert.AreEqual (37, panel.Height, "Height");\r
269                         Assert.AreEqual (37, panel.Left, "Left");\r
270                         Assert.AreEqual (37, panel.Top, "Top");\r
271                         Assert.AreEqual (37, panel.Width, "Width");\r
272                 }\r
273 \r
274                 [Test]\r
275                 public void TestUndockSetBoundsCoreVisible ()\r
276                 {\r
277                         form.Show ();\r
278                         panel.InvokeSetBoundsCore ();\r
279                         panel.Dock = DockStyle.Top;\r
280                         panel.Dock = DockStyle.None;\r
281                         Assert.AreEqual (37, panel.Height, "Height");\r
282                         Assert.AreEqual (37, panel.Left, "Left");\r
283                         Assert.AreEqual (37, panel.Top, "Top");\r
284                         Assert.AreEqual (37, panel.Width, "Width");\r
285                 }\r
286 \r
287                 [Test]\r
288                 public void TestUndockUpdateBounds ()\r
289                 {\r
290                         panel.InvokeUpdateBounds ();\r
291                         panel.Dock = DockStyle.Top;\r
292                         panel.Dock = DockStyle.None;\r
293                         Assert.AreEqual (37, panel.Height, "Height");\r
294                         Assert.AreEqual (37, panel.Left, "Left");\r
295                         Assert.AreEqual (37, panel.Top, "Top");\r
296                         Assert.AreEqual (37, panel.Width, "Width");\r
297                 }\r
298 \r
299                 [Test]\r
300                 public void TestUndockUpdateBoundsVisible ()\r
301                 {\r
302                         form.Show ();\r
303                         panel.InvokeUpdateBounds ();\r
304                         panel.Dock = DockStyle.Top;\r
305                         panel.Dock = DockStyle.None;\r
306                         Assert.AreEqual (37, panel.Height, "Height");\r
307                         Assert.AreEqual (37, panel.Left, "Left");\r
308                         Assert.AreEqual (37, panel.Top, "Top");\r
309                         Assert.AreEqual (37, panel.Width, "Width");\r
310                 }\r
311 \r
312         }\r
313 }\r
314 \r