TreeNodeTest.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. //
  2. // Tests for System.Web.UI.WebControls.ImageMap.cs
  3. //
  4. // Author:
  5. // Hagit Yidov ([email protected]
  6. //
  7. // (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)
  8. //
  9. // Permission is hereby granted, free of charge, to any person obtaining
  10. // a copy of this software and associated documentation files (the
  11. // "Software"), to deal in the Software without restriction, including
  12. // without limitation the rights to use, copy, modify, merge, publish,
  13. // distribute, sublicense, and/or sell copies of the Software, and to
  14. // permit persons to whom the Software is furnished to do so, subject to
  15. // the following conditions:
  16. //
  17. // The above copyright notice and this permission notice shall be
  18. // included in all copies or substantial portions of the Software.
  19. //
  20. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  21. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  22. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  23. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  24. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  25. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  26. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  27. //
  28. #if NET_2_0
  29. using NUnit.Framework;
  30. using System;
  31. using System.IO;
  32. using System.Globalization;
  33. using System.Web;
  34. using System.Web.UI;
  35. using System.Web.UI.WebControls;
  36. using MonoTests.stand_alone.WebHarness;
  37. using MonoTests.SystemWeb.Framework;
  38. using System.Threading;
  39. namespace MonoTests.System.Web.UI.WebControls {
  40. class PokerTreeNode : TreeNode {
  41. // View state Stuff
  42. public PokerTreeNode () {
  43. TrackViewState ();
  44. }
  45. public object SaveState () {
  46. return SaveViewState ();
  47. }
  48. public void LoadState (object o) {
  49. LoadViewState (o);
  50. }
  51. public bool IsTrackingViewStateBase { get { return (base.IsTrackingViewState); } }
  52. public virtual object CloneBase () {
  53. return (base.Clone ());
  54. }
  55. public virtual void RenderPostTextBase (HtmlTextWriter writer) {
  56. base.RenderPostText (writer);
  57. }
  58. public virtual void RenderPreTextBase (HtmlTextWriter writer) {
  59. base.RenderPreText (writer);
  60. }
  61. }
  62. [TestFixture]
  63. public class TreeNodeTest {
  64. [Test]
  65. public void TreeNode_DefaultProperties () {
  66. PokerTreeNode tn = new PokerTreeNode ();
  67. Assert.AreEqual (false, tn.Checked, "Checked");
  68. Assert.AreEqual (0, tn.ChildNodes.Count, "ChildNodes.Count");
  69. Assert.AreEqual (false, tn.DataBound, "DataBound");
  70. Assert.AreEqual (null, tn.DataItem, "DataItem");
  71. Assert.AreEqual (string.Empty, tn.DataPath, "DataPath");
  72. Assert.AreEqual (0, tn.Depth, "Depth");
  73. Assert.AreEqual (null, tn.Expanded, "Expanded");
  74. Assert.AreEqual (string.Empty, tn.ImageToolTip, "ImageToolTip");
  75. Assert.AreEqual (string.Empty, tn.ImageUrl, "ImageUrl");
  76. Assert.AreEqual (string.Empty, tn.NavigateUrl, "NavigateUrl");
  77. Assert.AreEqual (null, tn.Parent, "Parent");
  78. Assert.AreEqual (false, tn.PopulateOnDemand, "PopulateOnDemand");
  79. Assert.AreEqual (TreeNodeSelectAction.Select, tn.SelectAction, "SelectAction");
  80. Assert.AreEqual (false, tn.Selected, "Selected");
  81. Assert.AreEqual (null, tn.ShowCheckBox, "ShowCheckBox");
  82. Assert.AreEqual (string.Empty, tn.Target, "Target");
  83. Assert.AreEqual (string.Empty, tn.Text, "Text");
  84. Assert.AreEqual (string.Empty, tn.Value, "Value");
  85. Assert.AreEqual (string.Empty, tn.ToolTip, "ToolTip");
  86. Assert.AreEqual (string.Empty, tn.ValuePath, "ValuePath");
  87. Assert.AreEqual (true, tn.IsTrackingViewStateBase, "IsTrackingViewState");
  88. }
  89. [Test]
  90. public void TreeNode_AssignToDefaultProperties ()
  91. {
  92. PokerTreeNode tn = new PokerTreeNode ();
  93. tn.Checked = false;
  94. Assert.AreEqual (false, tn.Checked, "Checked");
  95. tn.ChildNodes.Add (new TreeNode ());
  96. Assert.AreEqual (1, tn.ChildNodes.Count, "ChildNodes.Count");
  97. tn.Expanded = false;
  98. Assert.AreEqual (false, tn.Expanded, "Expanded");
  99. tn.ImageToolTip = string.Empty;
  100. Assert.AreEqual (string.Empty, tn.ImageToolTip, "ImageToolTip");
  101. tn.ImageUrl = string.Empty;
  102. Assert.AreEqual (string.Empty, tn.ImageUrl, "ImageUrl");
  103. tn.NavigateUrl = string.Empty;
  104. Assert.AreEqual (string.Empty, tn.NavigateUrl, "NavigateUrl");
  105. tn.PopulateOnDemand = false;
  106. Assert.AreEqual (false, tn.PopulateOnDemand, "PopulateOnDemand");
  107. tn.SelectAction = TreeNodeSelectAction.Select;
  108. Assert.AreEqual (TreeNodeSelectAction.Select, tn.SelectAction, "SelectAction");
  109. tn.Selected = false;
  110. Assert.AreEqual (false, tn.Selected, "Selected");
  111. tn.ShowCheckBox = false;
  112. Assert.AreEqual (false, tn.ShowCheckBox, "ShowCheckBox");
  113. tn.Target = string.Empty;
  114. Assert.AreEqual (string.Empty, tn.Target, "Target");
  115. tn.Text = string.Empty;
  116. Assert.AreEqual (string.Empty, tn.Text, "Text");
  117. tn.Value = string.Empty;
  118. Assert.AreEqual (string.Empty, tn.Value, "Value");
  119. tn.ToolTip = string.Empty;
  120. Assert.AreEqual (string.Empty, tn.ToolTip, "ToolTip");
  121. }
  122. [Test]
  123. public void TreeNode_Method_Select () {
  124. PokerTreeNode tn = new PokerTreeNode ();
  125. Assert.AreEqual (false, tn.Selected, "BeforeSelect");
  126. tn.Select ();
  127. Assert.AreEqual (true, tn.Selected, "AfterSelect");
  128. }
  129. [Test]
  130. public void TreeNode_Method_Clone () {
  131. PokerTreeNode tn1 = new PokerTreeNode ();
  132. TreeNode tn2 = new TreeNode ();
  133. tn1.Text = "CloneThisNode";
  134. tn1.Value = "111";
  135. Assert.AreEqual (string.Empty, tn2.Text, "BeforeClone1");
  136. Assert.AreEqual (string.Empty, tn2.Value, "BeforeClone2");
  137. tn2 = (TreeNode) tn1.CloneBase ();
  138. Assert.AreEqual ("CloneThisNode", tn2.Text, "AfterClone1");
  139. Assert.AreEqual ("111", tn2.Value, "AfterClone2");
  140. }
  141. [Test]
  142. [Category ("NunitWeb")]
  143. public void TreeNode_NavigateUrl () {
  144. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNavigateUrl));
  145. string strTarget =
  146. @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  147. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  148. <tr>
  149. <td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;t=632883840303269703"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""NavigateUrl"" id=""treeview1t0"">TreeNode1</a></td>
  150. </tr>
  151. </table>
  152. </div><a id=""treeview1_SkipLink""></a>";
  153. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  154. HtmlDiff.AssertAreEqual (strTarget, str, "PostbackNavigate");
  155. }
  156. public static void pageLoadNavigateUrl (Page page) {
  157. TreeView tv = new TreeView ();
  158. tv.ID = "treeview1";
  159. PokerTreeNode tn1 = new PokerTreeNode ();
  160. tn1.Text = "TreeNode1";
  161. tn1.NavigateUrl = "NavigateUrl";
  162. tv.Nodes.Add (tn1);
  163. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  164. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  165. page.Form.Controls.Add (lcb);
  166. page.Form.Controls.Add (tv);
  167. page.Form.Controls.Add (lce);
  168. }
  169. static void tv_SelectedNodeChanged (object sender, EventArgs e) {
  170. TreeView tv = (TreeView) sender;
  171. WebTest.CurrentTest.UserData = tv.SelectedNode.Text;
  172. }
  173. [Test]
  174. [Category ("NunitWeb")]
  175. public void TreeNode_Render () {
  176. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRender));
  177. string strTarget =
  178. @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=kffkK8wYLPknq-W8AKNdNQ2&amp;t=632883840303269703"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  179. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  180. <tr>
  181. <td><a id=""treeview1n0"" href=""javascript:TreeView_ToggleNode(treeview1_Data,0,treeview1n0,' ',treeview1n0Nodes)""><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zW7-1Af97Wq_r6fRK7PDqP81&amp;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>
  182. </tr>
  183. </table>
  184. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  185. <tr>
  186. <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;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>
  187. </tr>
  188. </table>
  189. </div><a id=""treeview1_SkipLink""></a>";
  190. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  191. HtmlDiff.AssertAreEqual (strTarget, str, "Render");
  192. }
  193. public static void pageLoadRender (Page page) {
  194. TreeView tv = new TreeView ();
  195. tv.EnableClientScript = false;
  196. tv.ID = "treeview1";
  197. TreeNode tn = new TreeNode
  198. ("text", "value", "imageUrl", "navigateUrl", "target");
  199. tn.Checked = true;
  200. tn.ChildNodes.Add (new TreeNode ("childenode"));
  201. tn.Expanded = true;
  202. tn.ImageToolTip = "ImageToolTip";
  203. tn.PopulateOnDemand = false;
  204. tn.SelectAction = TreeNodeSelectAction.SelectExpand;
  205. tn.Selected = true;
  206. tn.ShowCheckBox = true;
  207. tn.ToolTip = "ToolTip";
  208. tv.Nodes.Add (tn);
  209. tv.DataBind ();
  210. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  211. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  212. page.Form.Controls.Add (lcb);
  213. page.Form.Controls.Add (tv);
  214. page.Form.Controls.Add (lce);
  215. }
  216. [Test]
  217. public void TreeNode_ToggleExpandState ()
  218. {
  219. TreeNode node = new TreeNode ("node");
  220. Assert.AreEqual (null, node.Expanded, "TreeNode_ToggleExpandState#1");
  221. node.ToggleExpandState ();
  222. Assert.AreEqual (true, node.Expanded, "TreeNode_ToggleExpandState#2");
  223. node.ToggleExpandState ();
  224. Assert.AreEqual (false, node.Expanded, "TreeNode_ToggleExpandState#3");
  225. }
  226. [Test]
  227. public void TreeNode_TextValue1 ()
  228. {
  229. TreeNode node = new TreeNode ();
  230. node.Text = "TTT";
  231. Assert.AreEqual ("TTT", node.Value, "TreeNode_TextValue1#1");
  232. node.Value = "";
  233. Assert.AreEqual ("", node.Value, "TreeNode_TextValue1#2");
  234. node.Value = null;
  235. Assert.AreEqual ("TTT", node.Value, "TreeNode_TextValue1#3");
  236. }
  237. [Test]
  238. public void TreeNode_TextValue2 ()
  239. {
  240. TreeNode node = new TreeNode ();
  241. node.Value = "VVV";
  242. Assert.AreEqual ("VVV", node.Text, "TreeNode_TextValue2#1");
  243. node.Text = "";
  244. Assert.AreEqual ("", node.Text, "TreeNode_TextValue2#2");
  245. node.Text = null;
  246. Assert.AreEqual ("VVV", node.Text, "TreeNode_TextValue2#3");
  247. }
  248. }
  249. }
  250. #endif