2009-06-06 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ToolStripDropDownTest.cs
index bf8fdbf7310f8ba1ee78d7c50e9fbfe102dcda72..3c3f73ff424d314302e561f29a13a519c8edf58a 100644 (file)
@@ -36,7 +36,7 @@ using System.Windows.Forms;
 namespace MonoTests.System.Windows.Forms\r
 {\r
        [TestFixture]\r
-       public class ToolStripDropDownTests\r
+       public class ToolStripDropDownTests : TestHelper\r
        {\r
                [Test]\r
                public void Constructor ()\r
@@ -61,6 +61,34 @@ namespace MonoTests.System.Windows.Forms
                        Assert.AreEqual ("System.Windows.Forms.ToolStripDropDown+ToolStripDropDownAccessibleObject", tsdd.AccessibilityObject.GetType ().ToString (), "A14");\r
                }\r
 \r
+               [Test]\r
+               public void Layout ()\r
+               {\r
+                       ToolStripDropDown drop_down = new ToolStripDropDown ();\r
+                       drop_down.Items.Add (new ToolStripVariableSizeItem ());\r
+                       drop_down.PerformLayout ();\r
+\r
+                       // We want to be sure the DropDown is using the size provided\r
+                       // by GetPreferredSize, not DefaultSize, and since the extra padding/margin\r
+                       // can change by some few pixels, we do a light check\r
+                       Assert.AreEqual (true, drop_down.Size.Width >= 100, "A1");\r
+                       Assert.AreEqual (true, drop_down.Size.Height >= 100, "A2");\r
+               }\r
+\r
+               private class ToolStripVariableSizeItem : ToolStripItem {\r
+\r
+                       public override Size GetPreferredSize (Size constrainingSize) \r
+                       {\r
+                               return new Size (100, 100);\r
+                       }\r
+\r
+                       protected override Size DefaultSize {\r
+                               get {\r
+                                       return new Size (33, 33);\r
+                               }\r
+                       }\r
+               }\r
+\r
                [Test]\r
                public void ProtectedProperties ()\r
                {\r
@@ -138,10 +166,10 @@ namespace MonoTests.System.Windows.Forms
                        public new DockStyle DefaultDock { get { return base.DefaultDock; } }\r
                        public new Padding DefaultPadding { get { return base.DefaultPadding; } }\r
                        public new bool DefaultShowItemToolTips { get { return base.DefaultShowItemToolTips; } }\r
-                       //public new Size MaxItemSize { get { return base.MaxItemSize; } }\r
+                       public new Size MaxItemSize { get { return base.MaxItemSize; } }\r
                        public new bool TopMost { get { return base.TopMost; } }\r
                        public LayoutSettings PublicCreateLayoutSettings (ToolStripLayoutStyle style) { return base.CreateLayoutSettings (style); }\r
                }\r
        }\r
 }\r
-#endif
\ No newline at end of file
+#endif\r