Mark tests as not working under TARGET_JVM
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / FormHandleTest.cs
1 //\r
2 // FormTest.cs: Test cases for Form.\r
3 //\r
4 // Author:\r
5 //   Ritvik Mayank (mritvik@novell.com)\r
6 //\r
7 // (C) 2005 Novell, Inc. (http://www.novell.com)\r
8 //\r
9 \r
10 using System;\r
11 using System.ComponentModel;\r
12 using System.Drawing;\r
13 using System.Reflection;\r
14 using System.Windows.Forms;\r
15 \r
16 using NUnit.Framework;\r
17 \r
18 using CategoryAttribute = NUnit.Framework.CategoryAttribute;\r
19 \r
20 namespace MonoTests.System.Windows.Forms\r
21 {\r
22         \r
23         [TestFixture]\r
24         [Category ("NotWorking")]\r
25         public class FormHandleTest\r
26         {\r
27                 [Test]\r
28                 public void TestConstructors ()\r
29                 {\r
30                         Form c = new Form ();\r
31                         Assert.IsFalse (c.IsHandleCreated, "A1");\r
32                 }\r
33 \r
34                 [Test]\r
35                 public void TestPublicProperties ()\r
36                 {\r
37                         // This long, carpal-tunnel syndrome inducing test shows us that\r
38                         // the following properties cause the Handle to be created:\r
39                         // - AccessibilityObject        [get]\r
40                         // - Capture                    [set]\r
41                         // - Handle                     [get]\r
42                         // - Visible                    [set]\r
43                         \r
44                         Form c = new Form ();\r
45                         // A\r
46                         object o = c.AccessibilityObject;\r
47                         Assert.IsTrue (c.IsHandleCreated, "A0");\r
48                         c = new Form ();\r
49                         o = c.AccessibleDefaultActionDescription;\r
50                         c.AccessibleDefaultActionDescription = "playdoh";\r
51                         Assert.IsFalse (c.IsHandleCreated, "A1");\r
52                         o = c.AccessibleDescription;\r
53                         c.AccessibleDescription = "more playdoh!";\r
54                         Assert.IsFalse (c.IsHandleCreated, "A2");\r
55                         o = c.AccessibleName;\r
56                         c.AccessibleName = "playdoh fun factory";\r
57                         Assert.IsFalse (c.IsHandleCreated, "A3");\r
58                         o = c.AccessibleRole;\r
59                         c.AccessibleRole = AccessibleRole.Border;\r
60                         Assert.IsFalse (c.IsHandleCreated, "A4");\r
61                         o = c.AllowDrop;\r
62                         c.AllowDrop = true;\r
63                         Assert.IsFalse (c.IsHandleCreated, "A5");\r
64                         // If we don't reset the control, handle creation will fail\r
65                         // because AllowDrop requires STAThread, which Nunit doesn't do\r
66                         c = new Form ();\r
67                         o = c.Anchor;\r
68                         c.Anchor = AnchorStyles.Right;\r
69                         Assert.IsFalse (c.IsHandleCreated, "A6");\r
70 #if !__MonoCS__ && NET_2_0\r
71                         o = c.AutoScrollOffset;\r
72                         c.AutoScrollOffset = new Point (40, 40);\r
73                         Assert.IsFalse (c.IsHandleCreated, "A7");\r
74 #endif\r
75 #if NET_2_0\r
76                         o = c.AutoSize;\r
77                         c.AutoSize = true;\r
78                         Assert.IsFalse (c.IsHandleCreated, "A8");\r
79 #endif\r
80 \r
81                         // A - Form                     \r
82                         o = c.AcceptButton;\r
83                         c.AcceptButton = null;\r
84                         Assert.IsFalse (c.IsHandleCreated, "FA1");\r
85                         \r
86                         o = c.ActiveControl;\r
87                         c.ActiveControl = null;\r
88                         Assert.IsFalse (c.IsHandleCreated, "FA2");\r
89                         \r
90                         o = c.ActiveMdiChild;\r
91                         Assert.IsFalse (c.IsHandleCreated, "FA3");\r
92                         \r
93                         o = c.AllowTransparency;\r
94                         c.AllowTransparency = !c.AllowTransparency;\r
95                         Assert.IsFalse (c.IsHandleCreated, "FA4");\r
96 \r
97 #if NET_2_0\r
98                         o = c.AutoScaleDimensions;\r
99                         c.AutoScaleDimensions = SizeF.Empty;\r
100                         Assert.IsFalse (c.IsHandleCreated, "FA5");\r
101                         \r
102                         o = c.AutoScaleMode;\r
103                         c.AutoScaleMode = AutoScaleMode.Dpi;\r
104                         Assert.IsFalse (c.IsHandleCreated, "FA6");\r
105 #endif\r
106                         o = c.AutoScroll;\r
107                         c.AutoScroll = !c.AutoScroll;\r
108                         Assert.IsFalse (c.IsHandleCreated, "FA7");\r
109                         \r
110                         o = c.AutoScrollMargin;\r
111                         c.AutoScrollMargin = new Size (c.AutoScrollMargin.Width + 1, c.AutoScrollMargin.Height + 1);\r
112                         Assert.IsFalse (c.IsHandleCreated, "FA8");\r
113                         \r
114                         o = c.AutoScrollMinSize;\r
115                         c.AutoScrollMinSize = new Size (c.AutoScrollMinSize.Width + 1, c.AutoScrollMinSize.Height + 1);\r
116                         Assert.IsFalse (c.IsHandleCreated, "FA9");\r
117 \r
118 #if NET_2_0 && !__MonoCS__\r
119                         o = c.AutoScrollOffset;\r
120                         c.AutoScrollOffset = new Point (c.AutoScrollOffset.X + 1, c.AutoScrollOffset.Y + 1);\r
121                         Assert.IsFalse (c.IsHandleCreated, "FA10"); \r
122 #endif\r
123                         \r
124                         o = c.AutoScrollPosition;\r
125                         c.AutoScrollPosition = new Point (c.AutoScrollPosition.X + 1, c.AutoScrollPosition.Y + 1);\r
126                         Assert.IsFalse (c.IsHandleCreated, "FA11");\r
127 #if NET_2_0\r
128 \r
129                         o = c.AutoSize;\r
130                         c.AutoSize = !c.AutoSize;\r
131                         Assert.IsFalse (c.IsHandleCreated, "FA12"); \r
132 #if !__MonoCS__\r
133                         o = c.AutoSizeMode;\r
134                         c.AutoSizeMode = AutoSizeMode.GrowAndShrink;\r
135                         Assert.IsFalse (c.IsHandleCreated, "FA13");\r
136 #endif          \r
137                         o = c.AutoValidate;\r
138                         c.AutoValidate = AutoValidate.EnableAllowFocusChange;\r
139                         Assert.IsFalse (c.IsHandleCreated, "FA14");\r
140 \r
141 #endif\r
142                         // B\r
143                         o = c.BackColor;\r
144                         c.BackColor = Color.Green;\r
145                         Assert.IsFalse (c.IsHandleCreated, "A9");\r
146                         o = c.BackgroundImage;\r
147                         c.BackgroundImage = new Bitmap (1, 1);\r
148                         Assert.IsFalse (c.IsHandleCreated, "A10");\r
149 #if NET_2_0\r
150                         o = c.BackgroundImageLayout;\r
151                         c.BackgroundImageLayout = ImageLayout.Stretch;\r
152                         Assert.IsFalse (c.IsHandleCreated, "A11");\r
153 #endif\r
154                         o = c.BindingContext;\r
155                         c.BindingContext = new BindingContext ();\r
156                         Assert.IsFalse (c.IsHandleCreated, "A12");\r
157                         o = c.Bottom;\r
158                         Assert.IsFalse (c.IsHandleCreated, "A13");\r
159                         o = c.Bounds;\r
160                         c.Bounds = new Rectangle (0, 0, 12, 12);\r
161                         Assert.IsFalse (c.IsHandleCreated, "A14");\r
162 \r
163 \r
164                         // B - Form\r
165                         o = c.BindingContext;\r
166                         c.BindingContext = null;\r
167                         Assert.IsFalse (c.IsHandleCreated, "FB1");\r
168                         \r
169                         // C\r
170                         o = c.CanFocus;\r
171                         Assert.IsFalse (c.IsHandleCreated, "A15");\r
172                         o = c.CanSelect;\r
173                         Assert.IsFalse (c.IsHandleCreated, "A16");\r
174                         o = c.Capture;\r
175                         Assert.IsFalse (c.IsHandleCreated, "A17a");\r
176                         c.Capture = true;\r
177                         Assert.IsTrue (c.IsHandleCreated, "A17b");\r
178                         c = new Form ();\r
179                         o = c.CausesValidation;\r
180                         c.CausesValidation = false;\r
181                         Assert.IsFalse (c.IsHandleCreated, "A18");\r
182                         o = c.ClientRectangle;\r
183                         Assert.IsFalse (c.IsHandleCreated, "A19");\r
184                         o = c.ClientSize;\r
185                         c.ClientSize = new Size (30, 30);\r
186                         Assert.IsFalse (c.IsHandleCreated, "A20");\r
187                         o = c.CompanyName;\r
188                         Assert.IsFalse (c.IsHandleCreated, "A21");\r
189                         o = c.Container;\r
190                         Assert.IsFalse (c.IsHandleCreated, "A22");\r
191                         o = c.ContainsFocus;\r
192                         Assert.IsFalse (c.IsHandleCreated, "A23");\r
193                         o = c.ContextMenu;\r
194                         c.ContextMenu = new ContextMenu ();\r
195                         Assert.IsFalse (c.IsHandleCreated, "A24");\r
196 #if NET_2_0\r
197                         o = c.ContextMenuStrip;\r
198                         c.ContextMenuStrip = new ContextMenuStrip ();\r
199                         Assert.IsFalse (c.IsHandleCreated, "A25");\r
200 #endif\r
201                         o = c.Controls;\r
202                         Assert.IsFalse (c.IsHandleCreated, "A26");\r
203                         o = c.Created;\r
204                         Assert.IsFalse (c.IsHandleCreated, "A27");\r
205                         o = c.Cursor;\r
206                         c.Cursor = Cursors.Arrow;\r
207                         Assert.IsFalse (c.IsHandleCreated, "A28");\r
208 \r
209                         // C - Form\r
210                         o = c.CancelButton;\r
211                         c.CancelButton = null;\r
212                         Assert.IsFalse (c.IsHandleCreated, "FC1");\r
213                         \r
214                         o = c.ClientSize;\r
215                         c.ClientSize = new Size (c.ClientSize.Width + 1, c.ClientSize.Height + 1);\r
216                         Assert.IsFalse (c.IsHandleCreated, "FC2");\r
217                         \r
218                         o = c.Container;\r
219                         Assert.IsFalse (c.IsHandleCreated, "FC3");\r
220                         \r
221                         o = c.ControlBox;\r
222                         c.ControlBox = !c.ControlBox;\r
223                         Assert.IsFalse (c.IsHandleCreated, "FC4");\r
224 #if NET_2_0\r
225 \r
226                         o = c.CurrentAutoScaleDimensions;\r
227                         Assert.IsFalse (c.IsHandleCreated, "FC5"); \r
228 #endif\r
229 \r
230                         // D\r
231                         o = c.DataBindings;\r
232                         Assert.IsFalse (c.IsHandleCreated, "A29");\r
233                         o = c.DisplayRectangle;\r
234                         Assert.IsFalse (c.IsHandleCreated, "A30");\r
235                         o = c.Disposing;\r
236                         Assert.IsFalse (c.IsHandleCreated, "A31");\r
237                         o = c.Dock;\r
238                         c.Dock = DockStyle.Fill;\r
239                         Assert.IsFalse (c.IsHandleCreated, "A32");\r
240 \r
241                         // D - Form\r
242                         o = c.DataBindings;\r
243                         Assert.IsFalse (c.IsHandleCreated, "FD6");\r
244                         \r
245                         o = c.DesktopBounds;\r
246                         c.DesktopBounds = new Rectangle (3, 5, c.DesktopBounds.Width + 1, c.DesktopBounds.Height + 1);\r
247                         Assert.IsFalse (c.IsHandleCreated, "FD7");\r
248                         \r
249                         o = c.DesktopLocation;\r
250                         c.DesktopLocation = c.DesktopLocation + new Size (1, 1);\r
251                         Assert.IsFalse (c.IsHandleCreated, "FD8");\r
252                         \r
253                         o = c.DialogResult;\r
254                         c.DialogResult = DialogResult.Abort;\r
255                         Assert.IsFalse (c.IsHandleCreated, "FD9");\r
256                         \r
257                         o = c.DisplayRectangle;\r
258                         Assert.IsFalse (c.IsHandleCreated, "FD10");\r
259                         \r
260                         o = c.Disposing;\r
261                         Assert.IsFalse (c.IsHandleCreated, "FD11");\r
262                         \r
263                         o = c.Dock;\r
264                         c.Dock = DockStyle.Right;\r
265                         Assert.IsFalse (c.IsHandleCreated, "FD12");\r
266 \r
267                         // E-H\r
268                         o = c.Enabled;\r
269                         c.Enabled = false;\r
270                         Assert.IsFalse (c.IsHandleCreated, "A33");\r
271                         c = new Form ();  //Reset just in case enable = false affects things\r
272                         o = c.Focused;\r
273                         Assert.IsFalse (c.IsHandleCreated, "A34");\r
274                         o = c.Font;\r
275                         c.Font = new Font (c.Font, FontStyle.Bold);\r
276                         Assert.IsFalse (c.IsHandleCreated, "A35");\r
277                         o = c.ForeColor;\r
278                         c.ForeColor = Color.Green;\r
279                         Assert.IsFalse (c.IsHandleCreated, "A36");\r
280                         o = c.Handle;\r
281                         Assert.IsTrue (c.IsHandleCreated, "A37");\r
282                         c = new Form ();\r
283                         o = c.HasChildren;\r
284                         Assert.IsFalse (c.IsHandleCreated, "A38");\r
285                         o = c.Height;\r
286                         c.Height = 12;\r
287                         Assert.IsFalse (c.IsHandleCreated, "A39");\r
288 \r
289                         // E-H - Form\r
290                         o = c.FormBorderStyle;\r
291                         c.FormBorderStyle = FormBorderStyle.FixedToolWindow;\r
292                         Assert.IsFalse (c.IsHandleCreated, "FF1");\r
293                         \r
294                         o = c.HelpButton;\r
295                         c.HelpButton = !c.HelpButton;\r
296                         Assert.IsFalse (c.IsHandleCreated, "FH1");\r
297 \r
298 #if NET_2_0 && !__MonoCS__\r
299                         o = c.HorizontalScroll;\r
300                         Assert.IsFalse (c.IsHandleCreated, "FH2"); \r
301 #endif\r
302                         // I - L\r
303                         c.ImeMode = ImeMode.On;\r
304                         Assert.IsFalse (c.IsHandleCreated, "A40");\r
305                         o = c.InvokeRequired;\r
306                         Assert.IsFalse (c.IsHandleCreated, "A41");\r
307                         o = c.IsAccessible;\r
308                         Assert.IsFalse (c.IsHandleCreated, "A42");\r
309                         o = c.IsDisposed;\r
310                         Assert.IsFalse (c.IsHandleCreated, "A43");\r
311 #if !__MonoCS__ && NET_2_0\r
312                         o = c.IsMirrored;\r
313                         Assert.IsFalse (c.IsHandleCreated, "A44");\r
314 #endif\r
315 #if NET_2_0\r
316                         o = c.LayoutEngine;\r
317                         Assert.IsFalse (c.IsHandleCreated, "A45");\r
318 #endif\r
319                         o = c.Left;\r
320                         c.Left = 15;\r
321                         Assert.IsFalse (c.IsHandleCreated, "A46");\r
322                         o = c.Location;\r
323                         c.Location = new Point (20, 20);\r
324                         Assert.IsFalse (c.IsHandleCreated, "A47");\r
325 \r
326                         // I - L - Form\r
327                         \r
328                         o = c.Icon;\r
329                         c.Icon = null;\r
330                         Assert.IsFalse (c.IsHandleCreated, "FI1");\r
331                         \r
332                         o = c.IsMdiChild;\r
333                         Assert.IsFalse (c.IsHandleCreated, "FI2");\r
334 \r
335                         o = c.IsMdiContainer;\r
336                         c.IsMdiContainer = false;\r
337                         Assert.IsFalse (c.IsHandleCreated, "FI3");\r
338                         \r
339                         o = c.IsRestrictedWindow;\r
340                         Assert.IsFalse (c.IsHandleCreated, "FI4");\r
341                         \r
342                         o = c.KeyPreview;\r
343                         c.KeyPreview = !c.KeyPreview;\r
344                         Assert.IsFalse (c.IsHandleCreated, "FK1");\r
345                         \r
346                         o = c.Location;\r
347                         c.Location = c.Location + new Size (1, 1);\r
348                         Assert.IsFalse (c.IsHandleCreated, "FL1");\r
349                         \r
350                         \r
351                         // M - N\r
352 #if NET_2_0\r
353                         o = c.Margin;\r
354                         c.Margin = new Padding (6);\r
355                         Assert.IsFalse (c.IsHandleCreated, "A48");\r
356                         o = c.MaximumSize;\r
357                         c.MaximumSize = new Size (500, 500);\r
358                         Assert.IsFalse (c.IsHandleCreated, "A49");\r
359                         o = c.MinimumSize;\r
360                         c.MinimumSize = new Size (100, 100);\r
361                         Assert.IsFalse (c.IsHandleCreated, "A50");\r
362 #endif\r
363                         o = c.Name;\r
364                         c.Name = "web";\r
365                         Assert.IsFalse (c.IsHandleCreated, "A51");\r
366 \r
367 #if NET_2_0\r
368                         // M - O - Form\r
369                         o = c.MainMenuStrip;\r
370                         c.MainMenuStrip = null;\r
371                         Assert.IsFalse (c.IsHandleCreated, "FM1"); \r
372 #endif\r
373                         \r
374                         o = c.MaximizeBox;\r
375                         c.MaximizeBox = !c.MaximizeBox;\r
376                         Assert.IsFalse (c.IsHandleCreated, "FM2");\r
377                         \r
378                         o = c.MaximumSize;\r
379                         c.MaximumSize = c.MaximumSize + new Size (1, 1);\r
380                         Assert.IsFalse (c.IsHandleCreated, "FM3");\r
381                         \r
382                         o = c.MdiChildren;\r
383                         Assert.IsFalse (c.IsHandleCreated, "FM4");\r
384                         \r
385                         o = c.MdiParent;\r
386                         c.MdiParent = null;\r
387                         Assert.IsFalse (c.IsHandleCreated, "FM5");\r
388                         \r
389                         o = c.Menu;\r
390                         c.Menu = null;\r
391                         Assert.IsFalse (c.IsHandleCreated, "FM6");\r
392                         \r
393                         o = c.MergedMenu;\r
394                         Assert.IsFalse (c.IsHandleCreated, "FM7");\r
395                         \r
396                         o = c.MinimizeBox;\r
397                         c.MinimizeBox = !c.MinimizeBox;\r
398                         Assert.IsFalse (c.IsHandleCreated, "FM8");\r
399                         \r
400                         o = c.MinimumSize;\r
401                         c.MinimumSize = c.MinimumSize + new Size (1, 1);\r
402                         Assert.IsFalse (c.IsHandleCreated, "FM9");\r
403                         \r
404                         o = c.Modal;\r
405                         Assert.IsFalse (c.IsHandleCreated, "FM10");\r
406                         \r
407                         o = c.Opacity;\r
408                         c.Opacity = 0.9;\r
409                         Assert.IsFalse (c.IsHandleCreated, "FO1");\r
410                         \r
411                         o = c.OwnedForms;\r
412                         Assert.IsFalse (c.IsHandleCreated, "FO2");\r
413                         \r
414                         o = c.Owner;\r
415                         c.Owner = null;\r
416                         Assert.IsFalse (c.IsHandleCreated, "FO3");\r
417                         \r
418                         // P - R\r
419 #if NET_2_0\r
420                         o = c.Padding;\r
421                         c.Padding = new Padding (4);\r
422                         Assert.IsFalse (c.IsHandleCreated, "A52");\r
423 #endif\r
424                         o = c.Parent;\r
425                         c.TopLevel = false;\r
426                         c.Parent = new Form ();\r
427                         Assert.IsFalse (c.IsHandleCreated, "A53");\r
428 #if NET_2_0\r
429                         o = c.PreferredSize;\r
430                         Assert.IsFalse (c.IsHandleCreated, "A54");\r
431 #endif\r
432                         o = c.ProductName;\r
433                         Assert.IsFalse (c.IsHandleCreated, "A55");\r
434                         o = c.ProductVersion;\r
435                         Assert.IsFalse (c.IsHandleCreated, "A56");\r
436                         o = c.RecreatingHandle;\r
437                         Assert.IsFalse (c.IsHandleCreated, "A57");\r
438                         o = c.Region;\r
439                         c.Region = new Region (new Rectangle (0, 0, 177, 177));\r
440                         Assert.IsFalse (c.IsHandleCreated, "A58");\r
441                         o = c.Right;\r
442                         Assert.IsFalse (c.IsHandleCreated, "A59");\r
443                         o = c.RightToLeft;\r
444                         c.RightToLeft = RightToLeft.Yes;\r
445                         Assert.IsFalse (c.IsHandleCreated, "A60");\r
446 \r
447                         // P - R - Form                 \r
448                         o = c.ParentForm;\r
449                         Assert.IsFalse (c.IsHandleCreated, "FP1");\r
450 \r
451 #if NET_2_0 && !__MonoCS__\r
452                         o = c.RestoreBounds;\r
453                         Assert.IsFalse (c.IsHandleCreated, "FR1"); \r
454 #endif\r
455                         \r
456 \r
457                         // S - W\r
458                         o = c.Site;\r
459                         Assert.IsFalse (c.IsHandleCreated, "A61");\r
460                         o = c.Size;\r
461                         c.Size = new Size (188, 188);\r
462                         Assert.IsFalse (c.IsHandleCreated, "A62");\r
463                         o = c.TabIndex;\r
464                         c.TabIndex = 5;\r
465                         Assert.IsFalse (c.IsHandleCreated, "A63");\r
466                         o = c.Tag;\r
467                         c.Tag = "moooooooo";\r
468                         Assert.IsFalse (c.IsHandleCreated, "A64");\r
469                         o = c.Text;\r
470                         c.Text = "meoooowww";\r
471                         Assert.IsFalse (c.IsHandleCreated, "A65");\r
472                         o = c.Top;\r
473                         c.Top = 16;\r
474                         Assert.IsFalse (c.IsHandleCreated, "A66");\r
475                         o = c.TopLevelControl;\r
476                         Assert.IsFalse (c.IsHandleCreated, "A67");\r
477 #if !__MonoCS__ && NET_2_0\r
478                         o = c.UseWaitCursor;\r
479                         c.UseWaitCursor = true;\r
480                         Assert.IsFalse (c.IsHandleCreated, "A68");\r
481 #endif\r
482                         o = c.Visible;\r
483                         Assert.IsFalse (c.IsHandleCreated, "A69");\r
484                         \r
485                         c.Visible = true;\r
486                         Assert.IsTrue (c.IsHandleCreated, "A69-b");\r
487                         c = new Form ();\r
488                         \r
489                         o = c.Width;\r
490                         c.Width = 190;\r
491                         Assert.IsFalse (c.IsHandleCreated, "A70");\r
492                         o = c.WindowTarget;\r
493                         Assert.IsFalse (c.IsHandleCreated, "A71");\r
494 \r
495                         // S - W - Form\r
496 \r
497 #if NET_2_0\r
498                         o = c.ShowIcon;\r
499                         c.ShowIcon = !c.ShowIcon;\r
500                         Assert.IsFalse (c.IsHandleCreated, "FS1"); \r
501 #endif\r
502                         \r
503                         o = c.ShowInTaskbar;\r
504                         c.ShowInTaskbar = !c.ShowInTaskbar;\r
505                         Assert.IsFalse (c.IsHandleCreated, "FS2");\r
506                         \r
507                         o = c.Size;\r
508                         c.Size = c.Size + new Size (1, 1);\r
509                         Assert.IsFalse (c.IsHandleCreated, "FS3");\r
510                         \r
511                         o = c.SizeGripStyle;\r
512                         c.SizeGripStyle = SizeGripStyle.Show;\r
513                         Assert.IsFalse (c.IsHandleCreated, "FS4");\r
514                         \r
515                         o = c.StartPosition;\r
516                         c.StartPosition = FormStartPosition.Manual;\r
517                         Assert.IsFalse (c.IsHandleCreated, "FS5");\r
518                         \r
519                         o = c.Text;\r
520                         c.Text = "hooray!";\r
521                         Assert.IsFalse (c.IsHandleCreated, "FT1");\r
522                         \r
523                         o = c.TopLevel;\r
524                         c.TopLevel = !c.TopLevel;\r
525                         Assert.IsFalse (c.IsHandleCreated, "FT2");\r
526                         \r
527                         o = c.TopMost;\r
528                         c.TopMost = !c.TopMost;\r
529                         Assert.IsFalse (c.IsHandleCreated, "FT3");\r
530                         \r
531                         o = c.TransparencyKey;\r
532                         c.TransparencyKey = Color.BurlyWood;\r
533                         Assert.IsFalse (c.IsHandleCreated, "FT4");\r
534 \r
535 #if NET_2_0 && !__MonoCS__\r
536                         o = c.VerticalScroll;\r
537                         Assert.IsFalse (c.IsHandleCreated, "FV1"); \r
538 #endif\r
539                         \r
540                         o = c.WindowState;\r
541                         c.WindowState = FormWindowState.Maximized;\r
542                         Assert.IsFalse (c.IsHandleCreated, "FW1");\r
543 \r
544                         TestHelper.RemoveWarning (o);\r
545                 }\r
546 \r
547                 [Test]\r
548                 public void TestProtectedProperties ()\r
549                 {\r
550                         // Not a surprise, but none of these cause handle creation.\r
551                         // Included just to absolutely certain.\r
552                         ProtectedPropertyForm c = new ProtectedPropertyForm ();\r
553 \r
554                         object o;\r
555 #if !__MonoCS__ && NET_2_0\r
556                         o = c.PublicCanRaiseEvents;\r
557                         Assert.IsFalse (c.IsHandleCreated, "A1");\r
558 #endif\r
559                         o = c.PublicCreateParams;\r
560                         Assert.IsFalse (c.IsHandleCreated, "A2");\r
561 #if NET_2_0\r
562                         o = c.PublicDefaultCursor;\r
563                         Assert.IsFalse (c.IsHandleCreated, "A3");\r
564 #endif\r
565                         o = c.PublicDefaultImeMode;\r
566                         Assert.IsFalse (c.IsHandleCreated, "A4");\r
567 #if NET_2_0\r
568                         o = c.PublicDefaultMargin;\r
569                         Assert.IsFalse (c.IsHandleCreated, "A5");\r
570                         o = c.PublicDefaultMaximumSize;\r
571                         Assert.IsFalse (c.IsHandleCreated, "A6");\r
572                         o = c.PublicDefaultMinimumSize;\r
573                         Assert.IsFalse (c.IsHandleCreated, "A7");\r
574                         o = c.PublicDefaultPadding;\r
575                         Assert.IsFalse (c.IsHandleCreated, "A8");\r
576                         o = c.PublicDefaultSize;\r
577                         Assert.IsFalse (c.IsHandleCreated, "A9");\r
578                         o = c.PublicDoubleBuffered;\r
579                         c.PublicDoubleBuffered = !c.PublicDoubleBuffered;\r
580                         Assert.IsFalse (c.IsHandleCreated, "A10");\r
581 #endif\r
582                         o = c.PublicFontHeight;\r
583                         c.PublicFontHeight = c.PublicFontHeight + 1;\r
584                         Assert.IsFalse (c.IsHandleCreated, "A11");\r
585                         o = c.PublicRenderRightToLeft;\r
586                         Assert.IsFalse (c.IsHandleCreated, "A12");\r
587                         o = c.PublicResizeRedraw;\r
588                         c.PublicResizeRedraw = !c.PublicResizeRedraw;\r
589                         Assert.IsFalse (c.IsHandleCreated, "A13");\r
590 #if !__MonoCS__ && NET_2_0\r
591                         o = c.PublicScaleChildren;\r
592                         Assert.IsFalse (c.IsHandleCreated, "A14");\r
593 #endif\r
594                         o = c.PublicShowFocusCues;\r
595                         Assert.IsFalse (c.IsHandleCreated, "A15");\r
596                         o = c.PublicShowKeyboardCues;\r
597                         Assert.IsFalse (c.IsHandleCreated, "A16");\r
598 \r
599 #if NET_2_0\r
600                         o = c.PublicAutoScaleFactor;\r
601                         Assert.IsFalse (c.IsHandleCreated, "F1"); \r
602 #endif\r
603                         \r
604                         o = c.PublicDesignMode;\r
605                         Assert.IsFalse (c.IsHandleCreated, "F2");\r
606                         \r
607                         o = c.PublicEvents;\r
608                         Assert.IsFalse (c.IsHandleCreated, "F3");\r
609                         \r
610                         o = c.PublicHScroll;\r
611                         c.PublicHScroll = !c.PublicHScroll;\r
612                         Assert.IsFalse (c.IsHandleCreated, "F4");\r
613                         \r
614                         o = c.PublicMaximizedBounds;\r
615                         c.PublicMaximizedBounds = new Rectangle (1, 1, 1, 1);\r
616                         Assert.IsFalse (c.IsHandleCreated, "F5");\r
617 \r
618 #if NET_2_0\r
619                         o = c.PublicShowWithoutActivation;\r
620                         Assert.IsFalse (c.IsHandleCreated, "F6"); \r
621 #endif\r
622                                                 \r
623                         o = c.PublicVScroll;\r
624                         c.PublicVScroll = !c.PublicVScroll;\r
625                         Assert.IsFalse (c.IsHandleCreated, "F7");\r
626                         \r
627 \r
628                         TestHelper.RemoveWarning (o);\r
629                 }\r
630 \r
631                 Form invokeform = new Form ();\r
632 \r
633                 [Test]\r
634                 public void TestPublicMethods ()\r
635                 {\r
636                         // Public Methods that force Handle creation:\r
637                         // - CreateGraphics ()\r
638                         // - GetChildAtPoint ()\r
639                         // - Invoke, BeginInvoke throws InvalidOperationException if Handle has not been created\r
640                         // - PointToClient ()\r
641                         // - PointToScreen ()\r
642                         // - RectangleToClient ()\r
643                         // - RectangleToScreen ()\r
644                         // - Select ()\r
645                         // - Show (IWin32Window)\r
646                         // Notes:\r
647                         // - CreateControl does NOT force Handle creation!\r
648                         \r
649                         Form c = new Form ();\r
650 \r
651                         c.BringToFront ();\r
652                         Assert.IsFalse (c.IsHandleCreated, "A1");\r
653                         \r
654                         c.Contains (new Form ());\r
655                         Assert.IsFalse (c.IsHandleCreated, "A2");\r
656                         \r
657                         c.CreateControl ();\r
658                         Assert.IsFalse (c.IsHandleCreated, "A3");\r
659                         \r
660                         c = new Form ();\r
661                         Graphics g = c.CreateGraphics ();\r
662                         g.Dispose ();\r
663                         Assert.IsTrue (c.IsHandleCreated, "A4");\r
664                         c.Dispose ();\r
665                         c = new Form ();\r
666                         \r
667                         c.Dispose ();\r
668                         Assert.IsFalse (c.IsHandleCreated, "A5");\r
669                         c = new Form ();\r
670 \r
671                         // This is weird, it causes a form to appear that won't go away until you move the mouse over it, \r
672                         // but it doesn't create a handle??\r
673                         //DragDropEffects d = c.DoDragDrop ("yo", DragDropEffects.None);\r
674                         //Assert.IsFalse (c.IsHandleCreated, "A6");\r
675                         //Assert.AreEqual (DragDropEffects.None, d, "A6b");\r
676                         \r
677                         //Bitmap b = new Bitmap (100, 100);\r
678                         //c.DrawToBitmap (b, new Rectangle (0, 0, 100, 100));\r
679                         //Assert.IsFalse (c.IsHandleCreated, "A7");\r
680                         //b.Dispose ();\r
681                         c.FindForm ();\r
682                         Assert.IsFalse (c.IsHandleCreated, "A8");\r
683                         \r
684                         c.Focus ();\r
685                         Assert.IsFalse (c.IsHandleCreated, "A9");\r
686 \r
687                         c.GetChildAtPoint (new Point (10, 10));\r
688                         Assert.IsTrue (c.IsHandleCreated, "A10");\r
689                         c.GetContainerControl ();\r
690                         Assert.IsFalse (c.IsHandleCreated, "A11");\r
691                         \r
692                         c = new Form ();\r
693                         c.GetNextControl (new Control (), true);\r
694                         Assert.IsFalse (c.IsHandleCreated, "A12");\r
695 #if NET_2_0\r
696                         c.GetPreferredSize (Size.Empty);\r
697                         Assert.IsFalse (c.IsHandleCreated, "A13");\r
698 #endif\r
699                         c.Hide ();\r
700                         Assert.IsFalse (c.IsHandleCreated, "A14");\r
701                         \r
702                         c.Invalidate ();\r
703                         Assert.IsFalse (c.IsHandleCreated, "A15");\r
704                         \r
705                         //c.Invoke (new InvokeDelegate (InvokeMethod));\r
706                         //Assert.IsFalse (c.IsHandleCreated, "A16");\r
707                         c.PerformLayout ();\r
708                         Assert.IsFalse (c.IsHandleCreated, "A17");\r
709                         \r
710                         c.PointToClient (new Point (100, 100));\r
711                         Assert.IsTrue (c.IsHandleCreated, "A18");\r
712                         c = new Form ();\r
713                         \r
714                         c.PointToScreen (new Point (100, 100));\r
715                         Assert.IsTrue (c.IsHandleCreated, "A19");\r
716                         c = new Form ();\r
717                         \r
718                         //c.PreProcessControlMessage   ???\r
719                         //c.PreProcessMessage          ???\r
720                         c.RectangleToClient (new Rectangle (0, 0, 100, 100));\r
721                         Assert.IsTrue (c.IsHandleCreated, "A20");\r
722                         c = new Form ();\r
723                         c.RectangleToScreen (new Rectangle (0, 0, 100, 100));\r
724                         Assert.IsTrue (c.IsHandleCreated, "A21");\r
725                         c = new Form ();\r
726                         c.Refresh ();\r
727                         Assert.IsFalse (c.IsHandleCreated, "A22");\r
728                         c.ResetBackColor ();\r
729                         Assert.IsFalse (c.IsHandleCreated, "A23");\r
730                         c.ResetBindings ();\r
731                         Assert.IsFalse (c.IsHandleCreated, "A24");\r
732                         c.ResetCursor ();\r
733                         Assert.IsFalse (c.IsHandleCreated, "A25");\r
734                         c.ResetFont ();\r
735                         Assert.IsFalse (c.IsHandleCreated, "A26");\r
736                         c.ResetForeColor ();\r
737                         Assert.IsFalse (c.IsHandleCreated, "A27");\r
738                         c.ResetImeMode ();\r
739                         Assert.IsFalse (c.IsHandleCreated, "A28");\r
740                         c.ResetRightToLeft ();\r
741                         Assert.IsFalse (c.IsHandleCreated, "A29");\r
742                         c.ResetText ();\r
743                         Assert.IsFalse (c.IsHandleCreated, "A30");\r
744                         c.SuspendLayout ();\r
745                         Assert.IsFalse (c.IsHandleCreated, "A31");\r
746                         c.ResumeLayout ();\r
747                         Assert.IsFalse (c.IsHandleCreated, "A32");\r
748 #if NET_2_0\r
749                         c.Scale (new SizeF (1.5f, 1.5f));\r
750                         Assert.IsFalse (c.IsHandleCreated, "A33");\r
751 #endif\r
752                         c.Select ();\r
753                         Assert.IsTrue (c.IsHandleCreated, "A34");\r
754                         c = new Form ();\r
755                         \r
756                         c.SelectNextControl (new Control (), true, true, true, true);\r
757                         Assert.IsFalse (c.IsHandleCreated, "A35");\r
758                         c.SetBounds (0, 0, 100, 100);\r
759                         Assert.IsFalse (c.IsHandleCreated, "A36");\r
760                         c.Update ();\r
761                         Assert.IsFalse (c.IsHandleCreated, "A37");\r
762                         \r
763                         // Form\r
764                         \r
765                         c.Activate ();\r
766                         Assert.IsFalse (c.IsHandleCreated, "F1");\r
767                         \r
768                         c.AddOwnedForm (new Form ());\r
769                         Assert.IsFalse (c.IsHandleCreated, "F2");\r
770                         \r
771                         c.Close ();\r
772                         Assert.IsFalse (c.IsHandleCreated, "F3");\r
773                         \r
774                         c.Hide ();\r
775                         Assert.IsFalse (c.IsHandleCreated, "F4");\r
776                         \r
777                         c.LayoutMdi (MdiLayout.Cascade);\r
778                         Assert.IsFalse (c.IsHandleCreated, "F5");\r
779 \r
780 #if NET_2_0 && !__MonoCS__\r
781                         c.PerformAutoScale ();\r
782                         Assert.IsFalse (c.IsHandleCreated, "F6"); \r
783 #endif\r
784                         \r
785                         c.PerformLayout ();\r
786                         Assert.IsFalse (c.IsHandleCreated, "F7");\r
787                         \r
788                         c.AddOwnedForm (new Form ());\r
789                         c.RemoveOwnedForm (c.OwnedForms [c.OwnedForms.Length - 1]);\r
790                         Assert.IsFalse (c.IsHandleCreated, "F8");\r
791                         \r
792                         c.ScrollControlIntoView (null);\r
793                         Assert.IsFalse (c.IsHandleCreated, "F9");\r
794                         \r
795                         c.SetAutoScrollMargin (7, 13);\r
796                         Assert.IsFalse (c.IsHandleCreated, "F10");\r
797                         \r
798                         c.SetDesktopBounds (-1, -1, 144, 169);\r
799                         Assert.IsFalse (c.IsHandleCreated, "F11");\r
800                         \r
801                         c.SetDesktopLocation (7, 13);\r
802                         Assert.IsFalse (c.IsHandleCreated, "F12");\r
803 \r
804 #if NET_2_0\r
805                         c = new Form ();\r
806                         c.Show (null);\r
807                         Assert.IsTrue (c.IsHandleCreated, "F13");\r
808                         c.Close ();\r
809                         c = new Form (); \r
810 #endif\r
811                         \r
812                         //c.ShowDialog ()\r
813                         \r
814                         c.ToString ();\r
815                         Assert.IsFalse (c.IsHandleCreated, "F14");\r
816                         \r
817                         c.Validate ();\r
818                         Assert.IsFalse (c.IsHandleCreated, "F15");\r
819 \r
820 #if NET_2_0 && !__MonoCS__\r
821                         c.ValidateChildren ();\r
822                         Assert.IsFalse (c.IsHandleCreated, "F16"); \r
823 #endif\r
824                 }\r
825 \r
826                 [Test]\r
827                 public void Show ()\r
828                 {\r
829                         Form c = new Form ();\r
830                         Assert.IsFalse (c.IsHandleCreated, "A1");\r
831                         c.HandleCreated += new EventHandler (HandleCreated_WriteStackTrace);\r
832                         c.Show ();\r
833                         Assert.IsTrue (c.IsHandleCreated, "A2");\r
834                         c.Dispose ();\r
835                 }\r
836 \r
837                 void HandleCreated_WriteStackTrace (object sender, EventArgs e)\r
838                 {\r
839                         Console.WriteLine (Environment.StackTrace);\r
840                 }\r
841 \r
842                 public delegate void InvokeDelegate ();\r
843                 public void InvokeMethod () { invokeform.Text = "methodinvoked"; }\r
844 \r
845                 [Test]\r
846                 [ExpectedException (typeof (InvalidOperationException))]\r
847                 public void InvokeIOE ()\r
848                 {\r
849                         Form c = new Form ();\r
850                         c.Invoke (new InvokeDelegate (InvokeMethod));\r
851                 }\r
852 \r
853                 private class ProtectedPropertyForm : Form\r
854                 {\r
855 #if NET_2_0\r
856                         public SizeF PublicAutoScaleFactor { get { return base.AutoScaleFactor; } } \r
857 #endif\r
858 #if !__MonoCS__ && NET_2_0\r
859                         public bool PublicCanRaiseEvents { get { return base.CanRaiseEvents; } }\r
860 #endif\r
861                         public CreateParams PublicCreateParams { get { return base.CreateParams; } }\r
862 #if NET_2_0\r
863                         public Cursor PublicDefaultCursor { get { return base.DefaultCursor; } }\r
864 #endif\r
865                         public ImeMode PublicDefaultImeMode { get { return base.DefaultImeMode; } }\r
866 #if NET_2_0\r
867                         public Padding PublicDefaultMargin { get { return base.DefaultMargin; } }\r
868                         public Size PublicDefaultMaximumSize { get { return base.DefaultMaximumSize; } }\r
869                         public Size PublicDefaultMinimumSize { get { return base.DefaultMinimumSize; } }\r
870                         public Padding PublicDefaultPadding { get { return base.DefaultPadding; } }\r
871                         public Size PublicDefaultSize { get { return base.DefaultSize; } }\r
872 #endif\r
873                         public bool PublicDesignMode { get {return base.DesignMode; } }\r
874 #if NET_2_0\r
875                         public bool PublicDoubleBuffered { get { return base.DoubleBuffered; } set { base.DoubleBuffered = value; } }\r
876 #endif\r
877                         public EventHandlerList PublicEvents { get {return base.Events; } }                     \r
878                         public int PublicFontHeight { get { return base.FontHeight; } set { base.FontHeight = value; } }\r
879                         public bool PublicHScroll { get {return base.HScroll; } set { base.HScroll = value;} }\r
880                         public Rectangle PublicMaximizedBounds { get {return base.MaximizedBounds; } set { base.MaximizedBounds = value; }}\r
881                         public bool PublicRenderRightToLeft { get { return base.RenderRightToLeft; } }\r
882                         public bool PublicResizeRedraw { get { return base.ResizeRedraw; } set { base.ResizeRedraw = value; } }\r
883 #if !__MonoCS__ && NET_2_0\r
884                         public bool PublicScaleChildren { get { return base.ScaleChildren; } }\r
885 #endif\r
886                         public bool PublicShowFocusCues { get { return base.ShowFocusCues; } }\r
887                         public bool PublicShowKeyboardCues { get { return base.ShowKeyboardCues; } }\r
888 #if NET_2_0\r
889                         public bool PublicShowWithoutActivation { get { return base.ShowWithoutActivation; } } \r
890 #endif\r
891                         public bool PublicVScroll { get { return base.VScroll; } set { base.VScroll = value; } }\r
892                 }\r
893 \r
894                 [Test]\r
895                 public void TestProtectedMethods ()\r
896                 {\r
897                         // Protected Methods that force Handle creation:\r
898                         // - CreateAccessibilityInstance ()\r
899                         // - CreateHandle ()\r
900                         // - IsInputChar ()\r
901                         // - Select ()\r
902                         // - SetVisibleCore ()\r
903                         // - CenterToParent ()\r
904                         // - CenterToScreen ()\r
905                         ProtectedMethodsForm c = new ProtectedMethodsForm ();\r
906 \r
907                         c.PublicAccessibilityNotifyClients (AccessibleEvents.Focus, 0);\r
908 #if NET_2_0\r
909                         Assert.IsFalse (c.IsHandleCreated, "A1");\r
910 #else\r
911                         Assert.IsTrue (c.IsHandleCreated, "A1");\r
912 #endif\r
913                         c.PublicCreateAccessibilityInstance ();\r
914                         Assert.IsTrue (c.IsHandleCreated, "A2");\r
915                         c = new ProtectedMethodsForm ();\r
916                         c.PublicCreateControlsInstance ();\r
917                         Assert.IsFalse (c.IsHandleCreated, "A3");\r
918                         c.PublicCreateHandle ();\r
919                         Assert.IsTrue (c.IsHandleCreated, "A4");\r
920                         c = new ProtectedMethodsForm ();\r
921                         c.PublicDestroyHandle ();\r
922                         Assert.IsFalse (c.IsHandleCreated, "A5");\r
923                         c = new ProtectedMethodsForm ();\r
924 #if NET_2_0\r
925                         c.PublicGetAccessibilityObjectById (0);\r
926                         Assert.IsFalse (c.IsHandleCreated, "A6");\r
927 #endif\r
928 #if !__MonoCS__ && NET_2_0\r
929                         c.PublicGetAutoSizeMode ();\r
930                         Assert.IsFalse (c.IsHandleCreated, "A7");\r
931                         c.PublicGetScaledBounds (new Rectangle (0, 0, 100, 100), new SizeF (1.5f, 1.5f), BoundsSpecified.All);\r
932                         Assert.IsFalse (c.IsHandleCreated, "A8");\r
933 #endif\r
934                         c.PublicGetStyle (ControlStyles.FixedHeight);\r
935                         Assert.IsFalse (c.IsHandleCreated, "A9");\r
936                         c.PublicGetTopLevel ();\r
937                         Assert.IsFalse (c.IsHandleCreated, "A10");\r
938                         c.PublicInitLayout ();\r
939                         Assert.IsFalse (c.IsHandleCreated, "A11");\r
940                         c.PublicInvokeGotFocus (c, EventArgs.Empty);\r
941                         Assert.IsFalse (c.IsHandleCreated, "A12");\r
942                         c.PublicInvokeLostFocus (c, EventArgs.Empty);\r
943                         Assert.IsFalse (c.IsHandleCreated, "A13");\r
944                         c.PublicInvokeOnClick (c, EventArgs.Empty);\r
945                         Assert.IsFalse (c.IsHandleCreated, "A14");\r
946                         c.PublicInvokePaint (c, new PaintEventArgs (Graphics.FromImage (new Bitmap (1, 1)), Rectangle.Empty));\r
947                         Assert.IsFalse (c.IsHandleCreated, "A15");\r
948                         c.PublicInvokePaintBackground (c, new PaintEventArgs (Graphics.FromImage (new Bitmap (1, 1)), Rectangle.Empty));\r
949                         Assert.IsFalse (c.IsHandleCreated, "A16");\r
950                         c.PublicIsInputChar ('c');\r
951                         Assert.IsTrue (c.IsHandleCreated, "A17");\r
952                         c = new ProtectedMethodsForm ();\r
953                         c.PublicIsInputKey (Keys.B);\r
954                         Assert.IsFalse (c.IsHandleCreated, "A18");\r
955                         c.PublicNotifyInvalidate (Rectangle.Empty);\r
956                         Assert.IsFalse (c.IsHandleCreated, "A19");\r
957                         Form f = new Form ();\r
958                         c.TopLevel = false;\r
959                         f.Controls.Add (c);\r
960                         c.PublicOnVisibleChanged (EventArgs.Empty);\r
961                         Assert.IsFalse (c.IsHandleCreated, "A20");\r
962                         c = new ProtectedMethodsForm ();\r
963                         c.PublicRaiseDragEvent (null, null);\r
964                         Assert.IsFalse (c.IsHandleCreated, "A21");\r
965                         c.PublicRaiseKeyEvent (null, null);\r
966                         Assert.IsFalse (c.IsHandleCreated, "A22");\r
967                         c.PublicRaiseMouseEvent (null, null);\r
968                         Assert.IsFalse (c.IsHandleCreated, "A23");\r
969                         c.PublicRaisePaintEvent (null, null);\r
970                         Assert.IsFalse (c.IsHandleCreated, "A24");\r
971                         c.PublicRecreateHandle ();\r
972                         Assert.IsFalse (c.IsHandleCreated, "A25");\r
973                         c.PublicResetMouseEventArgs ();\r
974                         Assert.IsFalse (c.IsHandleCreated, "A26");\r
975                         c.PublicRtlTranslateAlignment (ContentAlignment.BottomLeft);\r
976                         Assert.IsFalse (c.IsHandleCreated, "A27");\r
977                         c.PublicRtlTranslateContent (ContentAlignment.BottomLeft);\r
978                         Assert.IsFalse (c.IsHandleCreated, "A28");\r
979                         c.PublicRtlTranslateHorizontal (HorizontalAlignment.Left);\r
980                         Assert.IsFalse (c.IsHandleCreated, "A29");\r
981                         c.PublicRtlTranslateLeftRight (LeftRightAlignment.Left);\r
982                         Assert.IsFalse (c.IsHandleCreated, "A30");\r
983 #if !__MonoCS__ && NET_2_0\r
984                         c.PublicScaleControl (new SizeF (1.5f, 1.5f), BoundsSpecified.All);\r
985                         Assert.IsFalse (c.IsHandleCreated, "A31");\r
986 #endif\r
987                         c.PublicScaleCore (1.5f, 1.5f);\r
988                         Assert.IsFalse (c.IsHandleCreated, "A32");\r
989                         c.PublicSelect ();\r
990                         Assert.IsTrue (c.IsHandleCreated, "A33");\r
991                         c = new ProtectedMethodsForm ();\r
992 #if !__MonoCS__ && NET_2_0\r
993                         c.PublicSetAutoSizeMode (AutoSizeMode.GrowAndShrink);\r
994                         Assert.IsFalse (c.IsHandleCreated, "A34");\r
995 #endif\r
996                         c.PublicSetBoundsCore (0, 0, 100, 100, BoundsSpecified.All);\r
997                         Assert.IsFalse (c.IsHandleCreated, "A35");\r
998                         c.PublicSetClientSizeCore (122, 122);\r
999                         Assert.IsFalse (c.IsHandleCreated, "A36");\r
1000                         c.PublicSetStyle (ControlStyles.FixedHeight, true);\r
1001                         Assert.IsFalse (c.IsHandleCreated, "A37");\r
1002                         c.PublicSetTopLevel (true);\r
1003                         Assert.IsFalse (c.IsHandleCreated, "A38");\r
1004                         c = new ProtectedMethodsForm ();\r
1005                         \r
1006                         c.PublicSetVisibleCore (true);\r
1007                         Assert.IsTrue (c.IsHandleCreated, "A39");\r
1008                         c = new ProtectedMethodsForm ();\r
1009 #if NET_2_0\r
1010                         c.PublicSizeFromClientSize (new Size (160, 160));\r
1011                         Assert.IsFalse (c.IsHandleCreated, "A40");\r
1012 #endif\r
1013                         c.PublicUpdateBounds ();\r
1014                         Assert.IsFalse (c.IsHandleCreated, "A41");\r
1015                         c.PublicUpdateStyles ();\r
1016                         Assert.IsFalse (c.IsHandleCreated, "A42");\r
1017                         c.PublicUpdateZOrder ();\r
1018                         Assert.IsFalse (c.IsHandleCreated, "A43");\r
1019                         \r
1020                         \r
1021                         // Form\r
1022                         c = new ProtectedMethodsForm ();\r
1023                         c.IsMdiContainer = true;\r
1024                         new Form ().MdiParent = c;\r
1025                         new Form ().MdiParent = c;\r
1026                         c.PublicActivateMdiChild (c.MdiChildren [0]);\r
1027                         c.PublicActivateMdiChild (c.MdiChildren [1]);\r
1028                         Assert.IsFalse (c.IsHandleCreated, "F1");\r
1029                         c.Dispose ();\r
1030                         c = new ProtectedMethodsForm();\r
1031 \r
1032                         c.PublicAdjustFormScrollbars (true);\r
1033                         Assert.IsFalse (c.IsHandleCreated, "F2");\r
1034                         \r
1035                         c.PublicCenterToParent ();\r
1036                         Assert.IsTrue (c.IsHandleCreated, "F3");\r
1037                         c = new ProtectedMethodsForm ();\r
1038                         \r
1039                         c.PublicCenterToScreen ();\r
1040                         Assert.IsTrue (c.IsHandleCreated, "F4");\r
1041                         c = new ProtectedMethodsForm ();\r
1042                         \r
1043                         c.PublicGetScrollState (1);\r
1044                         Assert.IsFalse (c.IsHandleCreated, "F5");\r
1045                         \r
1046                         c.PublicGetService (typeof (int));\r
1047                         Assert.IsFalse (c.IsHandleCreated, "F6");\r
1048 \r
1049                         Message m = new Message ();\r
1050                         c.PublicProcessCmdKey (ref m, Keys.C);\r
1051                         Assert.IsFalse (c.IsHandleCreated, "F7");\r
1052                         \r
1053                         c.PublicProcessDialogChar ('p');\r
1054                         Assert.IsFalse (c.IsHandleCreated, "F8");\r
1055                         \r
1056                         c.PublicProcessDialogKey (Keys.D);\r
1057                         Assert.IsFalse (c.IsHandleCreated, "F9");\r
1058                         \r
1059                         c.PublicProcessKeyEventArgs (ref m);\r
1060                         Assert.IsFalse (c.IsHandleCreated, "F10");\r
1061                         \r
1062                         c.PublicProcessKeyMessage (ref m);\r
1063                         Assert.IsFalse (c.IsHandleCreated, "F11");\r
1064                         \r
1065                         c.PublicProcessKeyPreview (ref m);\r
1066                         Assert.IsFalse (c.IsHandleCreated, "F12");\r
1067 \r
1068                         c.PublicProcessMnemonic ('Z');\r
1069                         Assert.IsFalse (c.IsHandleCreated, "F13");\r
1070                         \r
1071                         c.PublicProcessTabKey (true);\r
1072                         Assert.IsFalse (c.IsHandleCreated, "F14");\r
1073 \r
1074 #if NET_2_0 && !__MonoCS__\r
1075                         c.Controls.Add (new Control ());\r
1076                         c.PublicScrollToControl (c.Controls [0]);\r
1077                         Assert.IsFalse (c.IsHandleCreated, "F15");\r
1078                         c.Dispose ();\r
1079                         c = new ProtectedMethodsForm (); \r
1080 #endif\r
1081                         \r
1082                         c.PublicSelect (true, true);\r
1083                         Assert.IsTrue (c.IsHandleCreated, "F16");\r
1084                         c = new ProtectedMethodsForm();\r
1085                         \r
1086                         c.PublicSetDisplayRectLocation (13, 17);\r
1087                         Assert.IsFalse (c.IsHandleCreated, "F17");\r
1088                         \r
1089                         c.PublicSetScrollState (5, false);\r
1090                         Assert.IsFalse (c.IsHandleCreated, "F18");\r
1091                         \r
1092                         c.PublicUpdateDefaultButton (3, false);\r
1093                         Assert.IsFalse (c.IsHandleCreated, "F19");\r
1094                 }\r
1095 \r
1096                 private class ProtectedMethodsForm : Form\r
1097                 {\r
1098                         public void PublicAccessibilityNotifyClients (AccessibleEvents accEvent, int childID) { base.AccessibilityNotifyClients (accEvent, childID); }\r
1099                         public void PublicActivateMdiChild (Form form) { base.ActivateMdiChild (form); }\r
1100                         public void PublicAdjustFormScrollbars (bool displayScrollbars) {base.AdjustFormScrollbars (displayScrollbars); }\r
1101                         public void PublicCenterToParent () { base.CenterToParent (); }\r
1102                         public void PublicCenterToScreen () { base.CenterToScreen (); }\r
1103                         public void PublicCreateAccessibilityInstance () { base.CreateAccessibilityInstance (); }\r
1104                         public void PublicCreateControlsInstance () { base.CreateControlsInstance (); }\r
1105                         public void PublicCreateHandle () { base.CreateHandle (); }\r
1106                         public void PublicDestroyHandle () { base.DestroyHandle (); }\r
1107 #if NET_2_0\r
1108                         public AccessibleObject PublicGetAccessibilityObjectById (int objectId) { return base.GetAccessibilityObjectById (objectId); }\r
1109 #endif\r
1110 #if !__MonoCS__ && NET_2_0\r
1111                         public AutoSizeMode PublicGetAutoSizeMode () { return base.GetAutoSizeMode (); }\r
1112                         public Rectangle PublicGetScaledBounds (Rectangle bounds, SizeF factor, BoundsSpecified specified) { return base.GetScaledBounds (bounds, factor, specified); }\r
1113 #endif\r
1114                         public bool PublicGetScrollState (int bit) { return base.GetScrollState (bit); }\r
1115                         public object PublicGetService (Type service) { return base.GetService (service); }\r
1116                         public bool PublicGetStyle (ControlStyles flag) { return base.GetStyle (flag); }\r
1117                         public bool PublicGetTopLevel () { return base.GetTopLevel (); }\r
1118                         public void PublicInitLayout () { base.InitLayout (); }\r
1119                         public void PublicInvokeGotFocus (Control toInvoke, EventArgs e) { base.InvokeGotFocus (toInvoke, e); }\r
1120                         public void PublicInvokeLostFocus (Control toInvoke, EventArgs e) { base.InvokeLostFocus (toInvoke, e); }\r
1121                         public void PublicInvokeOnClick (Control toInvoke, EventArgs e) { base.InvokeOnClick (toInvoke, e); }\r
1122                         public void PublicInvokePaint (Control c, PaintEventArgs e) { base.InvokePaint (c, e); }\r
1123                         public void PublicInvokePaintBackground (Control c, PaintEventArgs e) { base.InvokePaintBackground (c, e); }\r
1124                         public bool PublicIsInputChar (char charCode) { return base.IsInputChar (charCode); }\r
1125                         public bool PublicIsInputKey (Keys keyData) { return base.IsInputKey (keyData); }\r
1126                         public void PublicNotifyInvalidate (Rectangle invalidatedArea) { base.NotifyInvalidate (invalidatedArea); }\r
1127                         public void PublicOnVisibleChanged (EventArgs e) { base.OnVisibleChanged (e); }\r
1128                         public void PublicProcessCmdKey (ref Message msg, Keys keyData) { base.ProcessCmdKey (ref msg, keyData); }\r
1129                         public void PublicProcessDialogChar (char charCode) { base.ProcessDialogChar (charCode); }\r
1130                         public void PublicProcessDialogKey (Keys keyData) { base.ProcessDialogKey (keyData); }\r
1131                         public void PublicProcessKeyEventArgs (ref Message m) { base.ProcessKeyEventArgs (ref m); }\r
1132                         public void PublicProcessKeyMessage (ref Message m) { base.ProcessKeyMessage (ref m); }\r
1133                         public void PublicProcessKeyPreview (ref Message m) { base.ProcessKeyPreview (ref m); }\r
1134                         public void PublicProcessMnemonic (char charCode) { base.ProcessMnemonic (charCode); }\r
1135                         public void PublicProcessTabKey (bool forward) { base.ProcessTabKey (forward); }\r
1136                         public void PublicRaiseDragEvent (Object key, DragEventArgs e) { base.RaiseDragEvent (key, e); }\r
1137                         public void PublicRaiseKeyEvent (Object key, KeyEventArgs e) { base.RaiseKeyEvent (key, e); }\r
1138                         public void PublicRaiseMouseEvent (Object key, MouseEventArgs e) { base.RaiseMouseEvent (key, e); }\r
1139                         public void PublicRaisePaintEvent (Object key, PaintEventArgs e) { base.RaisePaintEvent (key, e); }\r
1140                         public void PublicRecreateHandle () { base.RecreateHandle (); }\r
1141                         public void PublicResetMouseEventArgs () { base.ResetMouseEventArgs (); }\r
1142                         public ContentAlignment PublicRtlTranslateAlignment (ContentAlignment align) { return base.RtlTranslateAlignment (align); }\r
1143                         public ContentAlignment PublicRtlTranslateContent (ContentAlignment align) { return base.RtlTranslateContent (align); }\r
1144                         public HorizontalAlignment PublicRtlTranslateHorizontal (HorizontalAlignment align) { return base.RtlTranslateHorizontal (align); }\r
1145                         public LeftRightAlignment PublicRtlTranslateLeftRight (LeftRightAlignment align) { return base.RtlTranslateLeftRight (align); }\r
1146 #if !__MonoCS__ && NET_2_0\r
1147                         public void PublicScaleControl (SizeF factor, BoundsSpecified specified) { base.ScaleControl (factor, specified); }\r
1148 #endif\r
1149                         public void PublicScaleCore (float dx, float dy) { base.ScaleCore (dx, dy); }\r
1150 #if NET_2_0 && !__MonoCS__\r
1151                         public void PublicScrollToControl (Control activeControl) { base.ScrollToControl (activeControl); } \r
1152 #endif\r
1153                         public void PublicSelect () { base.Select (); }\r
1154                         public void PublicSelect (bool directed, bool forward) { base.Select (directed, forward); }\r
1155 \r
1156 #if !__MonoCS__ && NET_2_0\r
1157                         public void PublicSetAutoSizeMode (AutoSizeMode mode) { base.SetAutoSizeMode (mode); }\r
1158 #endif\r
1159                         public void PublicSetBoundsCore (int x, int y, int width, int height, BoundsSpecified specified) { base.SetBoundsCore (x, y, width, height, specified); }\r
1160                         public void PublicSetClientSizeCore (int x, int y) { base.SetClientSizeCore (x, y); }\r
1161                         public void PublicSetDisplayRectLocation (int x, int y) { base.SetDisplayRectLocation (x, y); }\r
1162                         public void PublicSetScrollState (int bit, bool value) { base.SetScrollState (bit, value); }\r
1163                         public void PublicSetStyle (ControlStyles flag, bool value) { base.SetStyle (flag, value); }\r
1164                         public void PublicSetTopLevel (bool value) { base.SetTopLevel (value); }\r
1165                         public void PublicSetVisibleCore (bool value) { base.SetVisibleCore (value); }\r
1166 #if NET_2_0\r
1167                         public Size PublicSizeFromClientSize (Size clientSize) { return base.SizeFromClientSize (clientSize); }\r
1168 #endif\r
1169                         public void PublicUpdateBounds () { base.UpdateBounds (); }\r
1170                         public void PublicUpdateDefaultButton (int bit, bool value) { base.UpdateDefaultButton (); }\r
1171                         public void PublicUpdateStyles () { base.UpdateStyles (); }\r
1172                         public void PublicUpdateZOrder () { base.UpdateZOrder (); }\r
1173                 }\r
1174         }\r
1175 }