2 // Copyright (c) 2007 Novell, Inc.
\r
5 // Rolf Bjarne Kvinge (RKvinge@novell.com)
\r
11 using System.Collections;
\r
12 using System.ComponentModel;
\r
13 using System.Drawing;
\r
14 using System.Windows.Forms;
\r
16 using System.Threading;
\r
17 using NUnit.Framework;
\r
18 using System.Globalization;
\r
19 using Thread=System.Threading.Thread;
\r
20 using CategoryAttribute=NUnit.Framework.CategoryAttribute;
\r
21 using System.Reflection;
\r
23 namespace MonoTests.System.Windows.Forms
\r
26 public class MaskedTextBoxTest : TestHelper
\r
29 protected override void SetUp () {
\r
30 Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("en-US");
35 public void InitialProperties ()
\r
37 MaskedTextBox mtb = new MaskedTextBox ();
\r
38 Assert.AreEqual (false, mtb.AcceptsTab, "#A1");
\r
39 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#A2");
\r
40 Assert.AreEqual (false, mtb.AsciiOnly, "#A3");
\r
41 Assert.AreEqual (false, mtb.BeepOnError, "#B1");
\r
42 Assert.AreEqual (false, mtb.CanUndo, "#C1");
\r
43 Assert.IsNotNull (mtb.Culture, "#C3");
\r
44 Assert.AreEqual (Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#4");
\r
45 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#C5");
\r
46 Assert.IsNull (mtb.FormatProvider, "#F1");
\r
47 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#H1");
\r
48 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#I1");
\r
49 Assert.AreEqual (false, mtb.IsOverwriteMode, "#I2");
\r
50 Assert.AreEqual (0, mtb.Lines.Length, "#L1");
\r
51 Assert.AreEqual ("", mtb.Mask, "#M1");
\r
52 Assert.AreEqual (true, mtb.MaskCompleted, "#M2");
\r
53 Assert.IsNull (mtb.MaskedTextProvider, "#M3");
\r
54 Assert.AreEqual (true, mtb.MaskFull, "#M4");
\r
55 Assert.AreEqual (Int16.MaxValue, mtb.MaxLength, "#M5");
\r
56 Assert.AreEqual (false, mtb.Multiline, "#M6");
\r
57 Assert.AreEqual ('\0', mtb.PasswordChar, "#P1");
\r
58 Assert.AreEqual ('_', mtb.PromptChar, "#P2");
\r
59 Assert.AreEqual (false, mtb.ReadOnly, "#R1");
\r
60 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#R2");
\r
61 Assert.AreEqual (true, mtb.ResetOnPrompt, "#R3");
\r
62 Assert.AreEqual (true, mtb.ResetOnSpace, "#R4");
\r
63 Assert.AreEqual ("", mtb.SelectedText, "#S1");
\r
64 Assert.AreEqual (true, mtb.SkipLiterals, "#S2");
\r
65 Assert.AreEqual ("", mtb.Text, "#T1");
\r
66 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#T2");
\r
67 Assert.AreEqual (0, mtb.TextLength, "#T3");
\r
68 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#T4");
\r
69 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#U1");
\r
70 Assert.IsNull (mtb.ValidatingType, "#V1");
\r
71 Assert.AreEqual (false, mtb.WordWrap, "#W1");
\r
77 public void WordWrapTest ()
\r
82 mtb = new MaskedTextBox ();
\r
83 Assert.AreEqual (false, mtb.WordWrap, "#W1");
\r
84 mtb.WordWrap = true;
\r
85 Assert.AreEqual (false, mtb.WordWrap, "#W2");
\r
91 public void ValidatingTypeTest ()
\r
96 mtb = new MaskedTextBox ();
\r
97 Assert.IsNull (mtb.ValidatingType, "#V1");
\r
98 mtb.ValidatingType = typeof(int);
\r
99 Assert.IsNotNull (mtb.ValidatingType, "#V2");
\r
100 Assert.AreSame (typeof(int), mtb.ValidatingType, "#V3");
\r
105 public void UseSystemPasswordCharTest ()
\r
110 mtb = new MaskedTextBox ();
\r
111 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#U1");
\r
112 mtb.UseSystemPasswordChar = true;
\r
113 Assert.AreEqual (true, mtb.UseSystemPasswordChar, "#U2");
\r
118 public void TextMaskFormatTest ()
\r
123 mtb = new MaskedTextBox ();
\r
124 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#T1");
\r
125 mtb.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
\r
126 Assert.AreEqual (MaskFormat.ExcludePromptAndLiterals, mtb.TextMaskFormat, "#T2");
\r
127 mtb.TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
\r
128 Assert.AreEqual (MaskFormat.IncludePromptAndLiterals, mtb.TextMaskFormat, "#T3");
\r
129 mtb.TextMaskFormat = MaskFormat.IncludePrompt;
\r
130 Assert.AreEqual (MaskFormat.IncludePrompt, mtb.TextMaskFormat, "#T4");
\r
131 mtb.TextMaskFormat = MaskFormat.IncludeLiterals;
\r
132 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#T4");
\r
137 [ExpectedException (typeof(InvalidEnumArgumentException))]
\r
138 public void TextMaskFormatExceptionTestException ()
\r
143 mtb = new MaskedTextBox ();
\r
144 mtb.TextMaskFormat = (MaskFormat) 123;
\r
149 public void TextLengthTest ()
\r
154 mtb = new MaskedTextBox ();
\r
155 Assert.AreEqual (0, mtb.TextLength, "#T1");
\r
157 Assert.AreEqual (3, mtb.TextLength, "#T2");
\r
163 public void TextAlignTest ()
\r
168 mtb = new MaskedTextBox ();
\r
169 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#T1");
\r
170 mtb.TextAlign = HorizontalAlignment.Center;
\r
171 Assert.AreEqual (HorizontalAlignment.Center, mtb.TextAlign, "#T2");
\r
172 mtb.TextAlign = HorizontalAlignment.Right;
\r
173 Assert.AreEqual (HorizontalAlignment.Right, mtb.TextAlign, "#T3");
\r
174 mtb.TextAlign = HorizontalAlignment.Left;
\r
175 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#T4");
\r
180 [ExpectedException (typeof (InvalidEnumArgumentException))]
\r
181 public void TextAlignExceptionTest ()
\r
186 mtb = new MaskedTextBox ();
\r
187 mtb.TextAlign = (HorizontalAlignment) 123;
\r
192 public void TextTest ()
\r
197 mtb = new MaskedTextBox ();
\r
198 Assert.AreEqual ("", mtb.Text, "#T1");
\r
200 Assert.AreEqual ("abc", mtb.Text, "#T2");
\r
202 Assert.AreEqual ("ABC", mtb.Text, "#T3");
\r
205 Assert.AreEqual ("abc", mtb.Text, "#T4");
\r
207 Assert.AreEqual ("Abc", mtb.Text, "#T5");
\r
209 Assert.AreEqual ("1bc", mtb.Text, "#T6");
\r
214 public void SkipLiteralsTest ()
\r
219 mtb = new MaskedTextBox ();
\r
220 Assert.AreEqual (true, mtb.SkipLiterals, "#S1");
\r
221 mtb.SkipLiterals = false;
\r
222 Assert.AreEqual (false, mtb.SkipLiterals, "#S2");
\r
227 public void SelectedTextTest ()
\r
232 mtb = new MaskedTextBox ();
\r
233 Assert.AreEqual ("", mtb.SelectedText, "#S1");
\r
235 Assert.AreEqual ("", mtb.SelectedText, "#S2");
\r
237 Assert.AreEqual ("abc", mtb.SelectedText, "#S3");
\r
242 public void ResetOnSpaceTest ()
\r
247 mtb = new MaskedTextBox ();
\r
248 Assert.AreEqual (true, mtb.ResetOnSpace, "#R1");
\r
249 mtb.ResetOnSpace = false;
\r
250 Assert.AreEqual (false, mtb.ResetOnSpace, "#R2");
\r
255 public void ResetOnPromptTest ()
\r
260 mtb = new MaskedTextBox ();
\r
261 Assert.AreEqual (true, mtb.ResetOnPrompt, "#R1");
\r
262 mtb.ResetOnPrompt = false;
\r
263 Assert.AreEqual (false, mtb.ResetOnPrompt, "#R2");
\r
268 public void RejectInputOnFirstFailureTest ()
\r
273 mtb = new MaskedTextBox ();
\r
274 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#R1");
\r
275 mtb.RejectInputOnFirstFailure = true;
\r
276 Assert.AreEqual (true, mtb.RejectInputOnFirstFailure, "#R2");
\r
281 public void ReadOnlyTest ()
\r
286 mtb = new MaskedTextBox ();
\r
287 Assert.AreEqual (false, mtb.ReadOnly, "#R1");
\r
288 mtb.ReadOnly = true;
\r
289 Assert.AreEqual (true, mtb.ReadOnly, "#R2");
\r
294 public void PromptCharTest ()
\r
299 mtb = new MaskedTextBox ();
\r
300 Assert.AreEqual ('_', mtb.PromptChar, "#P1");
\r
301 mtb.PromptChar = '*';
\r
302 Assert.AreEqual ('*', mtb.PromptChar, "#P2");
\r
307 public void PasswordCharTest ()
\r
312 mtb = new MaskedTextBox ();
\r
313 Assert.AreEqual ('\0', mtb.PasswordChar, "#P1");
\r
314 mtb.PasswordChar = '*';
\r
315 Assert.AreEqual ('*', mtb.PasswordChar, "#P2");
\r
320 public void MultilineTest ()
\r
325 mtb = new MaskedTextBox ();
\r
326 Assert.AreEqual (false, mtb.Multiline, "#M1");
\r
327 mtb.Multiline = true;
\r
328 Assert.AreEqual (false, mtb.Multiline, "#M2");
\r
333 public void MaskFullTest ()
\r
338 mtb = new MaskedTextBox ();
\r
339 Assert.AreEqual (true, mtb.MaskFull, "#M1");
\r
341 Assert.AreEqual (false, mtb.MaskFull, "#M2");
\r
343 Assert.AreEqual (true, mtb.MaskFull, "#M3");
\r
348 public void MaskedTextProviderTest ()
\r
352 MaskedTextProvider mtp;
\r
354 mtb = new MaskedTextBox ();
\r
355 Assert.IsNull (mtb.MaskedTextProvider, "#M1");
\r
357 Assert.IsNotNull (mtb.MaskedTextProvider, "#M2");
\r
358 Assert.AreEqual ("abc", mtb.MaskedTextProvider.Mask, "#M3");
\r
359 // We always get a clone of the current mtp.
\r
360 Assert.IsTrue (mtb.MaskedTextProvider != mtb.MaskedTextProvider, "#M4");
\r
363 mtp = new MaskedTextProvider ("Z");
\r
364 mtb = new MaskedTextBox (mtp);
\r
365 Assert.IsNotNull (mtb.MaskedTextProvider, "#M5");
\r
366 Assert.AreEqual ("Z", mtb.MaskedTextProvider.Mask, "#6");
\r
367 Assert.IsTrue (mtb.MaskedTextProvider != mtb.MaskedTextProvider, "#M7");
\r
368 Assert.IsTrue (mtb.MaskedTextProvider != mtp, "#M8");
\r
373 public void MaskCompletedTest ()
\r
378 mtb = new MaskedTextBox ();
\r
379 Assert.AreEqual (true, mtb.MaskCompleted, "#M1");
\r
380 mtb.Mask = "abcABCZZZ";
\r
381 Assert.AreEqual (false, mtb.MaskCompleted, "#M2");
\r
382 mtb.Text = "abcabcabc";
\r
383 Assert.AreEqual (true, mtb.MaskCompleted, "#M3");
\r
388 public void MaskTest ()
\r
393 mtb = new MaskedTextBox ();
\r
394 Assert.AreEqual ("", mtb.Mask, "#M1");
\r
396 Assert.AreEqual ("abc", mtb.Mask, "#M2");
\r
398 Assert.AreEqual ("", mtb.Mask, "#M3");
\r
400 Assert.AreEqual ("", mtb.Mask, "#M4");
\r
402 Assert.AreEqual ("", mtb.Mask, "#M5");
\r
407 public void LinesTest ()
\r
412 mtb = new MaskedTextBox ();
\r
413 Assert.AreEqual (0, mtb.Lines.Length, "#L1");
\r
415 Assert.AreEqual (1, mtb.Lines.Length, "#L2");
\r
416 Assert.AreEqual ("abc", mtb.Lines [0], "#L2a");
\r
417 mtb.Text = "abc\nabc";
\r
418 Assert.AreEqual (2, mtb.Lines.Length, "#L3");
\r
419 Assert.AreEqual ("abc", mtb.Lines [0], "#L3a");
\r
420 Assert.AreEqual ("abc", mtb.Lines [1], "#L3b");
\r
425 public void IsOverwriteModeTest ()
\r
430 mtb = new MaskedTextBox ();
\r
431 Assert.AreEqual (false, mtb.IsOverwriteMode, "#I1");
\r
436 public void InsertKeyModeTest ()
\r
441 mtb = new MaskedTextBox ();
\r
442 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#I1");
\r
443 mtb.InsertKeyMode = InsertKeyMode.Insert;
\r
444 Assert.AreEqual (InsertKeyMode.Insert, mtb.InsertKeyMode, "#I2");
\r
445 mtb.InsertKeyMode = InsertKeyMode.Overwrite;
\r
446 Assert.AreEqual (InsertKeyMode.Overwrite, mtb.InsertKeyMode, "#I3");
\r
447 mtb.InsertKeyMode = InsertKeyMode.Default;
\r
448 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#I4");
\r
453 [ExpectedException (typeof (InvalidEnumArgumentException))]
\r
454 public void InsertKeyModeExceptionTest ()
\r
459 mtb = new MaskedTextBox ();
\r
460 mtb.InsertKeyMode = (InsertKeyMode) 123;
\r
465 public void HidePromptOnLeaveTest ()
\r
470 mtb = new MaskedTextBox ();
\r
471 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#H1");
\r
472 mtb.HidePromptOnLeave = true;
\r
473 Assert.AreEqual (true, mtb.HidePromptOnLeave, "#H1");
\r
478 public void FormatProviderTest ()
\r
483 mtb = new MaskedTextBox ();
\r
484 Assert.IsNull (mtb.FormatProvider, "#F1");
\r
485 mtb.FormatProvider = CultureInfo.CurrentCulture.NumberFormat;
\r
486 Assert.IsNotNull (mtb.FormatProvider, "#F2");
\r
487 Assert.AreSame (CultureInfo.CurrentCulture.NumberFormat, mtb.FormatProvider, "#F3");
\r
492 public void CutCopyMaskFormatTest ()
\r
497 mtb = new MaskedTextBox ();
\r
498 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#C1");
\r
499 mtb.CutCopyMaskFormat = MaskFormat.ExcludePromptAndLiterals;
\r
500 Assert.AreEqual (MaskFormat.ExcludePromptAndLiterals, mtb.CutCopyMaskFormat, "#C2");
\r
501 mtb.CutCopyMaskFormat = MaskFormat.IncludeLiterals;
\r
502 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#C3");
\r
503 mtb.CutCopyMaskFormat = MaskFormat.IncludePrompt;
\r
504 Assert.AreEqual (MaskFormat.IncludePrompt, mtb.CutCopyMaskFormat, "#C4");
\r
505 mtb.CutCopyMaskFormat = MaskFormat.IncludePromptAndLiterals;
\r
506 Assert.AreEqual (MaskFormat.IncludePromptAndLiterals, mtb.CutCopyMaskFormat, "#C5");
\r
511 [ExpectedException (typeof (InvalidEnumArgumentException))]
\r
512 public void CutCopyMaskFormatExceptionTest ()
\r
517 mtb = new MaskedTextBox ();
\r
518 mtb.CutCopyMaskFormat = (MaskFormat) 123;
\r
523 public void CultureTest ()
\r
526 MaskedTextProvider mtp;
\r
528 Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("en-US");
\r
529 mtb = new MaskedTextBox ();
\r
530 Assert.IsNotNull (mtb.Culture, "#A1");
\r
531 Assert.AreEqual ("en-US", mtb.Culture.Name, "#A2");
\r
534 Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("es-ES");
\r
535 mtb = new MaskedTextBox ();
\r
536 Assert.IsNotNull (mtb.Culture, "#B1");
\r
537 Assert.AreEqual ("es-ES", mtb.Culture.Name, "#B2");
\r
540 mtp = new MaskedTextProvider ("abc");
\r
541 Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("es-AR");
\r
542 mtb = new MaskedTextBox (mtp);
\r
543 Assert.IsNotNull (mtb.Culture, "#C1");
\r
544 Assert.AreEqual ("es-ES", mtb.Culture.Name, "#C2");
\r
547 mtb = new MaskedTextBox ();
\r
548 mtb.Culture = CultureInfo.GetCultureInfo ("de-DE");
\r
549 Assert.AreEqual ("de-DE", mtb.Culture.Name, "#D1");
\r
552 Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo ("en-US");
\r
557 public void CanUndoTest ()
\r
559 MaskedTextBox mtb = new MaskedTextBox ();
\r
560 TextBoxBase tbb = mtb;
\r
561 Assert.AreEqual (false, mtb.CanUndo, "#A1");
\r
562 Assert.AreEqual (false, tbb.CanUndo, "#A2");
\r
567 public void BeepOnErrorTest ()
\r
569 MaskedTextBox mtb = new MaskedTextBox ();
\r
570 Assert.AreEqual (false, mtb.BeepOnError, "#A1");
\r
571 mtb.BeepOnError = true;
\r
572 Assert.AreEqual (true, mtb.BeepOnError, "#A2");
\r
573 mtb.BeepOnError = false;
\r
574 Assert.AreEqual (false, mtb.BeepOnError, "#A3");
\r
579 public void AsciiOnlyTest ()
\r
581 MaskedTextBox mtb = new MaskedTextBox ();
\r
582 Assert.AreEqual (false, mtb.AsciiOnly, "#A1");
\r
583 mtb.AsciiOnly = true;
\r
584 Assert.AreEqual (true, mtb.AsciiOnly, "#A2");
\r
585 mtb.AsciiOnly = false;
\r
586 Assert.AreEqual (false, mtb.AsciiOnly, "#A3");
\r
591 public void AllowPromptAsInputTest ()
\r
593 MaskedTextBox mtb = new MaskedTextBox ();
\r
594 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#A1");
\r
595 mtb.AllowPromptAsInput = true;
\r
596 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#A2");
\r
597 mtb.AllowPromptAsInput = false;
\r
598 Assert.AreEqual (false, mtb.AllowPromptAsInput, "#A3");
\r
603 public void AcceptsTabTest ()
\r
605 MaskedTextBox mtb = new MaskedTextBox ();
\r
606 Assert.AreEqual (false, mtb.AcceptsTab, "#A1");
\r
607 mtb.AcceptsTab = true;
\r
608 Assert.AreEqual (false, mtb.AcceptsTab, "#A2");
\r
609 mtb.AcceptsTab = false;
\r
610 Assert.AreEqual (false, mtb.AcceptsTab, "#A3");
\r
615 public void ConstructorTest ()
\r
617 using (MaskedTextBox mtb = new MaskedTextBox ()) {
\r
618 Assert.AreEqual (false, mtb.AcceptsTab, "#A_A1");
\r
619 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#A_A2");
\r
620 Assert.AreEqual (false, mtb.AsciiOnly, "#A_A3");
\r
621 Assert.AreEqual (false, mtb.BeepOnError, "#A_B1");
\r
622 Assert.AreEqual (false, mtb.CanUndo, "#A_C1");
\r
623 Assert.IsNotNull (mtb.Culture, "#A_C3");
\r
624 Assert.AreEqual (Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#A_4");
\r
625 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#A_C5");
\r
626 Assert.IsNull (mtb.FormatProvider, "#A_F1");
\r
627 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#A_H1");
\r
628 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#A_I1");
\r
629 Assert.AreEqual (false, mtb.IsOverwriteMode, "#A_I2");
\r
630 Assert.AreEqual (0, mtb.Lines.Length, "#A_L1");
\r
631 Assert.AreEqual ("", mtb.Mask, "#A_M1");
\r
632 Assert.AreEqual (true, mtb.MaskCompleted, "#A_M2");
\r
633 Assert.IsNull (mtb.MaskedTextProvider, "#A_M3");
\r
634 Assert.AreEqual (true, mtb.MaskFull, "#A_M4");
\r
635 Assert.AreEqual (Int16.MaxValue, mtb.MaxLength, "#A_M5");
\r
636 Assert.AreEqual (false, mtb.Multiline, "#A_M6");
\r
637 Assert.AreEqual ('\0', mtb.PasswordChar, "#A_P1");
\r
638 Assert.AreEqual ('_', mtb.PromptChar, "#A_P2");
\r
639 Assert.AreEqual (false, mtb.ReadOnly, "#A_R1");
\r
640 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#A_R2");
\r
641 Assert.AreEqual (true, mtb.ResetOnPrompt, "#A_R3");
\r
642 Assert.AreEqual (true, mtb.ResetOnSpace, "#A_R4");
\r
643 Assert.AreEqual ("", mtb.SelectedText, "#A_S1");
\r
644 Assert.AreEqual (true, mtb.SkipLiterals, "#A_S2");
\r
645 Assert.AreEqual ("", mtb.Text, "#A_T1");
\r
646 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#A_T2");
\r
647 Assert.AreEqual (0, mtb.TextLength, "#A_T3");
\r
648 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#A_T4");
\r
649 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#A_U1");
\r
650 Assert.IsNull (mtb.ValidatingType, "#A_V1");
\r
651 Assert.AreEqual (false, mtb.WordWrap, "#A_W1");
\r
654 using (MaskedTextBox mtb = new MaskedTextBox ("abc")) {
\r
655 Assert.AreEqual (false, mtb.AcceptsTab, "#B_A1");
\r
656 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#B_A2");
\r
657 Assert.AreEqual (false, mtb.AsciiOnly, "#B_A3");
\r
658 Assert.AreEqual (false, mtb.BeepOnError, "#B_B1");
\r
659 Assert.AreEqual (false, mtb.CanUndo, "#B_C1");
\r
660 Assert.IsNotNull (mtb.Culture, "#B_C3");
\r
661 Assert.AreEqual (Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#B_4");
\r
662 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#B_C5");
\r
663 Assert.IsNull (mtb.FormatProvider, "#B_F1");
\r
664 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#B_H1");
\r
665 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#B_I1");
\r
666 Assert.AreEqual (false, mtb.IsOverwriteMode, "#B_I2");
\r
667 Assert.AreEqual (1, mtb.Lines.Length, "#B_L1");
\r
668 Assert.AreEqual ("abc", mtb.Mask, "#B_M1");
\r
669 Assert.AreEqual (true, mtb.MaskCompleted, "#B_M2");
\r
670 Assert.IsNotNull (mtb.MaskedTextProvider, "#B_M3");
\r
671 Assert.AreEqual (false, mtb.MaskFull, "#B_M4");
\r
672 Assert.AreEqual (Int16.MaxValue, mtb.MaxLength, "#B_M5");
\r
673 Assert.AreEqual (false, mtb.Multiline, "#B_M6");
\r
674 Assert.AreEqual ('\0', mtb.PasswordChar, "#B_P1");
\r
675 Assert.AreEqual ('_', mtb.PromptChar, "#B_P2");
\r
676 Assert.AreEqual (false, mtb.ReadOnly, "#B_R1");
\r
677 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#B_R2");
\r
678 Assert.AreEqual (true, mtb.ResetOnPrompt, "#B_R3");
\r
679 Assert.AreEqual (true, mtb.ResetOnSpace, "#B_R4");
\r
680 Assert.AreEqual ("", mtb.SelectedText, "#B_S1");
\r
681 Assert.AreEqual (true, mtb.SkipLiterals, "#B_S2");
\r
682 Assert.AreEqual (" bc", mtb.Text, "#B_T1");
\r
683 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#B_T2");
\r
684 Assert.AreEqual (3, mtb.TextLength, "#B_T3");
\r
685 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#B_T4");
\r
686 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#B_U1");
\r
687 Assert.IsNull (mtb.ValidatingType, "#B_V1");
\r
688 Assert.AreEqual (false, mtb.WordWrap, "#B_W1");
\r
691 using (MaskedTextBox mtb = new MaskedTextBox ("<>")) {
\r
692 Assert.AreEqual (false, mtb.AcceptsTab, "#C_A1");
\r
693 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#C_A2");
\r
694 Assert.AreEqual (false, mtb.AsciiOnly, "#C_A3");
\r
695 Assert.AreEqual (false, mtb.BeepOnError, "#C_B1");
\r
696 Assert.AreEqual (false, mtb.CanUndo, "#C_C1");
\r
697 Assert.IsNotNull (mtb.Culture, "#C_C3");
\r
698 Assert.AreEqual (Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#C_4");
\r
699 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#C_C5");
\r
700 Assert.IsNull (mtb.FormatProvider, "#C_F1");
\r
701 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#C_H1");
\r
702 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#C_I1");
\r
703 Assert.AreEqual (false, mtb.IsOverwriteMode, "#C_I2");
\r
704 Assert.AreEqual (0, mtb.Lines.Length, "#C_L1");
\r
705 Assert.AreEqual ("<>", mtb.Mask, "#C_M1");
\r
706 Assert.AreEqual (true, mtb.MaskCompleted, "#C_M2");
\r
707 Assert.IsNotNull (mtb.MaskedTextProvider, "#C_M3");
\r
708 Assert.AreEqual (true, mtb.MaskFull, "#C_M4");
\r
709 Assert.AreEqual (Int16.MaxValue, mtb.MaxLength, "#C_M5");
\r
710 Assert.AreEqual (false, mtb.Multiline, "#C_M6");
\r
711 Assert.AreEqual ('\0', mtb.PasswordChar, "#C_P1");
\r
712 Assert.AreEqual ('_', mtb.PromptChar, "#C_P2");
\r
713 Assert.AreEqual (false, mtb.ReadOnly, "#C_R1");
\r
714 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#C_R2");
\r
715 Assert.AreEqual (true, mtb.ResetOnPrompt, "#C_R3");
\r
716 Assert.AreEqual (true, mtb.ResetOnSpace, "#C_R4");
\r
717 Assert.AreEqual ("", mtb.SelectedText, "#C_S1");
\r
718 Assert.AreEqual (true, mtb.SkipLiterals, "#C_S2");
\r
719 Assert.AreEqual ("", mtb.Text, "#C_T1");
\r
720 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#C_T2");
\r
721 Assert.AreEqual (0, mtb.TextLength, "#C_T3");
\r
722 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#C_T4");
\r
723 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#C_U1");
\r
724 Assert.IsNull (mtb.ValidatingType, "#C_V1");
\r
725 Assert.AreEqual (false, mtb.WordWrap, "#C_W1");
\r
728 using (MaskedTextBox mtb = new MaskedTextBox ("abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890ÑñæøåÆØÅ!\\ºª\"·$%&/()='?¡¿`^+*´¨Çç-_.:,;}{][")) {
\r
729 Assert.AreEqual (false, mtb.AcceptsTab, "#D_A1");
\r
730 Assert.AreEqual (true, mtb.AllowPromptAsInput, "#D_A2");
\r
731 Assert.AreEqual (false, mtb.AsciiOnly, "#D_A3");
\r
732 Assert.AreEqual (false, mtb.BeepOnError, "#D_B1");
\r
733 Assert.AreEqual (false, mtb.CanUndo, "#D_C1");
\r
734 Assert.IsNotNull (mtb.Culture, "#D_C3");
\r
735 Assert.AreEqual (Thread.CurrentThread.CurrentCulture.Name, mtb.Culture.Name, "#D_4");
\r
736 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#D_C5");
\r
737 Assert.IsNull (mtb.FormatProvider, "#D_F1");
\r
738 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#D_H1");
\r
739 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#D_I1");
\r
740 Assert.AreEqual (false, mtb.IsOverwriteMode, "#D_I2");
\r
741 Assert.AreEqual (1, mtb.Lines.Length, "#D_L1");
\r
742 Assert.AreEqual ("abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ1234567890ÑñæøåÆØÅ!\\ºª\"·$%&/()='?¡¿`^+*´¨Çç-_.:,;}{][", mtb.Mask, "#D_M1");
\r
743 Assert.AreEqual (false, mtb.MaskCompleted, "#D_M2");
\r
744 Assert.IsNotNull (mtb.MaskedTextProvider, "#D_M3");
\r
745 Assert.AreEqual (false, mtb.MaskFull, "#D_M4");
\r
746 Assert.AreEqual (Int16.MaxValue, mtb.MaxLength, "#D_M5");
\r
747 Assert.AreEqual (false, mtb.Multiline, "#D_M6");
\r
748 Assert.AreEqual ('\0', mtb.PasswordChar, "#D_P1");
\r
749 Assert.AreEqual ('_', mtb.PromptChar, "#D_P2");
\r
750 Assert.AreEqual (false, mtb.ReadOnly, "#D_R1");
\r
751 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#D_R2");
\r
752 Assert.AreEqual (true, mtb.ResetOnPrompt, "#D_R3");
\r
753 Assert.AreEqual (true, mtb.ResetOnSpace, "#D_R4");
\r
754 Assert.AreEqual ("", mtb.SelectedText, "#D_S1");
\r
755 Assert.AreEqual (true, mtb.SkipLiterals, "#D_S2");
\r
756 Assert.AreEqual (" bcdefghijklmopqrstuvwxyz B DEFGHIJK MOPQRSTUVWXYZ12345678 ÑñæøåÆØÅ!ºª\"·$% /()=' ¡¿`^+*´¨Çç-_.:,;}{][", mtb.Text, "#D_T1");
\r
757 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#D_T2");
\r
758 Assert.AreEqual (102, mtb.TextLength, "#D_T3");
\r
759 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#D_T4");
\r
760 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#D_U1");
\r
761 Assert.IsNull (mtb.ValidatingType, "#D_V1");
\r
762 Assert.AreEqual (false, mtb.WordWrap, "#D_W1");
\r
765 MaskedTextProvider mtp = new MaskedTextProvider ("abcd", CultureInfo.GetCultureInfo ("es-AR"), false, '>', '^', false);
\r
766 using (MaskedTextBox mtb = new MaskedTextBox (mtp)) {
\r
767 Assert.AreEqual (false, mtb.AcceptsTab, "#E_A1");
\r
768 Assert.AreEqual (false, mtb.AllowPromptAsInput, "#E_A2");
\r
769 Assert.AreEqual (false, mtb.AsciiOnly, "#E_A3");
\r
770 Assert.AreEqual (false, mtb.BeepOnError, "#E_B1");
\r
771 Assert.AreEqual (false, mtb.CanUndo, "#E_C1");
\r
772 Assert.IsNotNull (mtb.Culture, "#E_C3");
\r
773 Assert.AreEqual ("es-AR", mtb.Culture.Name, "#E_4");
\r
774 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.CutCopyMaskFormat, "#E_C5");
\r
775 Assert.IsNull (mtb.FormatProvider, "#E_F1");
\r
776 Assert.AreEqual (false, mtb.HidePromptOnLeave, "#E_H1");
\r
777 Assert.AreEqual (InsertKeyMode.Default, mtb.InsertKeyMode, "#E_I1");
\r
778 Assert.AreEqual (false, mtb.IsOverwriteMode, "#E_I2");
\r
779 Assert.AreEqual (1, mtb.Lines.Length, "#E_L1");
\r
780 Assert.AreEqual ("abcd", mtb.Mask, "#E_M1");
\r
781 Assert.AreEqual (true, mtb.MaskCompleted, "#E_M2");
\r
782 Assert.IsNotNull (mtb.MaskedTextProvider, "#E_M3");
\r
783 Assert.IsFalse (mtb.MaskedTextProvider == mtp, "#E_M3-b");
\r
784 Assert.AreEqual (false, mtb.MaskFull, "#E_M4");
\r
785 Assert.AreEqual (Int16.MaxValue, mtb.MaxLength, "#E_M5");
\r
786 Assert.AreEqual (false, mtb.Multiline, "#E_M6");
\r
787 Assert.AreEqual ('^', mtb.PasswordChar, "#E_P1");
\r
788 Assert.AreEqual ('>', mtb.PromptChar, "#E_P2");
\r
789 Assert.AreEqual (false, mtb.ReadOnly, "#E_R1");
\r
790 Assert.AreEqual (false, mtb.RejectInputOnFirstFailure, "#E_R2");
\r
791 Assert.AreEqual (true, mtb.ResetOnPrompt, "#E_R3");
\r
792 Assert.AreEqual (true, mtb.ResetOnSpace, "#E_R4");
\r
793 Assert.AreEqual ("", mtb.SelectedText, "#E_S1");
\r
794 Assert.AreEqual (true, mtb.SkipLiterals, "#E_S2");
\r
795 Assert.AreEqual (" bcd", mtb.Text, "#E_T1");
\r
796 Assert.AreEqual (HorizontalAlignment.Left, mtb.TextAlign, "#E_T2");
\r
797 Assert.AreEqual (4, mtb.TextLength, "#E_T3");
\r
798 Assert.AreEqual (MaskFormat.IncludeLiterals, mtb.TextMaskFormat, "#E_T4");
\r
799 Assert.AreEqual (false, mtb.UseSystemPasswordChar, "#E_U1");
\r
800 Assert.IsNull (mtb.ValidatingType, "#E_V1");
\r
801 Assert.AreEqual (false, mtb.WordWrap, "#E_W1");
\r
807 public void UndoTest ()
\r
811 mtb = new MaskedTextBox ();
\r
812 mtb.Text = "abcdef";
\r
813 Assert.AreEqual (false, mtb.CanUndo, "#A0-c");
\r
815 Assert.AreEqual ("abcdef", mtb.Text, "#A1");
\r
816 Assert.AreEqual (false, mtb.CanUndo, "#A1-c");
\r
819 Assert.AreEqual ("cdef", mtb.Text, "#A2");
\r
820 Assert.AreEqual (false, mtb.CanUndo, "#A2-c");
\r
826 public void CreateHandleTest ()
\r
828 using (MaskedTextBox mtb = new MaskedTextBox ()) {
\r
829 Assert.AreEqual (false, mtb.IsHandleCreated, "#A1");
\r
830 typeof (MaskedTextBox).GetMethod ("CreateHandle", global::System.Reflection.BindingFlags.Instance | global::System.Reflection.BindingFlags.NonPublic).Invoke (mtb, new object [] { });
\r
831 Assert.AreEqual (true, mtb.IsHandleCreated, "#A2");
\r
836 public void GetFirstCharIndexFromLineTest ()
\r
838 using (MaskedTextBox mtb = new MaskedTextBox ()) {
\r
839 for (int i = -100; i < 100; i++) {
\r
840 Assert.AreEqual (0, mtb.GetFirstCharIndexFromLine (i), "#A" + i.ToString ());
\r
842 mtb.Text = "alñsdh gaph" + Environment.NewLine + "asldg";
\r
843 for (int i = -100; i < 100; i++) {
\r
844 Assert.AreEqual (0, mtb.GetFirstCharIndexFromLine (i), "#B" + i.ToString ());
\r
851 public void GetFirstCharIndexOfCurrentLineTest ()
\r
853 using (MaskedTextBox mtb = new MaskedTextBox ()) {
\r
854 Assert.AreEqual (0, mtb.GetFirstCharIndexOfCurrentLine (), "#A1");
\r
855 mtb.Text = "alñsdh gaph" + Environment.NewLine + "asldg";
\r
856 Assert.AreEqual (0, mtb.GetFirstCharIndexOfCurrentLine (), "#B1");
\r
861 public void GetLineFromCharIndexTest ()
\r
863 using (MaskedTextBox mtb = new MaskedTextBox ()) {
\r
864 for (int i = -100; i < 100; i++) {
\r
865 Assert.AreEqual (0, mtb.GetLineFromCharIndex (i), "#A" + i.ToString ());
\r
867 mtb.Text = "alñsdh gaph" + Environment.NewLine + "asldg";
\r
868 for (int i = -100; i < 100; i++) {
\r
869 Assert.AreEqual (0, mtb.GetLineFromCharIndex (i), "#B" + i.ToString ());
\r
875 public void IsInputKeyTest ()
\r
877 using (Form f = new Form ()) {
\r
878 using (MaskedTextBox mtb = new MaskedTextBox ()) {
\r
879 f.Controls.Add (mtb);
\r
881 MethodInfo IsInputKey = typeof (MaskedTextBox).GetMethod ("IsInputKey", global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance);
\r
883 for (int i = 0; i <= 0xFF; i++) {
\r
884 Keys key = (Keys) i;
\r
885 Keys key_ALT = key | Keys.Alt;
\r
886 Keys key_SHIFT = key | Keys.Shift;
\r
887 Keys key_CTRL = key | Keys.Control;
\r
888 Keys key_ALT_SHIFT = key | Keys.Alt | Keys.Shift;
\r
889 Keys key_ALT_CTRL = key | Keys.Alt | Keys.Control;
\r
890 Keys key_SHIFT_CTLR = key | Keys.Shift | Keys.Control;
\r
891 Keys key_ALT_SHIFT_CTLR = key | Keys.Alt | Keys.Shift | Keys.Control;
\r
893 bool is_input = false;
\r
896 case Keys.PageDown:
\r
908 Assert.AreEqual (is_input, (bool)IsInputKey.Invoke (mtb, new object [] { key }));
\r
909 Assert.AreEqual (false, (bool)IsInputKey.Invoke (mtb, new object [] { key_ALT }));
\r
910 Assert.AreEqual (is_input, (bool)IsInputKey.Invoke (mtb, new object [] { key_SHIFT }));
\r
911 Assert.AreEqual (is_input, (bool)IsInputKey.Invoke (mtb, new object [] { key_CTRL }));
\r
912 Assert.AreEqual (false, (bool)IsInputKey.Invoke (mtb, new object [] { key_ALT_SHIFT }));
\r
913 Assert.AreEqual (false, (bool)IsInputKey.Invoke (mtb, new object [] { key_ALT_CTRL }));
\r
914 Assert.AreEqual (is_input, (bool)IsInputKey.Invoke (mtb, new object [] { key_SHIFT_CTLR }));
\r
915 Assert.AreEqual (false, (bool)IsInputKey.Invoke (mtb, new object [] { key_ALT_SHIFT_CTLR }));
\r
922 public void ValidateTextTest ()
\r
924 Assert.Ignore ("Pending implementation");
\r
928 public void ToStringTest ()
\r
930 Assert.Ignore ("Pending implementation");
\r