2 // Tests for System.Web.UI.WebControls.ImageMap.cs
\r
5 // Hagit Yidov (hagity@mainsoft.com
\r
7 // (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
\r
9 // Permission is hereby granted, free of charge, to any person obtaining
\r
10 // a copy of this software and associated documentation files (the
\r
11 // "Software"), to deal in the Software without restriction, including
\r
12 // without limitation the rights to use, copy, modify, merge, publish,
\r
13 // distribute, sublicense, and/or sell copies of the Software, and to
\r
14 // permit persons to whom the Software is furnished to do so, subject to
\r
15 // the following conditions:
\r
17 // The above copyright notice and this permission notice shall be
\r
18 // included in all copies or substantial portions of the Software.
\r
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
\r
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
\r
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
\r
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
30 using NUnit.Framework;
\r
33 using System.Globalization;
\r
35 using System.Web.UI;
\r
36 using System.Web.UI.WebControls;
\r
37 using MonoTests.stand_alone.WebHarness;
\r
38 using MonoTests.SystemWeb.Framework;
\r
39 using System.Threading;
\r
41 namespace MonoTests.System.Web.UI.WebControls {
\r
42 class PokerTreeNode : TreeNode {
\r
44 public PokerTreeNode () {
\r
48 public object SaveState () {
\r
49 return SaveViewState ();
\r
52 public void LoadState (object o) {
\r
56 public bool IsTrackingViewStateBase { get { return (base.IsTrackingViewState); } }
\r
58 public virtual object CloneBase () {
\r
59 return (base.Clone ());
\r
62 public virtual void RenderPostTextBase (HtmlTextWriter writer) {
\r
63 base.RenderPostText (writer);
\r
66 public virtual void RenderPreTextBase (HtmlTextWriter writer) {
\r
67 base.RenderPreText (writer);
\r
73 public class TreeNodeTest {
\r
76 public void TreeNode_DefaultProperties () {
\r
77 PokerTreeNode tn = new PokerTreeNode ();
\r
78 Assert.AreEqual (false, tn.Checked, "Checked");
\r
79 Assert.AreEqual (0, tn.ChildNodes.Count, "ChildNodes.Count");
\r
80 Assert.AreEqual (false, tn.DataBound, "DataBound");
\r
81 Assert.AreEqual (null, tn.DataItem, "DataItem");
\r
82 Assert.AreEqual (string.Empty, tn.DataPath, "DataPath");
\r
83 Assert.AreEqual (0, tn.Depth, "Depth");
\r
84 Assert.AreEqual (null, tn.Expanded, "Expanded");
\r
85 Assert.AreEqual (string.Empty, tn.ImageToolTip, "ImageToolTip");
\r
86 Assert.AreEqual (string.Empty, tn.ImageUrl, "ImageUrl");
\r
87 Assert.AreEqual (string.Empty, tn.NavigateUrl, "NavigateUrl");
\r
88 Assert.AreEqual (null, tn.Parent, "Parent");
\r
89 Assert.AreEqual (false, tn.PopulateOnDemand, "PopulateOnDemand");
\r
90 Assert.AreEqual (TreeNodeSelectAction.Select, tn.SelectAction, "SelectAction");
\r
91 Assert.AreEqual (false, tn.Selected, "Selected");
\r
92 Assert.AreEqual (null, tn.ShowCheckBox, "ShowCheckBox");
\r
93 Assert.AreEqual (string.Empty, tn.Target, "Target");
\r
94 Assert.AreEqual (string.Empty, tn.Text, "Text");
\r
95 Assert.AreEqual (string.Empty, tn.Value, "Value");
\r
96 Assert.AreEqual (string.Empty, tn.ToolTip, "ToolTip");
\r
97 Assert.AreEqual (string.Empty, tn.ValuePath, "ValuePath");
\r
98 Assert.AreEqual (true, tn.IsTrackingViewStateBase, "IsTrackingViewState");
\r
102 public void TreeNode_AssignToDefaultProperties ()
\r
104 PokerTreeNode tn = new PokerTreeNode ();
\r
105 tn.Checked = false;
\r
106 Assert.AreEqual (false, tn.Checked, "Checked");
\r
107 tn.ChildNodes.Add (new TreeNode ());
\r
108 Assert.AreEqual (1, tn.ChildNodes.Count, "ChildNodes.Count");
\r
109 tn.Expanded = false;
\r
110 Assert.AreEqual (false, tn.Expanded, "Expanded");
\r
111 tn.ImageToolTip = string.Empty;
\r
112 Assert.AreEqual (string.Empty, tn.ImageToolTip, "ImageToolTip");
\r
113 tn.ImageUrl = string.Empty;
\r
114 Assert.AreEqual (string.Empty, tn.ImageUrl, "ImageUrl");
\r
115 tn.NavigateUrl = string.Empty;
\r
116 Assert.AreEqual (string.Empty, tn.NavigateUrl, "NavigateUrl");
\r
117 tn.PopulateOnDemand = false;
\r
118 Assert.AreEqual (false, tn.PopulateOnDemand, "PopulateOnDemand");
\r
119 tn.SelectAction = TreeNodeSelectAction.Select;
\r
120 Assert.AreEqual (TreeNodeSelectAction.Select, tn.SelectAction, "SelectAction");
\r
121 tn.Selected = false;
\r
122 Assert.AreEqual (false, tn.Selected, "Selected");
\r
123 tn.ShowCheckBox = false;
\r
124 Assert.AreEqual (false, tn.ShowCheckBox, "ShowCheckBox");
\r
125 tn.Target = string.Empty;
\r
126 Assert.AreEqual (string.Empty, tn.Target, "Target");
\r
127 tn.Text = string.Empty;
\r
128 Assert.AreEqual (string.Empty, tn.Text, "Text");
\r
129 tn.Value = string.Empty;
\r
130 Assert.AreEqual (string.Empty, tn.Value, "Value");
\r
131 tn.ToolTip = string.Empty;
\r
132 Assert.AreEqual (string.Empty, tn.ToolTip, "ToolTip");
\r
136 public void TreeNode_Method_Select () {
\r
137 PokerTreeNode tn = new PokerTreeNode ();
\r
138 Assert.AreEqual (false, tn.Selected, "BeforeSelect");
\r
140 Assert.AreEqual (true, tn.Selected, "AfterSelect");
\r
144 public void TreeNode_Method_Clone () {
\r
145 PokerTreeNode tn1 = new PokerTreeNode ();
\r
146 TreeNode tn2 = new TreeNode ();
\r
147 tn1.Text = "CloneThisNode";
\r
149 Assert.AreEqual (string.Empty, tn2.Text, "BeforeClone1");
\r
150 Assert.AreEqual (string.Empty, tn2.Value, "BeforeClone2");
\r
151 tn2 = (TreeNode) tn1.CloneBase ();
\r
152 Assert.AreEqual ("CloneThisNode", tn2.Text, "AfterClone1");
\r
153 Assert.AreEqual ("111", tn2.Value, "AfterClone2");
\r
157 [Category ("NunitWeb")]
\r
158 public void TreeNode_NavigateUrl () {
\r
159 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNavigateUrl));
\r
161 @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
\r
162 <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
\r
164 <td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&t=632883840303269703"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""NavigateUrl"" id=""treeview1t0"">TreeNode1</a></td>
\r
167 </div><a id=""treeview1_SkipLink""></a>";
\r
168 string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
\r
169 HtmlDiff.AssertAreEqual (strTarget, str, "PostbackNavigate");
\r
171 public static void pageLoadNavigateUrl (Page page) {
\r
172 TreeView tv = new TreeView ();
\r
173 tv.ID = "treeview1";
\r
174 PokerTreeNode tn1 = new PokerTreeNode ();
\r
175 tn1.Text = "TreeNode1";
\r
176 tn1.NavigateUrl = "NavigateUrl";
\r
177 tv.Nodes.Add (tn1);
\r
178 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
\r
179 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
\r
180 page.Form.Controls.Add (lcb);
\r
181 page.Form.Controls.Add (tv);
\r
182 page.Form.Controls.Add (lce);
\r
185 static void tv_SelectedNodeChanged (object sender, EventArgs e) {
\r
186 TreeView tv = (TreeView) sender;
\r
187 WebTest.CurrentTest.UserData = tv.SelectedNode.Text;
\r
191 [Category ("NunitWeb")]
\r
192 public void TreeNode_Render () {
\r
193 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRender));
\r
195 @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
\r
196 <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
\r
198 <td><a id=""treeview1n0"" href=""javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)""><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zW7-1Af97Wq_r6fRK7PDqP81&t=632883840303269703"" alt=""Collapse text"" style=""border-width:0;"" /></a></td><td><a href=""navigateUrl"" target=""target"" onclick=""javascript:TreeView_SelectNode(treeview1_Data, this,'treeview1t0');javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)"" title=""ToolTip"" id=""treeview1t0i""><img src=""imageUrl"" alt=""ImageToolTip"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n0CheckBox"" id=""treeview1n0CheckBox"" checked=""checked"" title=""text"" /><a class=""treeview1_0"" href=""navigateUrl"" target=""target"" onclick=""javascript:TreeView_SelectNode(treeview1_Data, this,'treeview1t0');javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)"" title=""ToolTip"" id=""treeview1t0"">text</a></td>
\r
201 <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
\r
203 <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&t=632883840303269703"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','svalue\\childenode')"" onclick=""TreeView_SelectNode(treeview1_Data, this,'treeview1t1');"" id=""treeview1t1"">childenode</a></td>
\r
206 </div><a id=""treeview1_SkipLink""></a>";
\r
207 string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
\r
208 HtmlDiff.AssertAreEqual (strTarget, str, "Render");
\r
210 public static void pageLoadRender (Page page) {
\r
211 TreeView tv = new TreeView ();
\r
212 tv.EnableClientScript = false;
\r
213 tv.ID = "treeview1";
\r
214 TreeNode tn = new TreeNode
\r
215 ("text", "value", "imageUrl", "navigateUrl", "target");
\r
217 tn.ChildNodes.Add (new TreeNode ("childenode"));
\r
218 tn.Expanded = true;
\r
219 tn.ImageToolTip = "ImageToolTip";
\r
220 tn.PopulateOnDemand = false;
\r
221 tn.SelectAction = TreeNodeSelectAction.SelectExpand;
\r
222 tn.Selected = true;
\r
223 tn.ShowCheckBox = true;
\r
224 tn.ToolTip = "ToolTip";
\r
227 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
\r
228 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
\r
229 page.Form.Controls.Add (lcb);
\r
230 page.Form.Controls.Add (tv);
\r
231 page.Form.Controls.Add (lce);
\r
235 public void TreeNode_ToggleExpandState ()
\r
237 TreeNode node = new TreeNode ("node");
\r
238 Assert.AreEqual (null, node.Expanded, "TreeNode_ToggleExpandState#1");
\r
239 node.ToggleExpandState ();
\r
240 Assert.AreEqual (true, node.Expanded, "TreeNode_ToggleExpandState#2");
\r
241 node.ToggleExpandState ();
\r
242 Assert.AreEqual (false, node.Expanded, "TreeNode_ToggleExpandState#3");
\r