[bcl] Remove more NET_2_0 checks from class libs
[mono.git] / mcs / class / System.Web / Test / System.Web.UI.WebControls / DataControlFieldTest.cs
1 //
2 // Tests for System.Web.UI.WebControls.DataControlFieldTest.cs
3 //
4 // Author:
5 //      Yoni Klein (yonik@mainsoft.com)
6 //
7 //
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 //
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 //
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
29
30
31 using System;
32 using System.Collections.Generic;
33 using System.Text;
34 using System.Web;
35 using System.Web.UI;
36 using System.Web.UI.WebControls;
37 using System.IO;
38 using System.Drawing;
39 using System.Collections;
40 using System.Collections.Specialized;
41 using NUnit.Framework;
42
43
44
45
46 namespace MonoTests.System.Web.UI.WebControls
47 {
48         [TestFixture]
49         public class DataControlFieldTest
50         {
51                 class DerivedDataControlField : DataControlField
52                 {
53                         private bool _fieldChanged;
54                         public bool FieldChanged
55                         {
56                                 get { return _fieldChanged; }
57                         }
58
59                         protected override DataControlField CreateField ()
60                         {
61                                 throw new NotImplementedException();
62                         }
63                         public Control DoControl ()
64                         {
65                                 return base.Control;
66                         }
67                         public bool DoDesignMode ()
68                         {
69                                 return base.DesignMode;
70                         }
71                         public bool DoIsTrackingViewState ()
72                         {
73                                 return base.IsTrackingViewState;
74                         }
75
76                         public StateBag StateBag
77                         {
78                                 get { return base.ViewState; }
79                         }
80                         
81                         public void DoTrackViewState ()
82                         {
83                                 base.TrackViewState ();
84                         }
85                         
86                         public void DoCopyProperties (DataControlField newField)
87                         {
88                                 base.CopyProperties (newField);
89                         }
90                         public DataControlField DoCloneField ()
91                         {
92                                 return  base.CloneField ();
93                         }
94
95                         protected override void OnFieldChanged ()
96                         {
97                                 base.OnFieldChanged ();
98                                 _fieldChanged = true;
99                         }
100
101                         public object DoSaveViewState ()
102                         {
103                                 return base.SaveViewState ();
104                         }
105
106                         public void DoLoadViewState (object savedState)
107                         {
108                                 base.LoadViewState (savedState);
109                         }
110                 }
111
112                 [Test]
113                 public void DataControlField_DefaultProperty ()
114                 {
115                         DerivedDataControlField field = new DerivedDataControlField ();
116                         Assert.AreEqual ("", field.AccessibleHeaderText, "AccessibleHeaderText");
117                         Assert.AreEqual ("System.Web.UI.WebControls.Style", field.ControlStyle.ToString (), "ControlStyle");
118                         Assert.AreEqual ("System.Web.UI.WebControls.TableItemStyle", field.FooterStyle.ToString (), "FooterStyle");
119                         Assert.AreEqual ("", field.FooterText, "FooterText");
120                         Assert.AreEqual ("", field.HeaderImageUrl, "HeaderImageUrl");
121                         Assert.AreEqual ("System.Web.UI.WebControls.TableItemStyle", field.HeaderStyle.ToString (), "HeaderStyle");
122                         Assert.AreEqual ("", field.HeaderText, "HeaderText");
123                         Assert.AreEqual (true, field.InsertVisible, "InsertVisible");
124                         Assert.AreEqual ("System.Web.UI.WebControls.TableItemStyle", field.ItemStyle.ToString (), "ItemStyle");
125                         Assert.AreEqual (true, field.ShowHeader, "ShowHeader");
126                         Assert.AreEqual ("", field.SortExpression, "SortExpression");
127                         Assert.AreEqual (true, field.Visible, "Visible");
128
129                         //protected properties
130                         Assert.AreEqual (null, field.DoControl (), "Control");
131                         Assert.AreEqual (false, field.DoDesignMode (), "DesignMode");
132                         Assert.AreEqual (false, field.DoIsTrackingViewState (), "IsTrackingViewState");
133                         Assert.AreEqual ("System.Web.UI.StateBag", field.StateBag.ToString (), "StateBag");
134                 }
135
136                 [Test]
137                 public void DataControlField_AssignProperty ()
138                 {
139                         DerivedDataControlField field = new DerivedDataControlField ();
140                         field.AccessibleHeaderText = "test";
141                         Assert.AreEqual ("test", field.AccessibleHeaderText, "AccessibleHeaderText");
142                         field.ControlStyle.BackColor = Color.Red;
143                         Assert.AreEqual (Color.Red, field.ControlStyle.BackColor, "ControlStyle");
144                         field.FooterStyle.BackColor = Color.Red;
145                         Assert.AreEqual (Color.Red, field.FooterStyle.BackColor, "FooterStyle");
146                         field.FooterText = "test";
147                         Assert.AreEqual ("test", field.FooterText, "FooterText");
148                         field.HeaderImageUrl = "test";
149                         Assert.AreEqual ("test", field.HeaderImageUrl, "HeaderImageUrl");
150                         field.HeaderStyle.BackColor = Color.Red;
151                         Assert.AreEqual (Color.Red, field.HeaderStyle.BackColor, "HeaderStyle");
152                         field.HeaderText = "test";
153                         Assert.AreEqual ("test", field.HeaderText, "HeaderText");
154                         field.ItemStyle.BackColor = Color.Red;
155                         Assert.AreEqual (Color.Red, field.ItemStyle.BackColor, "ItemStyle");
156                         field.ShowHeader = false;
157                         Assert.AreEqual (false, field.ShowHeader, "ShowHeader");
158                         field.SortExpression = "test";
159                         Assert.AreEqual ("test", field.SortExpression, "SortExpression");
160                         field.Visible = false;
161                         Assert.AreEqual (false, field.Visible, "Visible");
162                 }
163
164                 [Test]
165                 public void DataControlField_Initilize ()
166                 {
167                         DerivedDataControlField field = new DerivedDataControlField ();
168                         bool res = field.Initialize (false, new Control ());
169                         Assert.AreEqual (false, res, "Initilize");
170                 }
171
172                 [Test]
173                 public void DataControlField_InitilizeCell ()
174                 {
175                         DerivedDataControlField field = new DerivedDataControlField ();
176                         field.HeaderText = "test";
177                         field.HeaderStyle.BackColor = Color.Red;
178                         field.HeaderImageUrl = "test";
179                         DataControlFieldCell cell = new DataControlFieldCell (field);
180                         field.InitializeCell (cell, DataControlCellType.Header, DataControlRowState.Normal, 1);
181                         Assert.AreEqual ("test", cell.ContainingField.HeaderText, "HeaderText");
182                         Assert.AreEqual ("test", cell.ContainingField.HeaderImageUrl, "HeaderImageUrl");
183                         Assert.AreEqual (Color.Red, cell.ContainingField.HeaderStyle.BackColor, "BackColor");
184                 }
185
186                 [Test]
187                 public void DataControlField_CopyProperties ()
188                 {
189                         DerivedDataControlField field = new DerivedDataControlField ();
190                         DerivedDataControlField newField = new DerivedDataControlField ();
191
192                         field.AccessibleHeaderText = "test";
193                         field.ControlStyle.BackColor = Color.Red;
194                         field.FooterStyle.BackColor = Color.Red;
195                         field.HeaderStyle.BackColor = Color.Red;
196                         field.ItemStyle.BackColor = Color.Red;
197                         field.FooterText = "test";
198                         field.HeaderImageUrl = "test";
199                         field.HeaderText = "test";
200                         field.InsertVisible = false;
201                         field.ShowHeader = false;
202                         field.SortExpression = "test";
203                         field.Visible = false;
204                                                 
205                         field.DoCopyProperties (newField);
206                         
207                         Assert.AreEqual ("test", newField.AccessibleHeaderText, "AccessibleHeaderText");
208                         Assert.AreEqual (Color.Red, newField.ControlStyle.BackColor, "ControlStyle");
209                         Assert.AreEqual (Color.Red, newField.FooterStyle.BackColor, "FooterStyle");
210                         Assert.AreEqual (Color.Red, newField.HeaderStyle.BackColor, "HeaderStyle");
211                         Assert.AreEqual (Color.Red, newField.ItemStyle.BackColor, "ItemStyle");
212                         Assert.AreEqual ("test", newField.FooterText, "FooterText"); 
213                         Assert.AreEqual ("test", newField.HeaderImageUrl,"HeaderImageUrl");
214                         Assert.AreEqual ("test", newField.HeaderText, "HeaderText ");
215                         Assert.AreEqual (false, newField.InsertVisible, "InsertVisible");
216                         Assert.AreEqual (false, newField.ShowHeader, "ShowHeader");
217                         Assert.AreEqual ("test", newField.SortExpression, "SortExpression");
218                         Assert.AreEqual (false, newField.Visible, "Visible"); 
219                 }
220
221                 [Test]
222                 public void DataControlField_Events ()
223                 {
224                         DerivedDataControlField field = new DerivedDataControlField ();
225                         Assert.AreEqual (false, field.FieldChanged, "BeforeChangingProperty");
226                         field.FooterText = "test";
227                         Assert.AreEqual (true, field.FieldChanged, "AfterChangingProperty");
228                 }
229
230                 [Test]
231                 public void DataControlField_ViewState ()
232                 {
233                         DerivedDataControlField field = new DerivedDataControlField ();
234                         DerivedDataControlField newField = new DerivedDataControlField ();
235                         field.DoTrackViewState ();
236                         field.FooterStyle.BackColor = Color.Red;
237                         field.ItemStyle.BackColor = Color.Red;
238                         field.HeaderStyle.BackColor = Color.Red;
239                         object state = field.DoSaveViewState();
240                         newField.DoLoadViewState (state);
241                         Assert.AreEqual (Color.Red, newField.HeaderStyle.BackColor, "HeaderStyle");
242                         Assert.AreEqual (Color.Red, newField.ItemStyle.BackColor, "ItemStyle");
243                         Assert.AreEqual (Color.Red, newField.FooterStyle.BackColor, "FooterStyle");
244                 }
245
246                 [Test]
247                 [ExpectedException (typeof(NotImplementedException))]
248                 public void DataControlField_CloneField ()
249                 {
250                         DerivedDataControlField field = new DerivedDataControlField ();
251                         DerivedDataControlField newField = new DerivedDataControlField ();
252                         newField = (DerivedDataControlField)field.DoCloneField ();
253                 }
254         }
255 }