2006-12-19 Daniel Nauck <dna@mono-project.de>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / SplitContainerTests.cs
1 #if NET_2_0\r
2 using System;\r
3 using NUnit.Framework;\r
4 using System.Windows.Forms;\r
5 using System.Drawing;\r
6 \r
7 namespace ProfessionalColorTest\r
8 {\r
9         [TestFixture]\r
10         public class SplitContainerTests\r
11         {\r
12                 [Test]\r
13                 public void TestSplitContainerConstruction ()\r
14                 {\r
15                         SplitContainer sc = new SplitContainer ();\r
16 \r
17                         Assert.AreEqual (new Size (150, 100), sc.Size, "A1");\r
18                         Assert.AreEqual (FixedPanel.None, sc.FixedPanel, "A2");\r
19                         Assert.AreEqual (false, sc.IsSplitterFixed, "A3");\r
20                         Assert.AreEqual (Orientation.Vertical, sc.Orientation, "A4");\r
21                         Assert.AreEqual (false, sc.Panel1Collapsed, "A6");\r
22                         Assert.AreEqual (25, sc.Panel1MinSize, "A7");\r
23                         Assert.AreEqual (false, sc.Panel2Collapsed, "A9");\r
24                         Assert.AreEqual (25, sc.Panel2MinSize, "A10");\r
25                         Assert.AreEqual (50, sc.SplitterDistance, "A11");\r
26                         Assert.AreEqual (1, sc.SplitterIncrement, "A12");\r
27                         Assert.AreEqual (new Rectangle(50, 0, 4, 100), sc.SplitterRectangle, "A13");\r
28                         Assert.AreEqual (4, sc.SplitterWidth, "A14");\r
29                         Assert.AreEqual (BorderStyle.None, sc.BorderStyle, "A14");\r
30                         Assert.AreEqual (DockStyle.None, sc.Dock, "A15");\r
31                 }\r
32                 \r
33                 [Test]\r
34                 public void TestNotReleventProperties()\r
35                 {\r
36                         // (MSDN lists are the following as "This property is not relevant to this class.")\r
37                         SplitContainer sc = new SplitContainer ();\r
38                         \r
39                         Assert.AreEqual (false, sc.AutoScroll, "B1");\r
40                         sc.AutoScroll = true;\r
41                         Assert.AreEqual (false, sc.AutoScroll, "B1-2");\r
42 \r
43                         Assert.AreEqual (new Size(0,0), sc.AutoScrollMargin, "B2");\r
44                         sc.AutoScrollMargin = new Size (100, 100);\r
45                         Assert.AreEqual (new Size (100,100), sc.AutoScrollMargin, "B2-2");\r
46 \r
47                         Assert.AreEqual (new Size (0, 0), sc.AutoScrollMinSize, "B3");\r
48                         sc.AutoScrollMinSize = new Size (100, 100);\r
49                         Assert.AreEqual (new Size (100, 100), sc.AutoScrollMinSize, "B3-2");\r
50 \r
51                         //Assert.AreEqual (new Point (0, 0), sc.AutoScrollOffset, "B4");\r
52                         //sc.AutoScrollOffset = new Point (100, 100);\r
53                         //Assert.AreEqual (new Point (100, 100), sc.AutoScrollOffset, "B4-2");\r
54 \r
55                         Assert.AreEqual (new Point (0, 0), sc.AutoScrollPosition, "B5");\r
56                         sc.AutoScrollPosition = new Point (100, 100);\r
57                         Assert.AreEqual (new Point (0, 0), sc.AutoScrollPosition, "B5-2");\r
58 \r
59                         Assert.AreEqual (false, sc.AutoSize, "B6");\r
60                         sc.AutoSize = true;\r
61                         Assert.AreEqual (true, sc.AutoSize, "B6-2");\r
62 \r
63                         //Assert.AreEqual (ImageLayout.Tile, sc.BackgroundImageLayout, "B7");\r
64                         //sc.BackgroundImageLayout =  ImageLayout.Stretch;\r
65                         //Assert.AreEqual (ImageLayout.Stretch, sc.BackgroundImageLayout, "B7-2");\r
66 \r
67                         Assert.AreEqual (null, sc.BindingContext, "B8");\r
68                         sc.BindingContext = new BindingContext();\r
69                         Assert.AreEqual ("System.Windows.Forms.BindingContext", sc.BindingContext.ToString (), "B8-2");\r
70 \r
71                         Assert.AreEqual (new Padding(0), sc.Padding, "B10");\r
72                         sc.Padding = new Padding (7);\r
73                         Assert.AreEqual (new Padding (7), sc.Padding, "B10-2");\r
74 \r
75                         Assert.AreEqual (String.Empty, sc.Text, "B11");\r
76                         sc.Text = "Hello";\r
77                         Assert.AreEqual ("Hello", sc.Text, "B11-2");\r
78 \r
79                 }\r
80 \r
81                 [Test]\r
82                 public void TestRelevantProperties ()\r
83                 {\r
84                         SplitContainer sc = new SplitContainer ();\r
85                         \r
86                         sc.BorderStyle = BorderStyle.FixedSingle;\r
87                         Assert.AreEqual (BorderStyle.FixedSingle, sc.BorderStyle, "C1");\r
88 \r
89                         sc.Dock =  DockStyle.Fill;\r
90                         Assert.AreEqual (DockStyle.Fill, sc.Dock, "C2");\r
91 \r
92                         sc.FixedPanel = FixedPanel.Panel1;\r
93                         Assert.AreEqual (FixedPanel.Panel1, sc.FixedPanel, "C3");\r
94 \r
95                         sc.IsSplitterFixed = true;\r
96                         Assert.AreEqual (true, sc.IsSplitterFixed, "C4");\r
97 \r
98                         sc.Orientation = Orientation.Horizontal;\r
99                         Assert.AreEqual (Orientation.Horizontal, sc.Orientation, "C5");\r
100 \r
101                         sc.Panel1Collapsed = true;\r
102                         Assert.AreEqual (true, sc.Panel1Collapsed, "C6");\r
103                         \r
104                         sc.Panel1MinSize = 10;\r
105                         Assert.AreEqual (10, sc.Panel1MinSize, "C7");\r
106 \r
107                         sc.Panel2Collapsed = true;\r
108                         Assert.AreEqual (true, sc.Panel2Collapsed, "C8");\r
109 \r
110                         sc.Panel2MinSize = 10;\r
111                         Assert.AreEqual (10, sc.Panel2MinSize, "C9");\r
112 \r
113                         sc.SplitterDistance = 77;\r
114                         Assert.AreEqual (77, sc.SplitterDistance, "C10");\r
115                         \r
116                         sc.SplitterIncrement = 5;\r
117                         Assert.AreEqual (5, sc.SplitterIncrement, "C11");\r
118                         \r
119                         sc.SplitterWidth = 10;\r
120                         Assert.AreEqual (10, sc.SplitterWidth, "C12");\r
121                 }\r
122                 \r
123                 [Test]\r
124                 public void TestPanelProperties ()\r
125                 {\r
126                         SplitContainer sc = new SplitContainer ();\r
127                         SplitterPanel p = sc.Panel1;\r
128 \r
129                         Assert.AreEqual (AnchorStyles.Top | AnchorStyles.Left, p.Anchor, "D1");\r
130                         p.Anchor = AnchorStyles.None;\r
131                         Assert.AreEqual (AnchorStyles.None, p.Anchor, "D1-2");\r
132 \r
133                         Assert.AreEqual (false, p.AutoSize, "D2");\r
134                         p.AutoSize = true;\r
135                         Assert.AreEqual (true, p.AutoSize, "D2-2");\r
136 \r
137                         //Assert.AreEqual (AutoSizeMode.GrowOnly, p.AutoSizeMode, "D3");\r
138                         //p.AutoSizeMode = AutoSizeMode.GrowAndShrink;\r
139                         //Assert.AreEqual (AutoSizeMode.GrowOnly, p.AutoSizeMode, "D3-2");\r
140 \r
141                         Assert.AreEqual (BorderStyle.None, p.BorderStyle, "D4");\r
142                         p.BorderStyle = BorderStyle.FixedSingle;\r
143                         Assert.AreEqual (BorderStyle.FixedSingle, p.BorderStyle, "D4-2");\r
144 \r
145                         //Assert.AreEqual (DockStyle.None, p.Dock, "D5");\r
146                         //p.Dock = DockStyle.Left;\r
147                         //Assert.AreEqual (DockStyle.Left, p.Dock, "D5-2");\r
148 \r
149                         //Assert.AreEqual (new Point(0,0), p.Location, "D7");\r
150                         //p.Location = new Point (10, 10);\r
151                         //Assert.AreEqual (new Point (0, 0), p.Location, "D7-2");\r
152 \r
153                         Assert.AreEqual (new Size (0, 0), p.MaximumSize, "D8");\r
154                         p.MaximumSize = new Size (10, 10);\r
155                         Assert.AreEqual (new Size (10, 10), p.MaximumSize, "D8-2");\r
156 \r
157                         Assert.AreEqual (new Size (0, 0), p.MinimumSize, "D9");\r
158                         p.MinimumSize = new Size (10, 10);\r
159                         Assert.AreEqual (new Size (10, 10), p.MinimumSize, "D9-2");\r
160 \r
161                         Assert.AreEqual (String.Empty, p.Name, "D10");\r
162                         p.Name = "MyPanel";\r
163                         Assert.AreEqual ("MyPanel", p.Name, "D10-2");\r
164 \r
165                         // We set a new max/min size above, so let's start over with new controls\r
166                         sc = new SplitContainer();\r
167                         p = sc.Panel1;\r
168                         \r
169                         //Assert.AreEqual (new Size (50, 100), p.Size, "D12");\r
170                         //p.Size = new Size (10, 10);\r
171                         //Assert.AreEqual (new Size (50, 100), p.Size, "D12-2");\r
172 \r
173                         //Assert.AreEqual (0, p.TabIndex, "D13");\r
174                         p.TabIndex = 4;\r
175                         Assert.AreEqual (4, p.TabIndex, "D13-2");\r
176 \r
177                         Assert.AreEqual (false, p.TabStop, "D14");\r
178                         p.TabStop = true;\r
179                         Assert.AreEqual (true, p.TabStop, "D14-2");\r
180 \r
181                         Assert.AreEqual (true, p.Visible, "D15");\r
182                         p.Visible = false;\r
183                         Assert.AreEqual (false, p.Visible, "D15-2");\r
184                 }\r
185                 \r
186                 [Test]\r
187                 [ExpectedException (typeof (NotSupportedException))]\r
188                 public void TestPanelHeightProperty ()\r
189                 {\r
190                         SplitContainer sc = new SplitContainer ();\r
191                         SplitterPanel p = sc.Panel1;\r
192 \r
193                         Assert.AreEqual (100, p.Height, "E1");\r
194                         \r
195                         p.Height = 200;\r
196                 }\r
197 \r
198                 [Test]\r
199                 [ExpectedException (typeof (NotSupportedException))]\r
200                 public void TestPanelWidthProperty ()\r
201                 {\r
202                         SplitContainer sc = new SplitContainer ();\r
203                         SplitterPanel p = sc.Panel1;\r
204 \r
205                         Assert.AreEqual (50, p.Width, "F1");\r
206 \r
207                         p.Width = 200;\r
208                 }\r
209 \r
210                 [Test]\r
211                 [ExpectedException (typeof (NotSupportedException))]\r
212                 public void TestPanelParentProperty ()\r
213                 {\r
214                         SplitContainer sc = new SplitContainer ();\r
215                         SplitContainer sc2 = new SplitContainer ();\r
216                         SplitterPanel p = sc.Panel1;\r
217 \r
218                         Assert.AreEqual (sc, p.Parent, "G1");\r
219 \r
220                         p.Parent = sc2;\r
221                 }\r
222 \r
223                 [Test]\r
224                 public void TestSplitterPosition ()\r
225                 {\r
226                         SplitContainer sc = new SplitContainer ();\r
227 \r
228                         Assert.AreEqual (new Rectangle (50, 0, 4, 100), sc.SplitterRectangle, "H1");\r
229                         \r
230                         sc.Orientation = Orientation.Horizontal;\r
231                         Assert.AreEqual (new Rectangle (0, 50, 150, 4), sc.SplitterRectangle, "H2");\r
232                 }\r
233 \r
234                 [Test]\r
235                 [Ignore ("SplitContainer.FixedPanel not yet implemented")]\r
236                 public void TestFixedPanelNone ()\r
237                 {\r
238                         SplitContainer sc = new SplitContainer ();\r
239 \r
240                         Assert.AreEqual (50, sc.SplitterDistance, "I1");\r
241 \r
242                         sc.Width = 300;\r
243                         Assert.AreEqual (100, sc.SplitterDistance, "I2");\r
244                 }\r
245                 \r
246                 [Test]\r
247                 [Ignore ("SplitContainer.FixedPanel not yet implemented")]\r
248                 public void TestFixedPanel1 ()\r
249                 {\r
250                         SplitContainer sc = new SplitContainer ();\r
251                         sc.FixedPanel = FixedPanel.Panel1;\r
252                         \r
253                         Assert.AreEqual (50, sc.SplitterDistance, "J1");\r
254 \r
255                         sc.Width = 300;\r
256                         Assert.AreEqual (50, sc.SplitterDistance, "J2");\r
257                 }\r
258                 \r
259                 [Test]\r
260                 [Ignore ("SplitContainer.FixedPanel not yet implemented")]\r
261                 public void TestFixedPanel2 ()\r
262                 {\r
263                         SplitContainer sc = new SplitContainer ();\r
264                         sc.FixedPanel = FixedPanel.Panel2;\r
265 \r
266                         Assert.AreEqual (50, sc.SplitterDistance, "K1");\r
267 \r
268                         sc.Width = 300;\r
269                         Assert.AreEqual (200, sc.SplitterDistance, "K2");\r
270                 }\r
271 \r
272                 [Test]\r
273                 public void TestSplitterDistance ()\r
274                 {\r
275                         SplitContainer sc = new SplitContainer ();\r
276 \r
277                         Assert.AreEqual (new Rectangle (50, 0, 4, 100), sc.SplitterRectangle, "L1");\r
278 \r
279                         sc.SplitterDistance = 100;\r
280                         Assert.AreEqual (new Rectangle (100, 0, 4, 100), sc.SplitterRectangle, "L2");\r
281                 }\r
282 \r
283                 [Test]\r
284                 public void TestSplitterWidth ()\r
285                 {\r
286                         SplitContainer sc = new SplitContainer ();\r
287 \r
288                         Assert.AreEqual (new Rectangle (50, 0, 4, 100), sc.SplitterRectangle, "M1");\r
289 \r
290                         sc.SplitterWidth = 10;\r
291                         Assert.AreEqual (new Rectangle (50, 0, 10, 100), sc.SplitterRectangle, "M2");\r
292                 }\r
293         }\r
294 }\r
295 #endif