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