Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

896 lines
26 KiB
C#

//
// Copyright (c) 2005 Novell, Inc.
//
// Authors:
// Ritvik Mayank (mritvik@novell.com)
//
using System;
using System.ComponentModel;
using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
using NUnit.Framework;
using CategoryAttribute = NUnit.Framework.CategoryAttribute;
namespace MonoTests.System.Windows.Forms
{
[TestFixture]
public class TextBoxTest : TestHelper
{
TextBox textBox;
int _changed;
int _invalidated;
int _paint;
[SetUp]
protected override void SetUp () {
textBox = new TextBox();
textBox.Invalidated += new InvalidateEventHandler (TextBox_Invalidated);
textBox.Paint += new PaintEventHandler (TextBox_Paint);
textBox.TextChanged += new EventHandler (TextBox_TextChanged);
Reset ();
base.SetUp ();
}
[Test]
[Category ("NotWorking")]
public void TextBoxBasePropertyTest ()
{
Assert.AreEqual (false, textBox.AcceptsTab, "#1a");
textBox.Multiline = true;
textBox.AcceptsTab = true;
// SendKeys.SendWait ("^%");
Assert.AreEqual (true, textBox.AcceptsTab, "#1b");
Assert.AreEqual (true, textBox.AutoSize, "#2");
Assert.AreEqual (null, textBox.BackgroundImage, "#4a");
string gif = "M.gif";
textBox.BackgroundImage = Image.FromFile (gif);
// comparing image objects fails on MS .Net so using Size property
Assert.AreEqual (Image.FromFile(gif, true).Size, textBox.BackgroundImage.Size, "#4b");
Assert.AreEqual (BorderStyle.Fixed3D, textBox.BorderStyle, "#5");
Assert.AreEqual (false, textBox.CanUndo, "#6a");
Clipboard.SetDataObject ("TEST");
textBox.Paste ();
Assert.AreEqual (true, textBox.CanUndo, "#6b");
textBox.Undo ();
textBox.ClearUndo ();
Assert.AreEqual (false, textBox.CanUndo, "#6c");
Assert.AreEqual (true, textBox.HideSelection, "#8");
Assert.AreEqual (0, textBox.Lines.Length, "#9");
Assert.AreEqual (32767, textBox.MaxLength, "#10");
Assert.AreEqual (true, textBox.Modified, "#11");
Assert.AreEqual (true, textBox.Multiline, "#12a");
textBox.WordWrap = false;
Assert.AreEqual (true, textBox.Multiline, "#12b");
textBox.AcceptsReturn = true;
Assert.AreEqual (true, textBox.Multiline, "#12c");
Assert.AreEqual (20, textBox.PreferredHeight, "#13");
Assert.AreEqual (false, textBox.ReadOnly, "#14");
Assert.AreEqual ("", textBox.SelectedText, "#15");
textBox.Text = "sample TextBox";
Assert.AreEqual (0, textBox.SelectionLength, "#16b");
Assert.AreEqual (0, textBox.SelectionStart, "#17");
textBox.WordWrap = false;
textBox.AcceptsReturn = true;
Assert.AreEqual ("sample TextBox", textBox.Text, "#18");
Assert.AreEqual (14, textBox.TextLength, "#19");
Assert.AreEqual (false, textBox.WordWrap, "#20");
}
[Test]
public void TextBoxPropertyTest ()
{
Assert.AreEqual (false, textBox.AcceptsReturn, "#21");
Assert.AreEqual (CharacterCasing.Normal, textBox.CharacterCasing, "#22");
Assert.AreEqual ('\0', textBox.PasswordChar, "#23");
textBox.PasswordChar = '*';
Assert.AreEqual ('*', textBox.PasswordChar, "#23b");
Assert.AreEqual (ScrollBars.None, textBox.ScrollBars, "#24");
Assert.AreEqual (0, textBox.SelectionLength, "#25-NET20");
Assert.AreEqual (HorizontalAlignment.Left , textBox.TextAlign, "#26");
Assert.AreEqual (true, textBox.AutoCompleteCustomSource != null, "#27");
Assert.AreEqual (AutoCompleteMode.None, textBox.AutoCompleteMode, "#28");
Assert.AreEqual (AutoCompleteSource.None, textBox.AutoCompleteSource, "#29");
textBox.AutoCompleteCustomSource = null;
Assert.AreEqual (true, textBox.AutoCompleteCustomSource != null, "#30");
}
[Test]
public void UseSystemPasswordCharDefault()
{
Assert.IsFalse(textBox.UseSystemPasswordChar);
}
[Test]
public void UseSystemPasswordCharOverridesPasswordChar()
{
textBox.PasswordChar = '!';
textBox.UseSystemPasswordChar = true;
Assert.AreEqual('*', textBox.PasswordChar);
}
[Test]
public void AppendTextTest ()
{
Form f = new Form ();
f.ShowInTaskbar = false;
f.Visible = true;
textBox.Visible = true;
textBox.Text = "TextBox1";
TextBox textBox2 = new TextBox ();
textBox2.Visible = true;
f.Controls.Add (textBox);
f.Controls.Add (textBox2);
textBox2.AppendText (textBox.Text);
Assert.AreEqual ("TextBox1", textBox2.Text, "#27");
f.Dispose ();
}
[Test]
public void AppendTextTest2 ()
{
TextBox textBox2 = new TextBox ();
textBox2.AppendText ("hi");
textBox2.AppendText ("ho");
Assert.AreEqual ("hiho", textBox2.Text, "#1");
Assert.IsNotNull (textBox2.Lines, "#2");
Assert.AreEqual (1, textBox2.Lines.Length, "#3");
Assert.AreEqual ("hiho", textBox2.Lines [0], "#4");
}
[Test]
public void AppendText_Multiline_CRLF ()
{
TextBox textBox = new TextBox ();
textBox.Text = "ha";
textBox.AppendText ("hi\r\n\r\n");
textBox.AppendText ("ho\r\n");
Assert.AreEqual ("hahi\r\n\r\nho\r\n", textBox.Text, "#A1");
Assert.IsNotNull (textBox.Lines, "#A2");
Assert.AreEqual (4, textBox.Lines.Length, "#A3");
Assert.AreEqual ("hahi", textBox.Lines [0], "#A4");
Assert.AreEqual (string.Empty, textBox.Lines [1], "#A5");
Assert.AreEqual ("ho", textBox.Lines [2], "#A6");
Assert.AreEqual (string.Empty, textBox.Lines [3], "#A7");
textBox.Multiline = true;
textBox.Text = "ha";
textBox.AppendText ("hi\r\n\r\n");
textBox.AppendText ("ho\r\n");
Assert.AreEqual ("hahi\r\n\r\nho\r\n", textBox.Text, "#B1");
Assert.IsNotNull (textBox.Lines, "#B2");
Assert.AreEqual (4, textBox.Lines.Length, "#B3");
Assert.AreEqual ("hahi", textBox.Lines [0], "#B4");
Assert.AreEqual (string.Empty, textBox.Lines [1], "#B5");
Assert.AreEqual ("ho", textBox.Lines [2], "#B6");
Assert.AreEqual (string.Empty, textBox.Lines [3], "#B7");
}
[Test]
public void AppendText_Multiline_LF ()
{
TextBox textBox = new TextBox ();
textBox.Text = "ha";
textBox.AppendText ("hi\n\n");
textBox.AppendText ("ho\n");
Assert.AreEqual ("hahi\n\nho\n", textBox.Text, "#A1");
Assert.IsNotNull (textBox.Lines, "#A2");
Assert.AreEqual (4, textBox.Lines.Length, "#A3");
Assert.AreEqual ("hahi", textBox.Lines [0], "#A4");
Assert.AreEqual (string.Empty, textBox.Lines [1], "#A5");
Assert.AreEqual ("ho", textBox.Lines [2], "#A6");
Assert.AreEqual (string.Empty, textBox.Lines [3], "#A7");
textBox.Multiline = true;
textBox.Text = "ha";
textBox.AppendText ("hi\n\n");
textBox.AppendText ("ho\n");
Assert.AreEqual ("hahi\n\nho\n", textBox.Text, "#B1");
Assert.IsNotNull (textBox.Lines, "#B2");
Assert.AreEqual (4, textBox.Lines.Length, "#B3");
Assert.AreEqual ("hahi", textBox.Lines [0], "#B4");
Assert.AreEqual (string.Empty, textBox.Lines [1], "#B5");
Assert.AreEqual ("ho", textBox.Lines [2], "#B6");
Assert.AreEqual (string.Empty, textBox.Lines [3], "#B7");
}
[Test]
public void BackColorTest ()
{
Assert.AreEqual (SystemColors.Window, textBox.BackColor, "#A1");
textBox.BackColor = Color.Red;
Assert.AreEqual (Color.Red, textBox.BackColor, "#A2");
textBox.BackColor = Color.White;
Assert.AreEqual (Color.White, textBox.BackColor, "#A3");
Assert.AreEqual (0, _invalidated, "#A4");
Assert.AreEqual (0, _paint, "#A5");
Form form = new Form ();
form.ShowInTaskbar = false;
form.Controls.Add (textBox);
form.Show ();
_invalidated = 0;
_paint = 0;
Assert.AreEqual (Color.White, textBox.BackColor, "#B1");
Assert.AreEqual (0, _invalidated, "#B2");
Assert.AreEqual (0, _paint, "#B3");
textBox.BackColor = Color.Red;
Assert.AreEqual (Color.Red, textBox.BackColor, "#B4");
Assert.AreEqual (1, _invalidated, "#B5");
Assert.AreEqual (0, _paint, "#B6");
textBox.BackColor = Color.Red;
Assert.AreEqual (Color.Red, textBox.BackColor, "#B7");
Assert.AreEqual (1, _invalidated, "#B8");
Assert.AreEqual (0, _paint, "#B9");
textBox.BackColor = Color.Blue;
Assert.AreEqual (Color.Blue, textBox.BackColor, "#B10");
Assert.AreEqual (2, _invalidated, "#B11");
Assert.AreEqual (0, _paint, "#B12");
textBox.BackColor = Color.Empty;
Assert.AreEqual (SystemColors.Window, textBox.BackColor, "#B13");
Assert.AreEqual (3, _invalidated, "#B14");
Assert.AreEqual (0, _paint, "#B15");
form.Close ();
}
[Test] // bug #80626
[Ignore ("Depends on default font height")]
public void BorderStyle_None ()
{
textBox.BorderStyle = BorderStyle.None;
Assert.AreEqual (20, textBox.Height, "#1");
textBox.CreateControl ();
Assert.AreEqual (13, textBox.Height, "#2");
}
[Test]
public void ClearTest ()
{
textBox.Text = "TextBox1";
Assert.AreEqual ("TextBox1", textBox.Text, "#28a" );
textBox.Clear ();
Assert.AreEqual ("", textBox.Text, "#28b");
}
[Test]
public void ClearUndoTest ()
{
textBox.Text = "TextBox1";
textBox.SelectionLength = 4;
textBox.Copy ();
Assert.AreEqual ("Text", textBox.SelectedText, "#29a");
textBox.Paste ();
Assert.AreEqual (true, textBox.CanUndo, "#29b");
textBox.ClearUndo ();
Assert.AreEqual (false, textBox.CanUndo, "#29c");
}
[Test] // bug #80620
[Ignore ("Depends on default font height")]
public void ClientRectangle_Borders ()
{
textBox.CreateControl ();
Assert.AreEqual (textBox.ClientRectangle, new TextBox ().ClientRectangle);
}
[Test] // bug #80163
public void ContextMenu ()
{
TextBox textBox = new TextBox ();
Assert.IsNull (textBox.ContextMenu);
}
[Test]
public void CopyTest ()
{
textBox.Text = "ABCDE";
textBox.SelectionLength = 4;
Assert.AreEqual (1, _changed, "#1");
textBox.Copy ();
Assert.AreEqual (1, _changed, "#2");
Assert.AreEqual ("ABCD", textBox.SelectedText, "#3");
}
[Test]
public void CutTest ()
{
textBox.Text = "ABCDE";
textBox.SelectionLength = 4;
Assert.AreEqual (1, _changed, "#1");
textBox.Cut ();
Assert.AreEqual (2, _changed, "#2");
Assert.AreEqual ("E", textBox.Text, "#3");
}
[Test]
public void PasteTest ()
{
textBox.Text = "ABCDE";
textBox.SelectionLength = 4;
Assert.AreEqual (1, _changed, "#1");
textBox.Copy ();
textBox.SelectionStart = textBox.SelectionStart + textBox.SelectionLength;
Assert.AreEqual (1, _changed, "#2");
textBox.Paste ();
Assert.AreEqual (2, _changed, "#3");
Assert.AreEqual ("ABCDABCD", textBox.Text, "#4");
}
[Test] // bug #80301
[Ignore ("Depends on specific DPI")]
public void PreferredHeight ()
{
textBox.Font = new Font ("Arial", 14);
Assert.AreEqual (29, textBox.PreferredHeight, "#A1");
textBox.Font = new Font ("Arial", 16);
Assert.AreEqual (32, textBox.PreferredHeight, "#A2");
textBox.Font = new Font ("Arial", 17);
Assert.AreEqual (34, textBox.PreferredHeight, "#A3");
textBox.BorderStyle = BorderStyle.None;
Assert.AreEqual (27, textBox.PreferredHeight, "#B1");
textBox.Font = new Font ("Arial", 14);
Assert.AreEqual (22, textBox.PreferredHeight, "#B2");
textBox.Font = new Font ("Arial", 16);
Assert.AreEqual (25, textBox.PreferredHeight, "#B3");
}
[Test]
public void SelectTest ()
{
textBox.Text = "This is a sample test.";
textBox.Select (0, 4);
Assert.AreEqual ("This", textBox.SelectedText, "#33");
}
[Test]
public void SelectAllTest ()
{
textBox.Text = "This is a sample test.";
textBox.SelectAll ();
Assert.AreEqual ("This is a sample test.", textBox.SelectedText, "#34");
}
[Test]
public void FocusSelectsAllTest ()
{
Form form = new Form ();
form.ShowInTaskbar = false;
TextBox textBoxA = new TextBox ();
textBoxA.Text = "This is a sample testA.";
textBoxA.TabIndex = 0;
form.Controls.Add (textBoxA);
TextBox textBoxB = new TextBox ();
textBoxB.Text = "This is a sample testB.";
textBoxB.TabIndex = 1;
form.Controls.Add (textBoxB);
Assert.AreEqual (String.Empty, textBoxA.SelectedText, "#A1 (2.0)");
Assert.AreEqual (String.Empty, textBoxB.SelectedText, "#A2 (2.0)");
form.Show ();
textBoxA.Focus ();
Assert.AreEqual ("This is a sample testA.", textBoxA.SelectedText, "#B1");
Assert.AreEqual (string.Empty, textBoxB.SelectedText, "#B2");
textBoxB.Focus ();
Assert.AreEqual ("This is a sample testA.", textBoxA.SelectedText, "#C1");
Assert.AreEqual ("This is a sample testB.", textBoxB.SelectedText, "#C2");
textBoxA.Text = "another testA.";
textBoxB.Text = "another testB.";
Assert.AreEqual (string.Empty, textBoxA.SelectedText, "#D1");
Assert.AreEqual (string.Empty, textBoxB.SelectedText, "#D2");
textBoxA.Focus ();
Assert.AreEqual ("another testA.", textBoxA.SelectedText, "#E1");
Assert.AreEqual (string.Empty, textBoxB.SelectedText, "#E2");
textBoxB.Focus ();
Assert.AreEqual ("another testA.", textBoxA.SelectedText, "#F1");
Assert.AreEqual ("another testB.", textBoxB.SelectedText, "#F2");
form.Dispose ();
}
[Test]
[Category ("NotWorking")]
public void ForeColorTest ()
{
Assert.AreEqual (SystemColors.WindowText, textBox.ForeColor, "#A1");
textBox.ForeColor = Color.Red;
Assert.AreEqual (Color.Red, textBox.ForeColor, "#A2");
textBox.ForeColor = Color.White;
Assert.AreEqual (Color.White, textBox.ForeColor, "#A3");
Assert.AreEqual (0, _invalidated, "#A4");
Assert.AreEqual (0, _paint, "#A5");
Form form = new Form ();
form.ShowInTaskbar = false;
form.Controls.Add (textBox);
form.Show ();
Assert.AreEqual (Color.White, textBox.ForeColor, "#B1");
Assert.AreEqual (0, _invalidated, "#B2");
Assert.AreEqual (0, _paint, "#B3");
textBox.ForeColor = Color.Red;
Assert.AreEqual (Color.Red, textBox.ForeColor, "#B4");
Assert.AreEqual (1, _invalidated, "#B5");
Assert.AreEqual (0, _paint, "#B6");
textBox.ForeColor = Color.Red;
Assert.AreEqual (Color.Red, textBox.ForeColor, "#B7");
Assert.AreEqual (1, _invalidated, "#B8");
Assert.AreEqual (0, _paint, "#B9");
textBox.ForeColor = Color.Blue;
Assert.AreEqual (Color.Blue, textBox.ForeColor, "#B10");
Assert.AreEqual (2, _invalidated, "#B11");
Assert.AreEqual (0, _paint, "#B12");
}
[Test]
public void ReadOnly_BackColor_NotSet ()
{
textBox.ReadOnly = true;
Assert.IsTrue (textBox.ReadOnly, "#A1");
Assert.AreEqual (SystemColors.Control, textBox.BackColor, "#A2");
Form form = new Form ();
form.ShowInTaskbar = false;
form.Controls.Add (textBox);
form.Show ();
Assert.IsTrue (textBox.ReadOnly, "#B1");
Assert.AreEqual (SystemColors.Control, textBox.BackColor, "#B2");
textBox.ResetBackColor ();
Assert.IsTrue (textBox.ReadOnly, "#C1");
Assert.AreEqual (SystemColors.Control, textBox.BackColor, "#C2");
textBox.ReadOnly = false;
Assert.IsFalse (textBox.ReadOnly, "#D1");
Assert.AreEqual (SystemColors.Window, textBox.BackColor, "#D2");
textBox.ReadOnly = true;
Assert.IsTrue (textBox.ReadOnly, "#E1");
Assert.AreEqual (SystemColors.Control, textBox.BackColor, "#E2");
textBox.BackColor = Color.Red;
Assert.IsTrue (textBox.ReadOnly, "#F1");
Assert.AreEqual (Color.Red, textBox.BackColor, "#F2");
textBox.ReadOnly = false;
Assert.IsFalse (textBox.ReadOnly, "#G1");
Assert.AreEqual (Color.Red, textBox.BackColor, "#G2");
textBox.ReadOnly = true;
Assert.IsTrue (textBox.ReadOnly, "#H1");
Assert.AreEqual (Color.Red, textBox.BackColor, "#H2");
textBox.ResetBackColor ();
Assert.IsTrue (textBox.ReadOnly, "#I1");
Assert.AreEqual (SystemColors.Control, textBox.BackColor, "#I2");
form.Close ();
}
[Test]
public void ReadOnly_BackColor_Set ()
{
textBox.BackColor = Color.Blue;
textBox.ReadOnly = true;
Assert.IsTrue (textBox.ReadOnly, "#A1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#A2");
Form form = new Form ();
form.ShowInTaskbar = false;
form.Controls.Add (textBox);
form.Show ();
Assert.IsTrue (textBox.ReadOnly, "#B1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#B2");
textBox.ReadOnly = false;
Assert.IsFalse (textBox.ReadOnly, "#C1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#C2");
textBox.ReadOnly = true;
Assert.IsTrue (textBox.ReadOnly, "#D1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#D2");
textBox.BackColor = Color.Red;
Assert.IsTrue (textBox.ReadOnly, "#E1");
Assert.AreEqual (Color.Red, textBox.BackColor, "#E2");
textBox.ReadOnly = false;
Assert.IsFalse (textBox.ReadOnly, "#F1");
Assert.AreEqual (Color.Red, textBox.BackColor, "#F2");
textBox.ReadOnly = true;
textBox.ResetBackColor ();
Assert.IsTrue (textBox.ReadOnly, "#G1");
Assert.AreEqual (SystemColors.Control, textBox.BackColor, "#G2");
form.Dispose ();
textBox = new TextBox ();
textBox.ReadOnly = true;
textBox.BackColor = Color.Blue;
Assert.IsTrue (textBox.ReadOnly, "#H1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#H2");
form = new Form ();
form.ShowInTaskbar = false;
form.Controls.Add (textBox);
form.Show ();
Assert.IsTrue (textBox.ReadOnly, "#I1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#I2");
textBox.ReadOnly = false;
Assert.IsFalse (textBox.ReadOnly, "#J1");
Assert.AreEqual (Color.Blue, textBox.BackColor, "#J2");
textBox.ResetBackColor ();
Assert.IsFalse (textBox.ReadOnly, "#K1");
Assert.AreEqual (SystemColors.Window, textBox.BackColor, "#K2");
form.Close ();
}
[Test]
public void ScrollBarsTest ()
{
Assert.AreEqual (ScrollBars.None, textBox.ScrollBars, "#1");
textBox.ScrollBars = ScrollBars.Vertical;
Assert.AreEqual (ScrollBars.Vertical, textBox.ScrollBars, "#2");
}
[Test]
[ExpectedException (typeof (InvalidEnumArgumentException))]
public void ScrollBars_Invalid ()
{
textBox.ScrollBars = (ScrollBars) 666;
}
[Test]
public void ToStringTest ()
{
Assert.AreEqual ("System.Windows.Forms.TextBox, Text: ", textBox.ToString(), "#35");
}
[Test]
public void UndoTest1 ()
{
textBox.Text = "ABCDE";
textBox.SelectionLength = 4;
textBox.Copy ();
textBox.SelectionStart = textBox.SelectionStart + textBox.SelectionLength;
textBox.Paste ();
textBox.Undo ();
Assert.AreEqual ("ABCDE", textBox.Text, "#36");
}
[Test] // bug #79851
public void WrappedText ()
{
string text = "blabla blablabalbalbalbalbalbal blabla blablabl bal " +
"bal bla bal balajkdhfk dskfk ersd dsfjksdhf sdkfjshd f";
textBox.Multiline = true;
textBox.Size = new Size (30, 168);
textBox.Text = text;
Form form = new Form ();
form.Controls.Add (textBox);
form.ShowInTaskbar = false;
form.Show ();
Assert.AreEqual (text, textBox.Text);
form.Close ();
}
[Test] // bug #79909
public void MultilineText ()
{
string text = "line1\n\nline2\nline3\r\nline4";
textBox.Size = new Size (300, 168);
textBox.Text = text;
Form form = new Form ();
form.Controls.Add (textBox);
form.ShowInTaskbar = false;
form.Show ();
Assert.AreEqual (text, textBox.Text, "#1");
text = "line1\n\nline2\nline3\r\nline4\rline5\r\n\nline6\n\n\nline7";
textBox.Text = text;
form.Visible = false;
form.Show ();
Assert.AreEqual (text, textBox.Text, "#2");
form.Close ();
}
[Test] // bug #82371
public void SelectionLength ()
{
TextBox tb = new TextBox ();
RichTextBox rtb = new RichTextBox ();
Assert.AreEqual (0, tb.SelectionLength, "#1");
Assert.AreEqual (0, rtb.SelectionLength, "#2");
IntPtr i = tb.Handle;
i = rtb.Handle;
Assert.AreEqual (0, tb.SelectionLength, "A3");
Assert.AreEqual (0, rtb.SelectionLength, "A4");
}
[Test]
public void SelectionLength_Negative ()
{
TextBox tb = new TextBox ();
try {
tb.SelectionLength = -1;
Assert.Fail ("#1");
} catch (ArgumentOutOfRangeException ex) {
Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("SelectionLength", ex.ParamName, "#6");
}
}
[Test]
public void SelectionStart_Negative ()
{
TextBox tb = new TextBox ();
try {
tb.SelectionStart = -1;
Assert.Fail ("#1");
} catch (ArgumentOutOfRangeException ex) {
Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.Message, "#4");
Assert.IsNotNull (ex.ParamName, "#5");
Assert.AreEqual ("SelectionStart", ex.ParamName, "#6");
}
}
[Test]
public void Bug82749 ()
{
Form f = new Form ();
f.ShowInTaskbar = false;
TextBox _textBox = new TextBox ();
_textBox.Dock = DockStyle.Top;
_textBox.Height = 100;
_textBox.Multiline = true;
f.Controls.Add (_textBox);
f.Show ();
Assert.AreEqual (100, _textBox.Height, "A1");
// Font dependent, but should be less than 30.
_textBox.Multiline = false;
Assert.IsTrue (_textBox.Height < 30, "A2");
_textBox.Multiline = true;
Assert.AreEqual (100, _textBox.Height, "A3");
f.Close ();
f.Dispose ();
}
[Test]
public void ModifiedEventTest ()
{
TextBox tb = new TextBox ();
EventLogger eventLogger = new EventLogger (tb);
tb.Modified = true;
Assert.AreEqual (1, eventLogger.EventsRaised);
Assert.IsTrue (eventLogger.EventRaised ("ModifiedChanged"));
}
[Test]
public void BorderStyleEventTest ()
{
TextBox tb = new TextBox ();
EventLogger eventLogger = new EventLogger (tb);
tb.BorderStyle = BorderStyle.None;
Assert.IsTrue (eventLogger.EventRaised ("BorderStyleChanged"));
}
[Test]
public void FixedHeightControlStyle ()
{
TextBoxPublic t = new TextBoxPublic ();
t.Multiline = true;
Assert.IsFalse (t.GetStylePublic (ControlStyles.FixedHeight), "A1");
t.Multiline = false;
Assert.IsTrue (t.GetStylePublic (ControlStyles.FixedHeight), "A2");
}
[Test]
public void ModifiedTest ()
{
TextBox t = new TextBox ();
Assert.AreEqual (false, t.Modified, "modified-1");
t.Modified = true;
Assert.AreEqual (true, t.Modified, "modified-2");
t.Modified = false;
Assert.AreEqual (false, t.Modified, "modified-3");
// Changes in Text property don't change Modified,
// as opposed what the .net docs say
t.ModifiedChanged += new EventHandler (TextBox_ModifiedChanged);
modified_changed_fired = false;
t.Text = "TEXT";
Assert.AreEqual (false, t.Modified, "modified-4");
Assert.AreEqual (false, modified_changed_fired, "modified-4-1");
t.Modified = true;
modified_changed_fired = false;
t.Text = "hello";
Assert.AreEqual (true, t.Modified, "modified-5");
Assert.AreEqual (false, modified_changed_fired, "modified-5-1");
t.Modified = false;
modified_changed_fired = false;
t.Text = "hello mono";
Assert.AreEqual (false, t.Modified, "modified-6");
Assert.AreEqual (false, modified_changed_fired, "modified-6-1");
// The methods changing the text value, however,
// do change Modified
t.Modified = true;
modified_changed_fired = false;
t.AppendText ("a");
Assert.AreEqual (false, t.Modified, "modified-7");
Assert.AreEqual (true, modified_changed_fired, "modified-7-1");
t.Modified = true;
modified_changed_fired = false;
t.Clear ();
Assert.AreEqual (false, t.Modified, "modified-8");
Assert.AreEqual (true, modified_changed_fired, "modified-8-1");
t.Text = "a message";
t.SelectAll ();
t.Modified = false;
t.Cut ();
Assert.AreEqual (true, t.Modified, "modified-9");
t.Modified = false;
t.Paste ();
Assert.AreEqual (true, t.Modified, "modified-10");
t.Modified = false;
t.Undo ();
Assert.AreEqual (true, t.Modified, "modified-11");
}
bool modified_changed_fired;
void TextBox_ModifiedChanged (object sender, EventArgs e)
{
modified_changed_fired = true;
}
void TextBox_TextChanged (object sender, EventArgs e)
{
_changed++;
}
void TextBox_Invalidated (object sender, InvalidateEventArgs e)
{
_invalidated++;
}
void TextBox_Paint (object sender, PaintEventArgs e)
{
_paint++;
}
void Reset ()
{
_changed = 0;
_invalidated = 0;
_paint = 0;
}
[Test]
public void MethodIsInputChar ()
{
// Basically, show that this method always returns true
InputCharControl m = new InputCharControl ();
bool result = true;
for (int i = 0; i < 256; i++)
result &= m.PublicIsInputChar ((char)i);
Assert.AreEqual (true, result, "I1");
}
private class InputCharControl : TextBox
{
public bool PublicIsInputChar (char charCode)
{
return base.IsInputChar (charCode);
}
}
private class TextBoxPublic : TextBox
{
public bool GetStylePublic (ControlStyles flag) {
return GetStyle (flag);
}
}
}
[TestFixture]
public class TextBoxAutoCompleteSourceConverterTest : TestHelper
{
[Test]
public void One()
{
PropertyDescriptor pd = TypeDescriptor.GetProperties(typeof(TextBox))["AutoCompleteSource"];
TypeConverter converter = pd.Converter;
Assert.AreEqual("System.Windows.Forms.TextBoxAutoCompleteSourceConverter",
converter.GetType().FullName, "setup--converter type");
Assert.IsTrue(converter.GetStandardValuesSupported(), "GetStandardValuesSupported");
Assert.IsTrue(converter.GetStandardValuesExclusive(), "GetStandardValuesExclusive");
//
global::System.Collections.ICollection list = converter.GetStandardValues();
Assert.AreEqual(8, list.Count, "count");
Object[] arr = new Object[list.Count];
list.CopyTo(arr, 0);
Assert.AreEqual(AutoCompleteSource.FileSystem, arr[0], "item0");
Assert.AreEqual(AutoCompleteSource.HistoryList, arr[1], "item1");
Assert.AreEqual(AutoCompleteSource.RecentlyUsedList, arr[2], "item2");
Assert.AreEqual(AutoCompleteSource.AllUrl, arr[3], "item3");
Assert.AreEqual(AutoCompleteSource.AllSystemSources, arr[4], "item4");
Assert.AreEqual(AutoCompleteSource.FileSystemDirectories, arr[5], "item5");
Assert.AreEqual(AutoCompleteSource.CustomSource, arr[6], "item6");
Assert.AreEqual(AutoCompleteSource.None, arr[7], "item7");
// And NOT AutoCompleteSource.ListItems.
}
}
}