2006-08-08 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / TextBoxTest.cs
1 //
2 // Copyright (c) 2005 Novell, Inc.
3 //
4 // Authors:
5 //      Ritvik Mayank (mritvik@novell.com)
6 //
7
8 using System;
9 using System.Windows.Forms;
10 using System.Drawing;
11 using System.Reflection;
12 using NUnit.Framework;
13
14 namespace MonoTests.System.Windows.Forms
15 {
16         [TestFixture]
17         public class TextBoxBaseTest
18         {
19                 TextBox textBox;
20
21                 [SetUp]
22                 public void SetUp()
23                 {
24                         textBox = new TextBox();
25                 }
26
27                 [Test]
28                 public void TextBoxBasePropertyTest ()
29                 {
30                         Assert.AreEqual (false, textBox.AcceptsTab, "#1a");
31                         textBox.Multiline = true;
32                         textBox.AcceptsTab = true;
33                         SendKeys.SendWait ("^%");
34                         Assert.AreEqual (true, textBox.AcceptsTab, "#1b");
35                         Assert.AreEqual (true, textBox.AutoSize, "#2");
36                         Assert.AreEqual ("Window", textBox.BackColor.Name, "#3a");
37                         textBox.BackColor = Color.White;
38                         Assert.AreEqual ("White", textBox.BackColor.Name, "#3b");
39                         Assert.AreEqual (null, textBox.BackgroundImage, "#4a");
40                         string gif = "M.gif";
41                         textBox.BackgroundImage = Image.FromFile (gif);
42                         // comparing image objects fails on MS .Net so using Size property
43                         Assert.AreEqual (Image.FromFile(gif, true).Size, textBox.BackgroundImage.Size, "#4b");
44                         
45                         Assert.AreEqual (BorderStyle.Fixed3D, textBox.BorderStyle, "#5");
46                         Assert.AreEqual (false, textBox.CanUndo, "#6a");
47                         textBox.Paste ();
48                         Assert.AreEqual (true, textBox.CanUndo, "#6b");
49                         textBox.ClearUndo ();
50                         Assert.AreEqual (false, textBox.CanUndo, "#6c");
51                         Assert.AreEqual ("WindowText", textBox.ForeColor.Name, "#7");
52                         Assert.AreEqual (true, textBox.HideSelection, "#8");
53                         Assert.AreEqual (1, textBox.Lines.Length, "#9");
54                         Assert.AreEqual (32767, textBox.MaxLength, "#10");
55                         Assert.AreEqual (true, textBox.Modified, "#11");
56                         Assert.AreEqual (true, textBox.Multiline, "#12a");
57                         textBox.WordWrap = false;
58                         Assert.AreEqual (true, textBox.Multiline, "#12b");
59                         textBox.AcceptsReturn = true;
60                         Assert.AreEqual (true, textBox.Multiline, "#12c");
61                         Assert.AreEqual (20, textBox.PreferredHeight, "#13");
62                         Assert.AreEqual (false, textBox.ReadOnly, "#14");
63                         Assert.AreEqual ("", textBox.SelectedText, "#15");
64                         textBox.Text = "sample TextBox";
65                         Assert.AreEqual (0, textBox.SelectionLength, "#16b");
66                         Assert.AreEqual (0, textBox.SelectionStart, "#17");
67                         textBox.WordWrap = false;
68                         textBox.AcceptsReturn = true;
69                         Assert.AreEqual ("sample TextBox", textBox.Text, "#18");
70                         Assert.AreEqual (14, textBox.TextLength, "#19");
71                         Assert.AreEqual (false, textBox.WordWrap, "#20");
72                 }
73
74                 [Test]
75                 public void TextBoxPropertyTest ()
76                 {
77                         Assert.AreEqual (false, textBox.AcceptsReturn, "#21");
78                         Assert.AreEqual (CharacterCasing.Normal, textBox.CharacterCasing, "#22");
79                         Assert.AreEqual ('\0', textBox.PasswordChar, "#23");
80                         textBox.PasswordChar = '*';
81                         Assert.AreEqual ('*', textBox.PasswordChar, "#23b");
82                         Assert.AreEqual (ScrollBars.None, textBox.ScrollBars, "#24");
83                         Assert.AreEqual (-1, textBox.SelectionLength, "#25");
84                         Assert.AreEqual (HorizontalAlignment.Left , textBox.TextAlign, "#26");
85                 }
86
87 #if NET_2_0
88                 [Test]
89                 public void UseSystemPasswordCharDefault()
90                 {
91                         Assert.IsFalse(textBox.UseSystemPasswordChar);
92                 }
93
94                 [Test]
95                 public void UseSystemPasswordCharOverridesPasswordChar()
96                 {
97                         textBox.PasswordChar = '!';
98                         textBox.UseSystemPasswordChar = true;
99                         Assert.AreEqual('*', textBox.PasswordChar);
100                 }
101 #endif
102
103                 [Test]
104                 public void AppendTextTest ()
105                 {   
106                         Form f = new Form (); 
107                         f.Visible = true;
108                         textBox.Visible = true;
109                         textBox.Text = "TextBox1";
110                         TextBox textBox2 = new TextBox ();
111                         textBox2.Visible = true;
112                         f.Controls.Add (textBox);
113                         f.Controls.Add (textBox2);
114                         textBox2.AppendText (textBox.Text);
115                         Assert.AreEqual ("TextBox1", textBox2.Text, "#27");
116                 }
117
118                 [Test]
119                 public void ClearTest ()
120                 {
121                         textBox.Text = "TextBox1";
122                         Assert.AreEqual ("TextBox1", textBox.Text, "#28a" );
123                         textBox.Clear ();
124                         Assert.AreEqual ("", textBox.Text, "#28b");
125                 }
126
127                 [Test]
128                 public void ClearUndoTest ()
129                 {
130                         textBox.Text = "TextBox1";
131                         textBox.SelectionLength = 4;
132                         textBox.Copy ();
133                         Assert.AreEqual ("Text", textBox.SelectedText, "#29a");
134                         textBox.Paste ();
135                         Assert.AreEqual (true, textBox.CanUndo, "#29b");
136                         textBox.ClearUndo ();
137                         Assert.AreEqual (false, textBox.CanUndo, "#29c");
138                 }
139
140                 [Test]
141                 public void CopyTest ()
142                 {
143                         textBox.Text = "ABCDE";
144                         textBox.SelectionLength = 4;
145                         textBox.Copy ();
146                         Assert.AreEqual ("ABCD", textBox.SelectedText, "#30");
147                 }
148
149                 [Test]
150                 public void CutTest ()
151                 {
152                         textBox.Text = "ABCDE";
153                         textBox.SelectionLength = 4;
154                         textBox.Cut ();
155                         Assert.AreEqual ("E", textBox.Text, "#31");
156                 }
157
158                 [Test]
159                 public void PasteTest ()
160                 {
161                         textBox.Text = "ABCDE";
162                         textBox.SelectionLength = 4;
163                         textBox.SelectionStart = textBox.SelectionStart + textBox.SelectionLength;
164                         textBox.Paste ();
165                         Assert.AreEqual ("ABCDABCD", textBox.Text, "#32");
166                 }
167
168                 [Test]
169                 public void SelectTest ()
170                 {
171                         textBox.Text = "This is a sample test.";
172                         textBox.Select (0, 4);
173                         Assert.AreEqual ("This", textBox.SelectedText, "#33");
174                 }
175
176                 [Test]
177                 public void SelectAllTest ()
178                 {
179                         textBox.Text = "This is a sample test.";
180                         textBox.SelectAll ();
181                         Assert.AreEqual ("This is a sample test.", textBox.SelectedText, "#34");
182                 }
183
184                 [Test]
185                 public void ToStringTest ()
186                 {
187                         Assert.AreEqual ("System.Windows.Forms.TextBox, Text: ", textBox.ToString(), "#35");
188                 }
189
190                 [Test]
191                 public void UndoTest1 ()
192                 {
193                         textBox.Text = "ABCDE";
194                         textBox.SelectionLength = 4;
195                         textBox.Copy ();
196                         textBox.SelectionStart = textBox.SelectionStart + textBox.SelectionLength;
197                         textBox.Paste ();
198                         textBox.Undo ();
199                         Assert.AreEqual ("ABCDE", textBox.Text, "#36");
200                 }
201         }
202 }