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