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