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 [Category ("NotWorking")]
39 public void TabControlPropertyTest ()
41 Form myForm = new Form ();
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 (4, myTabControl.DisplayRectangle.X, "#D1");
52 Assert.AreEqual (4, myTabControl.DisplayRectangle.Y, "#D2");
53 Assert.AreEqual (192, myTabControl.DisplayRectangle.Width, "#D3");
54 Assert.AreEqual (92, myTabControl.DisplayRectangle.Height, "#D4");
55 Assert.AreEqual (TabDrawMode.Normal, myTabControl.DrawMode, "#D5");
58 Assert.AreEqual (false, myTabControl.HotTrack, "#H1");
61 Assert.AreEqual (null, myTabControl.ImageList, "#I1");
62 // It is environment dependent
63 //Assert.AreEqual (18, myTabControl.ItemSize.Height, "#I2");
64 Assert.AreEqual (0, myTabControl.ItemSize.Width, "#I3");
67 Assert.AreEqual (false, myTabControl.Multiline, "#M1");
70 Assert.AreEqual (6, myTabControl.Padding.X, "#P1");
71 Assert.AreEqual (3, myTabControl.Padding.Y, "#P1");
74 Assert.AreEqual (0, myTabControl.RowCount, "#R1");
77 Assert.AreEqual (-1, myTabControl.SelectedIndex, "#S1");
78 Assert.AreEqual (null, myTabControl.SelectedTab, "#S2");
79 Assert.AreEqual (false, myTabControl.ShowToolTips, "#S3");
80 Assert.AreEqual (TabSizeMode.Normal, myTabControl.SizeMode, "#S4");
83 Assert.AreEqual (0, myTabControl.TabCount, "#T1");
84 Assert.AreEqual (0, myTabControl.TabPages.Count, "#T2");
88 [Category ("NotWorking")]
89 public void GetTabRectTest ()
91 TabControl myTabControl = new TabControl ();
92 TabPage myTabPage = new TabPage();
93 myTabControl.Controls.Add(myTabPage);
94 myTabPage.TabIndex = 0;
95 Rectangle myTabRect = myTabControl.GetTabRect (0);
96 Assert.AreEqual (2, myTabRect.X, "#GetT1");
97 Assert.AreEqual (2, myTabRect.Y, "#GetT2");
98 Assert.AreEqual (42, myTabRect.Width, "#GetT3");
99 // It is environment dependent
100 //Assert.AreEqual (18, myTabRect.Height, "#GetT4");
104 public void ToStringTest ()
106 TabControl myTabControl = new TabControl ();
107 Assert.AreEqual ("System.Windows.Forms.TabControl, TabPages.Count: 0", myTabControl.ToString(), "#1");
111 public void ClearTabPagesTest ()
114 TabControl tab = new TabControl ();
115 tab.TabPages.Clear ();
116 Assert.AreEqual (-1, tab.SelectedIndex, "#A1");
117 Assert.AreEqual (0, tab.TabPages.Count, "#A2");
120 tab.Controls.Add (new TabPage ());
121 Assert.AreEqual (0, tab.SelectedIndex, "#B1");
122 Assert.AreEqual (1, tab.TabPages.Count, "#B2");
123 tab.TabPages.Clear();
124 Assert.AreEqual (-1, tab.SelectedIndex, "#B3");
125 Assert.AreEqual (0, tab.TabPages.Count, "#B4");
127 // multiple tab pages
128 tab.Controls.Add (new TabPage ());
129 tab.Controls.Add (new TabPage ());
130 tab.Controls.Add (new TabPage ());
131 Assert.AreEqual (0, tab.SelectedIndex, "#C1");
132 Assert.AreEqual (3, tab.TabPages.Count, "#C2");
133 tab.SelectedIndex = 1;
134 tab.TabPages.Clear ();
135 Assert.AreEqual (-1, tab.SelectedIndex, "#C3");
136 Assert.AreEqual (0, tab.TabPages.Count, "#C4");
140 public void SetSelectedIndex ()
143 TabControl c = new TabControl ();
146 c.TabPages.Add (new TabPage ());
147 c.TabPages.Add (new TabPage ());
148 Assert.AreEqual (0, c.SelectedIndex, "#1");
149 Form f = new Form ();
152 c.SelectedIndex = 2; // beyond the pages - ignored
153 Assert.AreEqual (0, c.SelectedIndex, "#2");
157 public void InputKeyTest ()
159 TabControlPoker p = new TabControlPoker ();
161 foreach (Keys key in Enum.GetValues (typeof (Keys))) {
169 Assert.IsFalse (p.CheckIsInputKey (key), "FALSE- " + key);
172 Assert.IsTrue (p.CheckIsInputKey (Keys.PageUp), "TRUE-pageup");
173 Assert.IsTrue (p.CheckIsInputKey (Keys.PageDown), "TRUE-pagedown");
174 Assert.IsTrue (p.CheckIsInputKey (Keys.End), "TRUE-end");
175 Assert.IsTrue (p.CheckIsInputKey (Keys.Home), "TRUE-home");
177 // Create the handle, things are a little different with
178 // the handle created
179 IntPtr dummy = p.Handle;
181 foreach (Keys key in Enum.GetValues (typeof (Keys))) {
193 Assert.IsFalse (p.CheckIsInputKey (key), "PH-FALSE- " + key);
196 Assert.IsTrue (p.CheckIsInputKey (Keys.Left), "PH-TRUE-left");
197 Assert.IsTrue (p.CheckIsInputKey (Keys.Right), "PH-TRUE-right");
198 Assert.IsTrue (p.CheckIsInputKey (Keys.Up), "PH-TRUE-up");
199 Assert.IsTrue (p.CheckIsInputKey (Keys.Down), "PH-TRUE-down");
200 Assert.IsTrue (p.CheckIsInputKey (Keys.PageUp), "PH-TRUE-pageup");
201 Assert.IsTrue (p.CheckIsInputKey (Keys.PageDown), "PH-TRUE-pagedown");
202 Assert.IsTrue (p.CheckIsInputKey (Keys.End), "PH-TRUE-end");
203 Assert.IsTrue (p.CheckIsInputKey (Keys.Home), "PH-TRUE-home");