2008-11-24 Jonathan Pobst <monkey@jpobst.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / ErrorProviderTest.cs
1 //
2 // ErrorProviderTest.cs: Test cases for ErrorProvider.
3 //
4 // Author:
5 //   Ritvik Mayank (mritvik@novell.com)
6 //
7 // (C) 2005 Novell, Inc. (http://www.novell.com)
8 //
9
10 using System;
11 using NUnit.Framework;
12 using System.Windows.Forms;
13 using System.Drawing;
14 using System.Data;
15 using System.Runtime.Remoting;
16
17 namespace MonoTests.System.Windows.Forms
18 {
19         [TestFixture]
20         public class ErrorProviderTest : TestHelper 
21         {
22                 [Test]
23                 public void ErrorProviderPropertyTest ()
24                 {
25                         ErrorProvider myErrorProvider = new ErrorProvider ();
26
27                         // B
28                         Assert.AreEqual (250, myErrorProvider.BlinkRate, "#B1");
29                         Assert.AreEqual (ErrorBlinkStyle.BlinkIfDifferentError, myErrorProvider.BlinkStyle, "#B2");
30
31                         // C
32                         Assert.AreEqual (null, myErrorProvider.ContainerControl, "#C1");
33
34                         // D 
35                         Assert.AreEqual (null, myErrorProvider.DataMember, "#D1");
36                         Assert.AreEqual (null, myErrorProvider.DataSource, "#D2");
37
38                         // I 
39                         Assert.AreEqual (16, myErrorProvider.Icon.Height, "#I1");
40                         Assert.AreEqual (16, myErrorProvider.Icon.Width, "#I2");
41
42                         // S
43                         Assert.AreEqual (null, myErrorProvider.Site, "#S1");
44                 }
45
46                 [Test]
47                 public void BindToDateAndErrorsTest ()
48                 {
49                         ErrorProvider myErrorProvider = new ErrorProvider ();
50                         DataSet myDataSet= new DataSet();
51                         myErrorProvider.DataSource = myDataSet;
52                         myErrorProvider.DataMember = "Customers";
53                         Assert.AreEqual (myDataSet, myErrorProvider.DataSource, "#Bind1");
54                         Assert.AreEqual ("Customers", myErrorProvider.DataMember, "#Bind2");
55                 }
56
57                 [Test]
58                 public void CanExtendTest ()
59                 {
60                         Control myControl = new Control ();
61                         Form myForm = new Form ();
62                         myForm.ShowInTaskbar = false;
63                         ToolBar myToolBar = new ToolBar ();
64                         ErrorProvider myErrorProvider = new ErrorProvider ();
65                         Assert.AreEqual (myErrorProvider.CanExtend (myControl), true, "#ext1");
66                         Assert.AreEqual (myErrorProvider.CanExtend (myToolBar), false, "#ext2");
67                         Assert.AreEqual (myErrorProvider.CanExtend (myForm), false, "#ext3");
68                         myForm.Dispose ();
69                 }
70
71                 [Test]
72                 public void GetandSetErrorTest ()
73                 {
74                         Form myForm = new Form ();
75                         myForm.ShowInTaskbar = false;
76                         Label label1 = new Label ();
77                         Label label2 = new Label ();
78                         ErrorProvider myErrorProvider = new ErrorProvider ();
79                         Assert.AreEqual (string.Empty, myErrorProvider.GetError (label1), "#1");
80                         myErrorProvider.SetError (label1, "ErrorMsg1");
81                         Assert.AreEqual ("ErrorMsg1", myErrorProvider.GetError (label1), "#2");
82                         Assert.AreEqual (string.Empty, myErrorProvider.GetError (label2), "#3");
83                         myErrorProvider.SetError (label2, "ErrorMsg2");
84                         Assert.AreEqual ("ErrorMsg2", myErrorProvider.GetError (label2), "#4");
85                         myErrorProvider.SetError (label2, null);
86                         Assert.AreEqual ("ErrorMsg1", myErrorProvider.GetError (label1), "#5");
87                         Assert.AreEqual (string.Empty, myErrorProvider.GetError (label2), "#6");
88                         myForm.Dispose ();
89                 }
90
91                 [Test]
92                 public void GetandSetIconAlignmentTest ()
93                 {
94                         TextBox myTextBox = new TextBox ();
95                         ErrorProvider myErrorProvider = new ErrorProvider ();
96                         myErrorProvider.SetIconAlignment (myTextBox, ErrorIconAlignment.MiddleRight);
97                         Assert.AreEqual (ErrorIconAlignment.MiddleRight, myErrorProvider.GetIconAlignment (myTextBox), "#getset2");
98                 }
99
100                 [Test]
101                 public void GetandSetIconPaddingTest ()
102                 {
103                         Form myForm = new Form ();
104                         myForm.ShowInTaskbar = false;
105                         ErrorProvider myErrorProvider = new ErrorProvider ();
106                         myErrorProvider.SetIconPadding (myForm, 2);
107                         Assert.AreEqual (2, myErrorProvider.GetIconPadding (myForm), "#getset3");
108                         myForm.Dispose ();
109                 }
110
111                 [Test]
112                 public void Bug420305 ()
113                 {
114                         // Should not throw an NRE
115                         Form f = new Form ();
116                         TextBox tb = new TextBox ();
117
118                         ErrorProvider ep = new ErrorProvider ();
119                         ep.ContainerControl = f;
120
121                         ep.SetIconAlignment (tb, ErrorIconAlignment.MiddleRight);
122                         ep.SetIconPadding (tb, 2);
123
124                         f.Controls.Add (tb);
125
126                         ep.SetError (tb, "arggggh");
127                 }
128                 
129 #if NET_2_0
130                 [Test]
131                 public void ErrorProviderPropertyTag ()
132                 {
133                         ErrorProvider md = new ErrorProvider ();
134                         object s = "MyString";
135
136                         Assert.AreEqual (null, md.Tag, "A1");
137
138                         md.Tag = s;
139                         Assert.AreSame (s, md.Tag, "A2");
140                 }
141
142                 [Test]
143                 public void MethodClear ()
144                 {
145                         Form myForm = new Form ();
146                         myForm.ShowInTaskbar = false;
147                         Label label1 = new Label ();
148                         Label label2 = new Label ();
149                         ErrorProvider myErrorProvider = new ErrorProvider ();
150
151                         myErrorProvider.SetError (label1, "ErrorMsg1");
152                         myErrorProvider.SetError (label2, "ErrorMsg2");
153                         
154                         Assert.AreEqual ("ErrorMsg1", myErrorProvider.GetError (label1), "#1");
155                         Assert.AreEqual ("ErrorMsg2", myErrorProvider.GetError (label2), "#2");
156                         
157                         myErrorProvider.Clear ();
158
159                         Assert.AreEqual (string.Empty, myErrorProvider.GetError (label1), "#3");
160                         Assert.AreEqual (string.Empty, myErrorProvider.GetError (label2), "#4");
161                         
162                         myForm.Dispose ();
163                 }
164 #endif
165         }
166 }