2 // Copyright (c) 2005 Novell, Inc.
5 // Ritvik Mayank (mritvik@novell.com)
9 using System.Windows.Forms;
11 using System.Reflection;
12 using NUnit.Framework;
14 namespace MonoTests.System.Windows.Forms
17 public class TextBoxTest
24 textBox = new TextBox();
28 [Category ("NotWorking")]
29 public void TextBoxBasePropertyTest ()
31 Assert.AreEqual (false, textBox.AcceptsTab, "#1a");
32 textBox.Multiline = true;
33 textBox.AcceptsTab = true;
34 // SendKeys.SendWait ("^%");
35 Assert.AreEqual (true, textBox.AcceptsTab, "#1b");
36 Assert.AreEqual (true, textBox.AutoSize, "#2");
37 Assert.AreEqual ("Window", textBox.BackColor.Name, "#3a");
38 textBox.BackColor = Color.White;
39 Assert.AreEqual ("White", textBox.BackColor.Name, "#3b");
40 Assert.AreEqual (null, textBox.BackgroundImage, "#4a");
42 textBox.BackgroundImage = Image.FromFile (gif);
43 // comparing image objects fails on MS .Net so using Size property
44 Assert.AreEqual (Image.FromFile(gif, true).Size, textBox.BackgroundImage.Size, "#4b");
46 Assert.AreEqual (BorderStyle.Fixed3D, textBox.BorderStyle, "#5");
47 Assert.AreEqual (false, textBox.CanUndo, "#6a");
49 Clipboard.SetDataObject ("TEST");
51 Assert.AreEqual (true, textBox.CanUndo, "#6b");
54 Assert.AreEqual (false, textBox.CanUndo, "#6c");
56 Assert.AreEqual ("WindowText", textBox.ForeColor.Name, "#7");
57 Assert.AreEqual (true, textBox.HideSelection, "#8");
58 Assert.AreEqual (1, textBox.Lines.Length, "#9");
59 Assert.AreEqual (32767, textBox.MaxLength, "#10");
60 Assert.AreEqual (true, textBox.Modified, "#11");
61 Assert.AreEqual (true, textBox.Multiline, "#12a");
62 textBox.WordWrap = false;
63 Assert.AreEqual (true, textBox.Multiline, "#12b");
64 textBox.AcceptsReturn = true;
65 Assert.AreEqual (true, textBox.Multiline, "#12c");
66 Assert.AreEqual (20, textBox.PreferredHeight, "#13");
67 Assert.AreEqual (false, textBox.ReadOnly, "#14");
68 Assert.AreEqual ("", textBox.SelectedText, "#15");
69 textBox.Text = "sample TextBox";
70 Assert.AreEqual (0, textBox.SelectionLength, "#16b");
71 Assert.AreEqual (0, textBox.SelectionStart, "#17");
72 textBox.WordWrap = false;
73 textBox.AcceptsReturn = true;
74 Assert.AreEqual ("sample TextBox", textBox.Text, "#18");
75 Assert.AreEqual (14, textBox.TextLength, "#19");
76 Assert.AreEqual (false, textBox.WordWrap, "#20");
80 public void TextBoxPropertyTest ()
82 Assert.AreEqual (false, textBox.AcceptsReturn, "#21");
83 Assert.AreEqual (CharacterCasing.Normal, textBox.CharacterCasing, "#22");
84 Assert.AreEqual ('\0', textBox.PasswordChar, "#23");
85 textBox.PasswordChar = '*';
86 Assert.AreEqual ('*', textBox.PasswordChar, "#23b");
87 Assert.AreEqual (ScrollBars.None, textBox.ScrollBars, "#24");
88 Assert.AreEqual (-1, textBox.SelectionLength, "#25");
89 Assert.AreEqual (HorizontalAlignment.Left , textBox.TextAlign, "#26");
94 public void UseSystemPasswordCharDefault()
96 Assert.IsFalse(textBox.UseSystemPasswordChar);
100 public void UseSystemPasswordCharOverridesPasswordChar()
102 textBox.PasswordChar = '!';
103 textBox.UseSystemPasswordChar = true;
104 Assert.AreEqual('*', textBox.PasswordChar);
109 public void AppendTextTest ()
111 Form f = new Form ();
112 f.ShowInTaskbar = false;
114 textBox.Visible = true;
115 textBox.Text = "TextBox1";
116 TextBox textBox2 = new TextBox ();
117 textBox2.Visible = true;
118 f.Controls.Add (textBox);
119 f.Controls.Add (textBox2);
120 textBox2.AppendText (textBox.Text);
121 Assert.AreEqual ("TextBox1", textBox2.Text, "#27");
126 public void AppendTextTest2 ()
128 TextBox textBox2 = new TextBox ();
129 textBox2.AppendText ("hi");
130 textBox2.AppendText ("ho");
131 Assert.AreEqual ("hiho", textBox2.Text, "#1");
132 Assert.IsNotNull (textBox2.Lines, "#2");
133 Assert.AreEqual (1, textBox2.Lines.Length, "#3");
134 Assert.AreEqual ("hiho", textBox2.Lines [0], "#4");
138 public void AppendText_Multiline_CRLF ()
140 TextBox textBox = new TextBox ();
142 textBox.AppendText ("hi\r\n\r\n");
143 textBox.AppendText ("ho\r\n");
144 Assert.AreEqual ("hahi\r\n\r\nho\r\n", textBox.Text, "#A1");
145 Assert.IsNotNull (textBox.Lines, "#A2");
146 Assert.AreEqual (4, textBox.Lines.Length, "#A3");
147 Assert.AreEqual ("hahi", textBox.Lines [0], "#A4");
148 Assert.AreEqual (string.Empty, textBox.Lines [1], "#A5");
149 Assert.AreEqual ("ho", textBox.Lines [2], "#A6");
150 Assert.AreEqual (string.Empty, textBox.Lines [3], "#A7");
152 textBox.Multiline = true;
155 textBox.AppendText ("hi\r\n\r\n");
156 textBox.AppendText ("ho\r\n");
157 Assert.AreEqual ("hahi\r\n\r\nho\r\n", textBox.Text, "#B1");
158 Assert.IsNotNull (textBox.Lines, "#B2");
159 Assert.AreEqual (4, textBox.Lines.Length, "#B3");
160 Assert.AreEqual ("hahi", textBox.Lines [0], "#B4");
161 Assert.AreEqual (string.Empty, textBox.Lines [1], "#B5");
162 Assert.AreEqual ("ho", textBox.Lines [2], "#B6");
163 Assert.AreEqual (string.Empty, textBox.Lines [3], "#B7");
167 public void AppendText_Multiline_LF ()
169 TextBox textBox = new TextBox ();
172 textBox.AppendText ("hi\n\n");
173 textBox.AppendText ("ho\n");
174 Assert.AreEqual ("hahi\n\nho\n", textBox.Text, "#A1");
175 Assert.IsNotNull (textBox.Lines, "#A2");
176 Assert.AreEqual (4, textBox.Lines.Length, "#A3");
177 Assert.AreEqual ("hahi", textBox.Lines [0], "#A4");
178 Assert.AreEqual (string.Empty, textBox.Lines [1], "#A5");
179 Assert.AreEqual ("ho", textBox.Lines [2], "#A6");
180 Assert.AreEqual (string.Empty, textBox.Lines [3], "#A7");
182 textBox.Multiline = true;
185 textBox.AppendText ("hi\n\n");
186 textBox.AppendText ("ho\n");
187 Assert.AreEqual ("hahi\n\nho\n", textBox.Text, "#B1");
188 Assert.IsNotNull (textBox.Lines, "#B2");
189 Assert.AreEqual (4, textBox.Lines.Length, "#B3");
190 Assert.AreEqual ("hahi", textBox.Lines [0], "#B4");
191 Assert.AreEqual (string.Empty, textBox.Lines [1], "#B5");
192 Assert.AreEqual ("ho", textBox.Lines [2], "#B6");
193 Assert.AreEqual (string.Empty, textBox.Lines [3], "#B7");
197 public void ClearTest ()
199 textBox.Text = "TextBox1";
200 Assert.AreEqual ("TextBox1", textBox.Text, "#28a" );
202 Assert.AreEqual ("", textBox.Text, "#28b");
206 public void ClearUndoTest ()
208 textBox.Text = "TextBox1";
209 textBox.SelectionLength = 4;
211 Assert.AreEqual ("Text", textBox.SelectedText, "#29a");
213 Assert.AreEqual (true, textBox.CanUndo, "#29b");
214 textBox.ClearUndo ();
215 Assert.AreEqual (false, textBox.CanUndo, "#29c");
219 public void ContextMenu ()
221 TextBox textBox = new TextBox ();
222 Assert.IsNull (textBox.ContextMenu);
226 public void CopyTest ()
228 textBox.Text = "ABCDE";
229 textBox.SelectionLength = 4;
231 Assert.AreEqual ("ABCD", textBox.SelectedText, "#30");
235 public void CutTest ()
237 textBox.Text = "ABCDE";
238 textBox.SelectionLength = 4;
240 Assert.AreEqual ("E", textBox.Text, "#31");
244 public void PasteTest ()
246 textBox.Text = "ABCDE";
247 textBox.SelectionLength = 4;
249 textBox.SelectionStart = textBox.SelectionStart + textBox.SelectionLength;
251 Assert.AreEqual ("ABCDABCD", textBox.Text, "#32");
255 public void SelectTest ()
257 textBox.Text = "This is a sample test.";
258 textBox.Select (0, 4);
259 Assert.AreEqual ("This", textBox.SelectedText, "#33");
263 public void SelectAllTest ()
265 textBox.Text = "This is a sample test.";
266 textBox.SelectAll ();
267 Assert.AreEqual ("This is a sample test.", textBox.SelectedText, "#34");
271 public void FocusSelectsAllTest ()
273 textBox.Text = "This is a sample test.";
274 textBox.CreateControl ();
276 Assert.AreEqual ("This is a sample test.", textBox.SelectedText, "#34");
280 public void ToStringTest ()
282 Assert.AreEqual ("System.Windows.Forms.TextBox, Text: ", textBox.ToString(), "#35");
286 public void UndoTest1 ()
288 textBox.Text = "ABCDE";
289 textBox.SelectionLength = 4;
291 textBox.SelectionStart = textBox.SelectionStart + textBox.SelectionLength;
293 Console.WriteLine ("pre paste text: {0}", textBox.Text);
295 Assert.AreEqual ("ABCDE", textBox.Text, "#36");
299 public void WrappedText ()
301 string text = "blabla blablabalbalbalbalbalbal blabla blablabl bal " +
302 "bal bla bal balajkdhfk dskfk ersd dsfjksdhf sdkfjshd f";
304 textBox.Multiline = true;
305 textBox.Size = new Size (30, 168);
308 Form form = new Form ();
309 form.Controls.Add (textBox);
310 form.ShowInTaskbar = false;
313 Assert.AreEqual (text, textBox.Text);
317 public void MultilineText ()
319 string text = "line1\n\nline2\nline3\r\nline4";
321 textBox.Size = new Size (300, 168);
324 Form form = new Form ();
325 form.Controls.Add (textBox);
326 form.ShowInTaskbar = false;
329 Assert.AreEqual (text, textBox.Text, "#1");
331 text = "line1\n\nline2\nline3\r\nline4\rline5\r\n\nline6\n\n\nline7";
335 form.Visible = false;
338 Assert.AreEqual (text, textBox.Text, "#2");
343 public void ModifiedTest ()
345 Assert.AreEqual (true, textBox.Modified, "modified-1");
347 textBox.Modified = false;
348 Assert.AreEqual (false, textBox.Modified, "modified-2");
350 textBox.Modified = true;
351 Assert.AreEqual (true, textBox.Modified, "modified-2");
353 textBox.Text = "TEXT";
354 Assert.AreEqual (false, textBox.Modified, "modified-3");