2 // TabControlTest.cs: Test cases for TabControl.
5 // Ritvik Mayank (mritvik@novell.com)
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
12 using System.Windows.Forms;
14 using NUnit.Framework;
19 namespace MonoTests.System.Windows.Forms {
22 public class TabControlTest
24 private class TabControlPoker : TabControl {
26 public bool CheckIsInputKey (Keys key)
28 return IsInputKey (key);
31 protected override void WndProc (ref Message m)
38 public void TabControlPropertyTest ()
40 Form myForm = new Form ();
41 myForm.ShowInTaskbar = false;
42 TabControl myTabControl = new TabControl ();
43 myTabControl.Visible = true;
44 myTabControl.Name = "Mono TabControl";
47 Assert.AreEqual (TabAlignment.Top, myTabControl.Alignment, "A1");
48 Assert.AreEqual (TabAppearance.Normal, myTabControl.Appearance, "#A2");
51 Assert.AreEqual (TabDrawMode.Normal, myTabControl.DrawMode, "#D5");
54 Assert.AreEqual (false, myTabControl.HotTrack, "#H1");
57 Assert.AreEqual (null, myTabControl.ImageList, "#I1");
60 Assert.AreEqual (false, myTabControl.Multiline, "#M1");
63 Assert.AreEqual (6, myTabControl.Padding.X, "#P1");
64 Assert.AreEqual (3, myTabControl.Padding.Y, "#P1");
67 Assert.AreEqual (0, myTabControl.RowCount, "#R1");
70 Assert.AreEqual (-1, myTabControl.SelectedIndex, "#S1");
71 Assert.AreEqual (null, myTabControl.SelectedTab, "#S2");
72 Assert.AreEqual (false, myTabControl.ShowToolTips, "#S3");
73 Assert.AreEqual (TabSizeMode.Normal, myTabControl.SizeMode, "#S4");
76 Assert.AreEqual (0, myTabControl.TabCount, "#T1");
77 Assert.AreEqual (0, myTabControl.TabPages.Count, "#T2");
83 [Category ("NotWorking")]
84 public void GetTabRectTest ()
86 TabControl myTabControl = new TabControl ();
87 TabPage myTabPage = new TabPage();
88 myTabControl.Controls.Add(myTabPage);
89 myTabPage.TabIndex = 0;
90 Rectangle myTabRect = myTabControl.GetTabRect (0);
91 Assert.AreEqual (2, myTabRect.X, "#GetT1");
92 Assert.AreEqual (2, myTabRect.Y, "#GetT2");
93 Assert.AreEqual (42, myTabRect.Width, "#GetT3");
94 // It is environment dependent
95 //Assert.AreEqual (18, myTabRect.Height, "#GetT4");
99 public void ToStringTest ()
101 TabControl myTabControl = new TabControl ();
102 Assert.AreEqual ("System.Windows.Forms.TabControl, TabPages.Count: 0", myTabControl.ToString(), "#1");
106 public void ClearTabPagesTest ()
109 TabControl tab = new TabControl ();
110 tab.TabPages.Clear ();
111 Assert.AreEqual (-1, tab.SelectedIndex, "#A1");
112 Assert.AreEqual (0, tab.TabPages.Count, "#A2");
115 tab.Controls.Add (new TabPage ());
116 Assert.AreEqual (0, tab.SelectedIndex, "#B1");
117 Assert.AreEqual (1, tab.TabPages.Count, "#B2");
118 tab.TabPages.Clear();
119 Assert.AreEqual (-1, tab.SelectedIndex, "#B3");
120 Assert.AreEqual (0, tab.TabPages.Count, "#B4");
122 // multiple tab pages
123 tab.Controls.Add (new TabPage ());
124 tab.Controls.Add (new TabPage ());
125 tab.Controls.Add (new TabPage ());
126 Assert.AreEqual (0, tab.SelectedIndex, "#C1");
127 Assert.AreEqual (3, tab.TabPages.Count, "#C2");
128 tab.SelectedIndex = 1;
129 tab.TabPages.Clear ();
130 Assert.AreEqual (-1, tab.SelectedIndex, "#C3");
131 Assert.AreEqual (0, tab.TabPages.Count, "#C4");
135 public void SetSelectedIndex ()
138 TabControl c = new TabControl ();
141 c.TabPages.Add (new TabPage ());
142 c.TabPages.Add (new TabPage ());
143 Assert.AreEqual (0, c.SelectedIndex, "#1");
144 Form f = new Form ();
145 f.ShowInTaskbar = false;
148 c.SelectedIndex = 2; // beyond the pages - ignored
149 Assert.AreEqual (0, c.SelectedIndex, "#2");
154 [Category ("NotWorking")]
155 public void InputKeyTest ()
157 TabControlPoker p = new TabControlPoker ();
159 foreach (Keys key in Enum.GetValues (typeof (Keys))) {
167 Assert.IsFalse (p.CheckIsInputKey (key), "FALSE- " + key);
170 Assert.IsTrue (p.CheckIsInputKey (Keys.PageUp), "TRUE-pageup");
171 Assert.IsTrue (p.CheckIsInputKey (Keys.PageDown), "TRUE-pagedown");
172 Assert.IsTrue (p.CheckIsInputKey (Keys.End), "TRUE-end");
173 Assert.IsTrue (p.CheckIsInputKey (Keys.Home), "TRUE-home");
175 // Create the handle, things are a little different with
176 // the handle created
177 IntPtr dummy = p.Handle;
179 foreach (Keys key in Enum.GetValues (typeof (Keys))) {
191 Assert.IsFalse (p.CheckIsInputKey (key), "PH-FALSE- " + key);
194 Assert.IsTrue (p.CheckIsInputKey (Keys.Left), "PH-TRUE-left");
195 Assert.IsTrue (p.CheckIsInputKey (Keys.Right), "PH-TRUE-right");
196 Assert.IsTrue (p.CheckIsInputKey (Keys.Up), "PH-TRUE-up");
197 Assert.IsTrue (p.CheckIsInputKey (Keys.Down), "PH-TRUE-down");
198 Assert.IsTrue (p.CheckIsInputKey (Keys.PageUp), "PH-TRUE-pageup");
199 Assert.IsTrue (p.CheckIsInputKey (Keys.PageDown), "PH-TRUE-pagedown");
200 Assert.IsTrue (p.CheckIsInputKey (Keys.End), "PH-TRUE-end");
201 Assert.IsTrue (p.CheckIsInputKey (Keys.Home), "PH-TRUE-home");
205 public void NoTabPages ()
207 Form form = new Form ();
208 TabControl tc = new TabControl ();
209 form.Controls.Add (tc);
210 form.ShowInTaskbar = false;