-#if NET_2_0\r
using System;\r
using System.Text;\r
using NUnit.Framework;\r
Assert.AreEqual (new Rectangle (23, 79, 50, 50), b2.Bounds, "A2");\r
}\r
}\r
+\r
+ [TestFixture]\r
+ public class FlowPanelTests_AutoSize: TestHelper\r
+ {\r
+ private Form f;\r
+ protected override void SetUp ()\r
+ {\r
+ base.SetUp ();\r
+ f = new Form ();\r
+ f.AutoSize = false;\r
+ f.ClientSize = new Size (100, 300);\r
+ f.ShowInTaskbar = false;\r
+ f.Show ();\r
+ }\r
+\r
+ protected override void TearDown ()\r
+ {\r
+ f.Dispose ();\r
+ base.TearDown ();\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_ResizeIfLarger ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle (5, 5, 10, 10);\r
+ panel.Dock = DockStyle.None;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (192, panel.Width, "1"); // 2 * 90 + 4 * 3 margin\r
+ Assert.AreEqual (25, panel.Height, "2");\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_ResizeIfLarger_DockBottom ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle (5, 5, 10, 10);\r
+ panel.Dock = DockStyle.Bottom;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (250, panel.Top, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Width, panel.Width, "2");\r
+ Assert.AreEqual (50, panel.Height, "3");\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_DontResizeIfSmaller ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.None;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (100, panel.Width, "1");\r
+ Assert.AreEqual (100, panel.Height, "2");\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_ResizeIfSmaller_DockTop ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.Top;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add(panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (0, panel.Top, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Width, panel.Width, "2");\r
+ Assert.AreEqual (25, panel.Height, "3");\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_ResizeIfSmaller_DockBottom ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.Bottom;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add(panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (275, panel.Top, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Width, panel.Width, "2");\r
+ Assert.AreEqual (25, panel.Height, "3");\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_ResizeIfSmaller_DockLeft ()\r
+ {\r
+ f.ClientSize = new Size (300, 100);\r
+\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.Left;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (25, 90);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add(panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (0, panel.Left, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Height, panel.Height, "2");\r
+ Assert.AreEqual (31, panel.Width, "3"); // 25 + 2*3 margin\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowOnly_ResizeIfSmaller_DockRight ()\r
+ {\r
+ f.ClientSize = new Size (300, 100);\r
+\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowOnly;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.Right;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (25, 90);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add(panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (269, panel.Left, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Height, panel.Height, "2");\r
+ Assert.AreEqual (31, panel.Width, "3"); // 25 + 2*3 margin\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowAndShrink_ResizeIfSmaller ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowAndShrink;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle (5, 5, 100, 100);\r
+ panel.Dock = DockStyle.None;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add(panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (96, panel.Width, "1"); // 90 + 2*3 margin\r
+ Assert.AreEqual (25, panel.Height, "2");\r
+ }\r
+\r
+ [Test]\r
+ public void AutoSizeGrowAndShrink_ResizeIfSmaller_DockBottom ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = true;\r
+ panel.AutoSizeMode = AutoSizeMode.GrowAndShrink;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle (5, 5, 100, 100);\r
+ panel.Dock = DockStyle.Bottom;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (275, panel.Top, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Width, panel.Width, "2");\r
+ Assert.AreEqual (25, panel.Height, "3");\r
+ }\r
+\r
+ [Test]\r
+ public void NoAutoSize_DontResizeIfLarger ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = false;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle (5, 5, 10, 10);\r
+ panel.Dock = DockStyle.None;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (10, panel.Width, "1");\r
+ Assert.AreEqual (10, panel.Height, "2");\r
+ }\r
+\r
+ [Test]\r
+ public void NoAutoSize_DontResizeIfLarger_DockBottom ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = false;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle (5, 5, 10, 10);\r
+ panel.Dock = DockStyle.Bottom;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (290, panel.Top, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Width, panel.Width, "2");\r
+ Assert.AreEqual (10, panel.Height, "3");\r
+ }\r
+\r
+ [Test]\r
+ public void NoAutoSize_DontResizeIfSmaller ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = false;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.None;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add (panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (100, panel.Width, "1");\r
+ Assert.AreEqual (100, panel.Height, "2");\r
+ }\r
+\r
+ [Test]\r
+ public void NoAutoSize_DontResizeIfSmaller_DockBottom ()\r
+ {\r
+ var panel = new FlowLayoutPanel ();\r
+ panel.SuspendLayout ();\r
+ panel.AutoSize = false;\r
+ panel.WrapContents = true;\r
+ panel.Bounds = new Rectangle(5, 5, 100, 100);\r
+ panel.Dock = DockStyle.Bottom;\r
+\r
+ var c = new Label ();\r
+ c.Size = new Size (90, 25);\r
+ panel.Controls.Add (c);\r
+ f.Controls.Add(panel);\r
+ panel.ResumeLayout (true);\r
+\r
+ Assert.AreEqual (200, panel.Top, "1");\r
+ Assert.AreEqual (f.ClientRectangle.Width, panel.Width, "2");\r
+ Assert.AreEqual (100, panel.Height, "3");\r
+ }\r
+ }\r
}\r
-#endif\r