2 // Tests for System.Web.UI.WebControls.DataControlFieldTest.cs
5 // Yoni Klein (yonik@mainsoft.com)
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
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:
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
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.
32 using System.Collections.Generic;
36 using System.Web.UI.WebControls;
39 using System.Collections;
40 using System.Collections.Specialized;
41 using NUnit.Framework;
46 namespace MonoTests.System.Web.UI.WebControls
49 public class DataControlFieldTest
51 class DerivedDataControlField : DataControlField
53 private bool _fieldChanged;
54 public bool FieldChanged
56 get { return _fieldChanged; }
59 protected override DataControlField CreateField ()
61 throw new NotImplementedException();
63 public Control DoControl ()
67 public bool DoDesignMode ()
69 return base.DesignMode;
71 public bool DoIsTrackingViewState ()
73 return base.IsTrackingViewState;
76 public StateBag StateBag
78 get { return base.ViewState; }
81 public void DoTrackViewState ()
83 base.TrackViewState ();
86 public void DoCopyProperties (DataControlField newField)
88 base.CopyProperties (newField);
90 public DataControlField DoCloneField ()
92 return base.CloneField ();
95 protected override void OnFieldChanged ()
97 base.OnFieldChanged ();
101 public object DoSaveViewState ()
103 return base.SaveViewState ();
106 public void DoLoadViewState (object savedState)
108 base.LoadViewState (savedState);
113 public void DataControlField_DefaultProperty ()
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");
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");
137 public void DataControlField_AssignProperty ()
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");
165 public void DataControlField_Initilize ()
167 DerivedDataControlField field = new DerivedDataControlField ();
168 bool res = field.Initialize (false, new Control ());
169 Assert.AreEqual (false, res, "Initilize");
173 public void DataControlField_InitilizeCell ()
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");
187 public void DataControlField_CopyProperties ()
189 DerivedDataControlField field = new DerivedDataControlField ();
190 DerivedDataControlField newField = new DerivedDataControlField ();
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;
205 field.DoCopyProperties (newField);
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");
222 public void DataControlField_Events ()
224 DerivedDataControlField field = new DerivedDataControlField ();
225 Assert.AreEqual (false, field.FieldChanged, "BeforeChangingProperty");
226 field.FooterText = "test";
227 Assert.AreEqual (true, field.FieldChanged, "AfterChangingProperty");
231 public void DataControlField_ViewState ()
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");
247 [ExpectedException (typeof(NotImplementedException))]
248 public void DataControlField_CloneField ()
250 DerivedDataControlField field = new DerivedDataControlField ();
251 DerivedDataControlField newField = new DerivedDataControlField ();
252 newField = (DerivedDataControlField)field.DoCloneField ();