Author: rolf
Date: 2007-05-10 15:06:43 -0400 (Thu, 10 May 2007)
New Revision: 77151
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/MaskedTextBoxTest.cs
Log:
* MaskedTextBoxTest.cs: Added more tests.
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-05-10 18:58:06 UTC (rev 77150)
+++ trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
2007-05-10 19:06:43 UTC (rev 77151)
@@ -1,3 +1,7 @@
+2007-05-10 Rolf Bjarne Kvinge <[EMAIL PROTECTED]>
+
+ * MaskedTextBoxTest.cs: Added more tests.
+
2007-05-10 Jonathan Pobst <[EMAIL PROTECTED]>
* FormTest.cs: Add test for bug 81582.
Modified:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/MaskedTextBoxTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/MaskedTextBoxTest.cs
2007-05-10 18:58:06 UTC (rev 77150)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/MaskedTextBoxTest.cs
2007-05-10 19:06:43 UTC (rev 77151)
@@ -18,11 +18,11 @@
using System.Globalization;
using Thread=System.Threading.Thread;
using CategoryAttribute=NUnit.Framework.CategoryAttribute;
+using System.Reflection;
namespace MonoTests.System.Windows.Forms
{
[TestFixture]
- [Ignore ("Pending MTB implementation")]
public class MaskedTextBoxTest
{
[SetUp]
@@ -610,6 +610,325 @@
Assert.AreEqual (false, mtb.AcceptsTab, "#A3");
mtb.Dispose ();
}
+
+ [Test]
+ public void ConstructorTest ()
+ {
+ using (MaskedTextBox mtb = new MaskedTextBox ()) {
+ Assert.AreEqual (false, mtb.AcceptsTab,
"#A_A1");
+ Assert.AreEqual (true, mtb.AllowPromptAsInput,
"#A_A2");
+ Assert.AreEqual (false, mtb.AsciiOnly, "#A_A3");
+ Assert.AreEqual (false, mtb.BeepOnError,
"#A_B1");
+ Assert.AreEqual (false, mtb.CanUndo, "#A_C1");
+ Assert.IsNotNull (mtb.Culture, "#A_C3");
+ Assert.AreEqual
(Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#A_4");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.CutCopyMaskFormat, "#A_C5");
+ Assert.IsNull (mtb.FormatProvider, "#A_F1");
+ Assert.AreEqual (false, mtb.HidePromptOnLeave,
"#A_H1");
+ Assert.AreEqual (InsertKeyMode.Default,
mtb.InsertKeyMode, "#A_I1");
+ Assert.AreEqual (false, mtb.IsOverwriteMode,
"#A_I2");
+ Assert.AreEqual (0, mtb.Lines.Length, "#A_L1");
+ Assert.AreEqual ("", mtb.Mask, "#A_M1");
+ Assert.AreEqual (true, mtb.MaskCompleted,
"#A_M2");
+ Assert.IsNull (mtb.MaskedTextProvider, "#A_M3");
+ Assert.AreEqual (true, mtb.MaskFull, "#A_M4");
+ Assert.AreEqual (Int16.MaxValue, mtb.MaxLength,
"#A_M5");
+ Assert.AreEqual (false, mtb.Multiline, "#A_M6");
+ Assert.AreEqual ('\0', mtb.PasswordChar,
"#A_P1");
+ Assert.AreEqual ('_', mtb.PromptChar, "#A_P2");
+ Assert.AreEqual (false, mtb.ReadOnly, "#A_R1");
+ Assert.AreEqual (false,
mtb.RejectInputOnFirstFailure, "#A_R2");
+ Assert.AreEqual (true, mtb.ResetOnPrompt,
"#A_R3");
+ Assert.AreEqual (true, mtb.ResetOnSpace,
"#A_R4");
+ Assert.AreEqual ("", mtb.SelectedText, "#A_S1");
+ Assert.AreEqual (true, mtb.SkipLiterals,
"#A_S2");
+ Assert.AreEqual ("", mtb.Text, "#A_T1");
+ Assert.AreEqual (HorizontalAlignment.Left,
mtb.TextAlign, "#A_T2");
+ Assert.AreEqual (0, mtb.TextLength, "#A_T3");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.TextMaskFormat, "#A_T4");
+ Assert.AreEqual (false,
mtb.UseSystemPasswordChar, "#A_U1");
+ Assert.IsNull (mtb.ValidatingType, "#A_V1");
+ Assert.AreEqual (false, mtb.WordWrap, "#A_W1");
+ }
+
+ using (MaskedTextBox mtb = new MaskedTextBox ("abc")) {
+ Assert.AreEqual (false, mtb.AcceptsTab,
"#B_A1");
+ Assert.AreEqual (true, mtb.AllowPromptAsInput,
"#B_A2");
+ Assert.AreEqual (false, mtb.AsciiOnly, "#B_A3");
+ Assert.AreEqual (false, mtb.BeepOnError,
"#B_B1");
+ Assert.AreEqual (false, mtb.CanUndo, "#B_C1");
+ Assert.IsNotNull (mtb.Culture, "#B_C3");
+ Assert.AreEqual
(Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#B_4");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.CutCopyMaskFormat, "#B_C5");
+ Assert.IsNull (mtb.FormatProvider, "#B_F1");
+ Assert.AreEqual (false, mtb.HidePromptOnLeave,
"#B_H1");
+ Assert.AreEqual (InsertKeyMode.Default,
mtb.InsertKeyMode, "#B_I1");
+ Assert.AreEqual (false, mtb.IsOverwriteMode,
"#B_I2");
+ Assert.AreEqual (1, mtb.Lines.Length, "#B_L1");
+ Assert.AreEqual ("abc", mtb.Mask, "#B_M1");
+ Assert.AreEqual (true, mtb.MaskCompleted,
"#B_M2");
+ Assert.IsNotNull (mtb.MaskedTextProvider,
"#B_M3");
+ Assert.AreEqual (false, mtb.MaskFull, "#B_M4");
+ Assert.AreEqual (Int16.MaxValue, mtb.MaxLength,
"#B_M5");
+ Assert.AreEqual (false, mtb.Multiline, "#B_M6");
+ Assert.AreEqual ('\0', mtb.PasswordChar,
"#B_P1");
+ Assert.AreEqual ('_', mtb.PromptChar, "#B_P2");
+ Assert.AreEqual (false, mtb.ReadOnly, "#B_R1");
+ Assert.AreEqual (false,
mtb.RejectInputOnFirstFailure, "#B_R2");
+ Assert.AreEqual (true, mtb.ResetOnPrompt,
"#B_R3");
+ Assert.AreEqual (true, mtb.ResetOnSpace,
"#B_R4");
+ Assert.AreEqual ("", mtb.SelectedText, "#B_S1");
+ Assert.AreEqual (true, mtb.SkipLiterals,
"#B_S2");
+ Assert.AreEqual (" bc", mtb.Text, "#B_T1");
+ Assert.AreEqual (HorizontalAlignment.Left,
mtb.TextAlign, "#B_T2");
+ Assert.AreEqual (3, mtb.TextLength, "#B_T3");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.TextMaskFormat, "#B_T4");
+ Assert.AreEqual (false,
mtb.UseSystemPasswordChar, "#B_U1");
+ Assert.IsNull (mtb.ValidatingType, "#B_V1");
+ Assert.AreEqual (false, mtb.WordWrap, "#B_W1");
+ }
+
+ using (MaskedTextBox mtb = new MaskedTextBox ("<>")) {
+ Assert.AreEqual (false, mtb.AcceptsTab,
"#C_A1");
+ Assert.AreEqual (true, mtb.AllowPromptAsInput,
"#C_A2");
+ Assert.AreEqual (false, mtb.AsciiOnly, "#C_A3");
+ Assert.AreEqual (false, mtb.BeepOnError,
"#C_B1");
+ Assert.AreEqual (false, mtb.CanUndo, "#C_C1");
+ Assert.IsNotNull (mtb.Culture, "#C_C3");
+ Assert.AreEqual
(Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#C_4");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.CutCopyMaskFormat, "#C_C5");
+ Assert.IsNull (mtb.FormatProvider, "#C_F1");
+ Assert.AreEqual (false, mtb.HidePromptOnLeave,
"#C_H1");
+ Assert.AreEqual (InsertKeyMode.Default,
mtb.InsertKeyMode, "#C_I1");
+ Assert.AreEqual (false, mtb.IsOverwriteMode,
"#C_I2");
+ Assert.AreEqual (0, mtb.Lines.Length, "#C_L1");
+ Assert.AreEqual ("<>", mtb.Mask, "#C_M1");
+ Assert.AreEqual (true, mtb.MaskCompleted,
"#C_M2");
+ Assert.IsNotNull (mtb.MaskedTextProvider,
"#C_M3");
+ Assert.AreEqual (true, mtb.MaskFull, "#C_M4");
+ Assert.AreEqual (Int16.MaxValue, mtb.MaxLength,
"#C_M5");
+ Assert.AreEqual (false, mtb.Multiline, "#C_M6");
+ Assert.AreEqual ('\0', mtb.PasswordChar,
"#C_P1");
+ Assert.AreEqual ('_', mtb.PromptChar, "#C_P2");
+ Assert.AreEqual (false, mtb.ReadOnly, "#C_R1");
+ Assert.AreEqual (false,
mtb.RejectInputOnFirstFailure, "#C_R2");
+ Assert.AreEqual (true, mtb.ResetOnPrompt,
"#C_R3");
+ Assert.AreEqual (true, mtb.ResetOnSpace,
"#C_R4");
+ Assert.AreEqual ("", mtb.SelectedText, "#C_S1");
+ Assert.AreEqual (true, mtb.SkipLiterals,
"#C_S2");
+ Assert.AreEqual ("", mtb.Text, "#C_T1");
+ Assert.AreEqual (HorizontalAlignment.Left,
mtb.TextAlign, "#C_T2");
+ Assert.AreEqual (0, mtb.TextLength, "#C_T3");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.TextMaskFormat, "#C_T4");
+ Assert.AreEqual (false,
mtb.UseSystemPasswordChar, "#C_U1");
+ Assert.IsNull (mtb.ValidatingType, "#C_V1");
+ Assert.AreEqual (false, mtb.WordWrap, "#C_W1");
+ }
+
+ using (MaskedTextBox mtb = new MaskedTextBox
("abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890ÑñæøåÆØÅ!\\ºª\"·$%&/()='?¡¿`^+*´¨Çç-_.:,;}{]["))
{
+ Assert.AreEqual (false, mtb.AcceptsTab,
"#D_A1");
+ Assert.AreEqual (true, mtb.AllowPromptAsInput,
"#D_A2");
+ Assert.AreEqual (false, mtb.AsciiOnly, "#D_A3");
+ Assert.AreEqual (false, mtb.BeepOnError,
"#D_B1");
+ Assert.AreEqual (false, mtb.CanUndo, "#D_C1");
+ Assert.IsNotNull (mtb.Culture, "#D_C3");
+ Assert.AreEqual
(Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#D_4");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.CutCopyMaskFormat, "#D_C5");
+ Assert.IsNull (mtb.FormatProvider, "#D_F1");
+ Assert.AreEqual (false, mtb.HidePromptOnLeave,
"#D_H1");
+ Assert.AreEqual (InsertKeyMode.Default,
mtb.InsertKeyMode, "#D_I1");
+ Assert.AreEqual (false, mtb.IsOverwriteMode,
"#D_I2");
+ Assert.AreEqual (1, mtb.Lines.Length, "#D_L1");
+ Assert.AreEqual
("abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890ÑñæøåÆØÅ!\\ºª\"·$%&/()='?¡¿`^+*´¨Çç-_.:,;}{][",
mtb.Mask, "#D_M1");
+ Assert.AreEqual (false, mtb.MaskCompleted,
"#D_M2");
+ Assert.IsNotNull (mtb.MaskedTextProvider,
"#D_M3");
+ Assert.AreEqual (false, mtb.MaskFull, "#D_M4");
+ Assert.AreEqual (Int16.MaxValue, mtb.MaxLength,
"#D_M5");
+ Assert.AreEqual (false, mtb.Multiline, "#D_M6");
+ Assert.AreEqual ('\0', mtb.PasswordChar,
"#D_P1");
+ Assert.AreEqual ('_', mtb.PromptChar, "#D_P2");
+ Assert.AreEqual (false, mtb.ReadOnly, "#D_R1");
+ Assert.AreEqual (false,
mtb.RejectInputOnFirstFailure, "#D_R2");
+ Assert.AreEqual (true, mtb.ResetOnPrompt,
"#D_R3");
+ Assert.AreEqual (true, mtb.ResetOnSpace,
"#D_R4");
+ Assert.AreEqual ("", mtb.SelectedText, "#D_S1");
+ Assert.AreEqual (true, mtb.SkipLiterals,
"#D_S2");
+ Assert.AreEqual (" bcdefghijklmopqrstuvwxyz B
DEFGHIJK MOPQRSTUVWXYZ12345678 ÑñæøåÆØÅ!ºª\"·$% /()=' ¡¿`^+*´¨Çç-_.:,;}{][",
mtb.Text, "#D_T1");
+ Assert.AreEqual (HorizontalAlignment.Left,
mtb.TextAlign, "#D_T2");
+ Assert.AreEqual (102, mtb.TextLength, "#D_T3");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.TextMaskFormat, "#D_T4");
+ Assert.AreEqual (false,
mtb.UseSystemPasswordChar, "#D_U1");
+ Assert.IsNull (mtb.ValidatingType, "#D_V1");
+ Assert.AreEqual (false, mtb.WordWrap, "#D_W1");
+ }
+
+ MaskedTextProvider mtp = new MaskedTextProvider
("abcd", CultureInfo.GetCultureInfo ("es-AR"), false, '>', '^', false);
+ using (MaskedTextBox mtb = new MaskedTextBox (mtp)) {
+ Assert.AreEqual (false, mtb.AcceptsTab,
"#E_A1");
+ Assert.AreEqual (false, mtb.AllowPromptAsInput,
"#E_A2");
+ Assert.AreEqual (false, mtb.AsciiOnly, "#E_A3");
+ Assert.AreEqual (false, mtb.BeepOnError,
"#E_B1");
+ Assert.AreEqual (false, mtb.CanUndo, "#E_C1");
+ Assert.IsNotNull (mtb.Culture, "#E_C3");
+ Assert.AreEqual ("es-AR", mtb.Culture.Name,
"#E_4");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.CutCopyMaskFormat, "#E_C5");
+ Assert.IsNull (mtb.FormatProvider, "#E_F1");
+ Assert.AreEqual (false, mtb.HidePromptOnLeave,
"#E_H1");
+ Assert.AreEqual (InsertKeyMode.Default,
mtb.InsertKeyMode, "#E_I1");
+ Assert.AreEqual (false, mtb.IsOverwriteMode,
"#E_I2");
+ Assert.AreEqual (1, mtb.Lines.Length, "#E_L1");
+ Assert.AreEqual ("abcd", mtb.Mask, "#E_M1");
+ Assert.AreEqual (true, mtb.MaskCompleted,
"#E_M2");
+ Assert.IsNotNull (mtb.MaskedTextProvider,
"#E_M3");
+ Assert.IsFalse (mtb.MaskedTextProvider == mtp,
"#E_M3-b");
+ Assert.AreEqual (false, mtb.MaskFull, "#E_M4");
+ Assert.AreEqual (Int16.MaxValue, mtb.MaxLength,
"#E_M5");
+ Assert.AreEqual (false, mtb.Multiline, "#E_M6");
+ Assert.AreEqual ('^', mtb.PasswordChar,
"#E_P1");
+ Assert.AreEqual ('>', mtb.PromptChar, "#E_P2");
+ Assert.AreEqual (false, mtb.ReadOnly, "#E_R1");
+ Assert.AreEqual (false,
mtb.RejectInputOnFirstFailure, "#E_R2");
+ Assert.AreEqual (true, mtb.ResetOnPrompt,
"#E_R3");
+ Assert.AreEqual (true, mtb.ResetOnSpace,
"#E_R4");
+ Assert.AreEqual ("", mtb.SelectedText, "#E_S1");
+ Assert.AreEqual (true, mtb.SkipLiterals,
"#E_S2");
+ Assert.AreEqual (" bcd", mtb.Text, "#E_T1");
+ Assert.AreEqual (HorizontalAlignment.Left,
mtb.TextAlign, "#E_T2");
+ Assert.AreEqual (4, mtb.TextLength, "#E_T3");
+ Assert.AreEqual (MaskFormat.IncludeLiterals,
mtb.TextMaskFormat, "#E_T4");
+ Assert.AreEqual (false,
mtb.UseSystemPasswordChar, "#E_U1");
+ Assert.IsNull (mtb.ValidatingType, "#E_V1");
+ Assert.AreEqual (false, mtb.WordWrap, "#E_W1");
+ }
+
+ }
+
+ [Test]
+ public void UndoTest ()
+ {
+ MaskedTextBox mtb;
+
+ mtb = new MaskedTextBox ();
+ mtb.Text = "abcdef";
+ Assert.AreEqual (false, mtb.CanUndo, "#A0-c");
+ mtb.Undo ();
+ Assert.AreEqual ("abcdef", mtb.Text, "#A1");
+ Assert.AreEqual (false, mtb.CanUndo, "#A1-c");
+ mtb.Text = "cdef";
+ mtb.ClearUndo ();
+ Assert.AreEqual ("cdef", mtb.Text, "#A2");
+ Assert.AreEqual (false, mtb.CanUndo, "#A2-c");
+
+ mtb.Dispose ();
+ }
+
+ [Test]
+ public void CreateHandleTest ()
+ {
+ using (MaskedTextBox mtb = new MaskedTextBox ()) {
+ Assert.AreEqual (false, mtb.IsHandleCreated,
"#A1");
+ typeof (MaskedTextBox).GetMethod
("CreateHandle", global::System.Reflection.BindingFlags.Instance |
global::System.Reflection.BindingFlags.NonPublic).Invoke (mtb, new object [] {
});
+ Assert.AreEqual (true, mtb.IsHandleCreated,
"#A2");
+ }
+ }
+
+ [Test]
+ public void GetFirstCharIndexFromLineTest ()
+ {
+ using (MaskedTextBox mtb = new MaskedTextBox ()) {
+ for (int i = -100; i < 100; i++) {
+ Assert.AreEqual (0,
mtb.GetFirstCharIndexFromLine (i), "#A" + i.ToString ());
+ }
+ mtb.Text = "alñsdh gaph" + Environment.NewLine
+ "asldg";
+ for (int i = -100; i < 100; i++) {
+ Assert.AreEqual (0,
mtb.GetFirstCharIndexFromLine (i), "#B" + i.ToString ());
+ }
+ }
+ }
+
+
+ [Test]
+ public void GetFirstCharIndexOfCurrentLineTest ()
+ {
+ using (MaskedTextBox mtb = new MaskedTextBox ()) {
+ Assert.AreEqual (0,
mtb.GetFirstCharIndexOfCurrentLine (), "#A1");
+ mtb.Text = "alñsdh gaph" + Environment.NewLine
+ "asldg";
+ Assert.AreEqual (0,
mtb.GetFirstCharIndexOfCurrentLine (), "#B1");
+ }
+ }
+
+ [Test]
+ public void GetLineFromCharIndexTest ()
+ {
+ using (MaskedTextBox mtb = new MaskedTextBox ()) {
+ for (int i = -100; i < 100; i++) {
+ Assert.AreEqual (0,
mtb.GetLineFromCharIndex (i), "#A" + i.ToString ());
+ }
+ mtb.Text = "alñsdh gaph" + Environment.NewLine
+ "asldg";
+ for (int i = -100; i < 100; i++) {
+ Assert.AreEqual (0,
mtb.GetLineFromCharIndex (i), "#B" + i.ToString ());
+ }
+ }
+ }
+
+ [Test]
+ public void IsInputKeyTest ()
+ {
+ using (Form f = new Form ()) {
+ using (MaskedTextBox mtb = new MaskedTextBox ()) {
+ f.Controls.Add (mtb);
+ f.Show ();
+ MethodInfo IsInputKey = typeof
(MaskedTextBox).GetMethod ("IsInputKey",
global::System.Reflection.BindingFlags.NonPublic |
global::System.Reflection.BindingFlags.Instance);
+
+ for (int i = 0; i <= 0xFF; i++) {
+ Keys key = (Keys) i;
+ Keys key_ALT = key | Keys.Alt;
+ Keys key_SHIFT = key | Keys.Shift;
+ Keys key_CTRL = key | Keys.Control;
+ Keys key_ALT_SHIFT = key | Keys.Alt |
Keys.Shift;
+ Keys key_ALT_CTRL = key | Keys.Alt |
Keys.Control;
+ Keys key_SHIFT_CTLR = key | Keys.Shift
| Keys.Control;
+ Keys key_ALT_SHIFT_CTLR = key |
Keys.Alt | Keys.Shift | Keys.Control;
+
+ bool is_input = false;
+
+ switch (key) {
+ case Keys.PageDown:
+ case Keys.PageUp:
+ case Keys.End:
+ case Keys.Home:
+ case Keys.Left:
+ case Keys.Right:
+ case Keys.Up:
+ case Keys.Down:
+ is_input = true;
+ break;
+ }
+
+ Assert.AreEqual (is_input,
(bool)IsInputKey.Invoke (mtb, new object [] { key }));
+ Assert.AreEqual (false,
(bool)IsInputKey.Invoke (mtb, new object [] { key_ALT }));
+ Assert.AreEqual (is_input,
(bool)IsInputKey.Invoke (mtb, new object [] { key_SHIFT }));
+ Assert.AreEqual (is_input,
(bool)IsInputKey.Invoke (mtb, new object [] { key_CTRL }));
+ Assert.AreEqual (false,
(bool)IsInputKey.Invoke (mtb, new object [] { key_ALT_SHIFT }));
+ Assert.AreEqual (false,
(bool)IsInputKey.Invoke (mtb, new object [] { key_ALT_CTRL }));
+ Assert.AreEqual (is_input,
(bool)IsInputKey.Invoke (mtb, new object [] { key_SHIFT_CTLR }));
+ Assert.AreEqual (false,
(bool)IsInputKey.Invoke (mtb, new object [] { key_ALT_SHIFT_CTLR }));
+ }
+ }
+ }
+ }
+
+ [Test]
+ public void ValidateTextTest ()
+ {
+ Assert.Ignore ("Pending implementation");
+ }
+
+ [Test]
+ public void ToStringTest ()
+ {
+ Assert.Ignore ("Pending implementation");
+ }
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches