TreeViewTest.cs 118 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191
  1. //
  2. // System.Web.UI.WebControls.TreeViewTest.cs
  3. // - Unit tests for System.Web.UI.Webcontrols.TreeView
  4. //
  5. //
  6. // Authors:
  7. // Chris Toshok ([email protected])
  8. // Hagit Yidov ([email protected]
  9. //
  10. // (C) 2005 Novell, Inc (http://www.novell.com)
  11. //
  12. // Permission is hereby granted, free of charge, to any person obtaining
  13. // a copy of this software and associated documentation files (the
  14. // "Software"), to deal in the Software without restriction, including
  15. // without limitation the rights to use, copy, modify, merge, publish,
  16. // distribute, sublicense, and/or sell copies of the Software, and to
  17. // permit persons to whom the Software is furnished to do so, subject to
  18. // the following conditions:
  19. //
  20. // The above copyright notice and this permission notice shall be
  21. // included in all copies or substantial portions of the Software.
  22. //
  23. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  24. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  25. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  26. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  27. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  28. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  29. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  30. //
  31. //
  32. #if NET_2_0
  33. using System;
  34. using System.IO;
  35. using System.Globalization;
  36. using System.Web;
  37. using System.Web.UI;
  38. using System.Web.UI.WebControls;
  39. using MonoTests.stand_alone.WebHarness;
  40. using MonoTests.SystemWeb.Framework;
  41. using System.Xml;
  42. using System.Collections.Specialized;
  43. using System.Threading;
  44. using NUnit.Framework;
  45. namespace MonoTests.System.Web.UI.WebControls {
  46. public class TreeViewPoker : TreeView {
  47. }
  48. class PokerTreeView : TreeView {
  49. // View state Stuff
  50. public PokerTreeView () {
  51. TrackViewState ();
  52. }
  53. public object SaveState () {
  54. return SaveViewState ();
  55. }
  56. public void LoadState (object o) {
  57. LoadViewState (o);
  58. }
  59. public StateBag StateBag {
  60. get { return base.ViewState; }
  61. }
  62. public HtmlTextWriterTag TagKeyFromBase {
  63. get { return base.TagKey; }
  64. }
  65. // Protected Methods
  66. public void DataBindFromBase (bool raiseOnDataBinding) {
  67. base.DataBind (raiseOnDataBinding);
  68. }
  69. public void AddAttributesToRenderBase (HtmlTextWriter writer) {
  70. base.AddAttributesToRender (writer);
  71. }
  72. public ControlCollection CreateControlCollectionBase () {
  73. return (base.CreateControlCollection ());
  74. }
  75. public TreeNode CreateNodeBase () {
  76. TreeNode tn = base.CreateNode ();
  77. tn.Text = "New Tree Node";
  78. return (tn);
  79. }
  80. public void RaiseCallbackEventBase (string eventArgument) {
  81. base.RaiseCallbackEvent (eventArgument);
  82. }
  83. public string GetCallbackResultBase () {
  84. return (base.GetCallbackResult ());
  85. }
  86. public void SetNodeDataBoundBase (TreeNode node, bool dataBound) {
  87. base.SetNodeDataBound (node, dataBound);
  88. }
  89. public void SetNodeDataItemBase (TreeNode node, object dataItem) {
  90. base.SetNodeDataItem (node, dataItem);
  91. }
  92. public void SetNodeDataPathBase (TreeNode node, string dataPath) {
  93. base.SetNodeDataPath (node, dataPath);
  94. }
  95. public void PerformDataBindingBase () {
  96. base.PerformDataBinding ();
  97. }
  98. // Events
  99. public void OnInitBase (EventArgs e) { base.OnInit (e); }
  100. public void OnPreRenderBase (EventArgs e) { base.OnPreRender (e); }
  101. public void OnSelectedNodeChangedBase (EventArgs e) { base.OnSelectedNodeChanged (e); }
  102. public void OnTreeNodeCheckChangedBase (TreeNodeEventArgs e) { base.OnTreeNodeCheckChanged (e); }
  103. public void OnTreeNodeCollapsedBase (TreeNodeEventArgs e) { base.OnTreeNodeCollapsed (e); }
  104. public void OnTreeNodeDataBoundBase (TreeNodeEventArgs e) { base.OnTreeNodeDataBound (e); }
  105. public void OnTreeNodeExpandedBase (TreeNodeEventArgs e) { base.OnTreeNodeExpanded (e); }
  106. public void OnTreeNodePopulateBase (TreeNodeEventArgs e) { base.OnTreeNodePopulate (e); }
  107. public void OnBubbleEventBase (Object o, EventArgs e) { base.OnBubbleEvent (o, e); }
  108. }
  109. [TestFixture]
  110. public class TreeViewTest {
  111. [TestFixtureSetUp]
  112. public void SetUp ()
  113. {
  114. #if VISUAL_STUDIO
  115. WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.NoEventValidation.aspx", "NoEventValidation.aspx");
  116. #else
  117. WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");
  118. #endif
  119. }
  120. [Test]
  121. public void Defaults () {
  122. TreeViewPoker p = new TreeViewPoker ();
  123. Assert.AreEqual ("Collapse {0}", p.CollapseImageToolTip, "A1");
  124. Assert.IsTrue (p.AutoGenerateDataBindings, "A2");
  125. Assert.AreEqual ("", p.CollapseImageUrl, "A3");
  126. Assert.IsNotNull (p.DataBindings, "A4");
  127. Assert.AreEqual (0, p.DataBindings.Count, "A4.1");
  128. Assert.IsTrue (p.EnableClientScript, "A5");
  129. Assert.AreEqual (-1, p.ExpandDepth, "A6");
  130. Assert.AreEqual ("Expand {0}", p.ExpandImageToolTip, "A7");
  131. Assert.AreEqual ("", p.ExpandImageUrl, "A8");
  132. Assert.IsNotNull (p.HoverNodeStyle, "A9");
  133. Assert.AreEqual (TreeViewImageSet.Custom, p.ImageSet, "A10");
  134. Assert.IsNotNull (p.LeafNodeStyle, "A11");
  135. Assert.IsNotNull (p.LevelStyles, "A12");
  136. Assert.AreEqual (0, p.LevelStyles.Count, "A12.1");
  137. Assert.AreEqual ("", p.LineImagesFolder, "A13");
  138. Assert.AreEqual (-1, p.MaxDataBindDepth, "A14");
  139. Assert.AreEqual (20, p.NodeIndent, "A15");
  140. Assert.IsNotNull (p.Nodes, "A16");
  141. Assert.AreEqual (0, p.Nodes.Count, "A16.1");
  142. Assert.IsNotNull (p.NodeStyle, "A17");
  143. Assert.IsFalse (p.NodeWrap, "A18");
  144. Assert.AreEqual ("", p.NoExpandImageUrl, "A19");
  145. Assert.IsNotNull (p.ParentNodeStyle, "A20");
  146. Assert.AreEqual ('/', p.PathSeparator, "A21");
  147. Assert.IsTrue (p.PopulateNodesFromClient, "A22");
  148. Assert.IsNotNull (p.RootNodeStyle, "A23");
  149. Assert.IsNotNull (p.SelectedNodeStyle, "A24");
  150. Assert.AreEqual (TreeNodeTypes.None, p.ShowCheckBoxes, "A25");
  151. Assert.IsTrue (p.ShowExpandCollapse, "A26");
  152. Assert.AreEqual ("Skip Navigation Links.", p.SkipLinkText, "A27");
  153. Assert.IsNull (p.SelectedNode, "A28");
  154. Assert.AreEqual ("", p.SelectedValue, "A29");
  155. Assert.AreEqual ("", p.Target, "A30");
  156. Assert.IsTrue (p.Visible, "A31");
  157. }
  158. [Test]
  159. public void TreeView_DefaultProperties () {
  160. PokerTreeView tv = new PokerTreeView ();
  161. Assert.AreEqual (0, tv.StateBag.Count, "ViewState.Count");
  162. // Public Properties
  163. Assert.AreEqual (true, tv.AutoGenerateDataBindings, "AutoGenerateDataBindings");
  164. Assert.AreEqual (0, tv.CheckedNodes.Count, "CheckedNodes");
  165. Assert.AreEqual ("Collapse {0}", tv.CollapseImageToolTip, "CollapseImageToolTip");
  166. Assert.AreEqual (string.Empty, tv.CollapseImageUrl, "CollapseImageUrl");
  167. Assert.AreEqual (0, tv.DataBindings.Count, "DataBindings");
  168. Assert.AreEqual (true, tv.EnableClientScript, "EnableClientScript");
  169. Assert.AreEqual (-1, tv.ExpandDepth, "ExpandDepth");
  170. Assert.AreEqual ("Expand {0}", tv.ExpandImageToolTip, "ExpandImageToolTip");
  171. Assert.AreEqual (string.Empty, tv.ExpandImageUrl, "ExpandImageUrl");
  172. Assert.AreEqual (TreeViewImageSet.Custom, tv.ImageSet, "ImageSet");
  173. Assert.AreEqual (0, tv.LevelStyles.Count, "LevelStyles");
  174. Assert.AreEqual (string.Empty, tv.LineImagesFolder, "LineImagesFolder");
  175. Assert.AreEqual (-1, tv.MaxDataBindDepth, "MaxDataBindDepth");
  176. Assert.AreEqual (20, tv.NodeIndent, "NodeIndent");
  177. Assert.AreEqual (0, tv.Nodes.Count, "Nodes");
  178. Assert.AreEqual (false, tv.NodeWrap, "NodeWrap");
  179. Assert.AreEqual (string.Empty, tv.NoExpandImageUrl, "NoExpandImageUrl");
  180. Assert.AreEqual (true, tv.PopulateNodesFromClient, "PopulateNodesFromClient");
  181. Assert.AreEqual (null, tv.SelectedNode, "SelectedNode");
  182. Assert.AreEqual (string.Empty, tv.SelectedValue, "SelectedValue");
  183. Assert.AreEqual (TreeNodeTypes.None, tv.ShowCheckBoxes, "ShowCheckBoxes");
  184. Assert.AreEqual (true, tv.ShowExpandCollapse, "ShowExpandCollapse");
  185. Assert.AreEqual (false, tv.ShowLines, "ShowLines");
  186. Assert.AreEqual ("Skip Navigation Links.", tv.SkipLinkText, "SkipLinkText");
  187. Assert.AreEqual (string.Empty, tv.Target, "Target");
  188. Assert.AreEqual (true, tv.Visible, "Visible");
  189. // Protected Properties
  190. Assert.AreEqual (HtmlTextWriterTag.Div, tv.TagKeyFromBase, "TagKey");
  191. }
  192. [Test]
  193. public void Treeview_AssignToDefaultProperties () {
  194. PokerTreeView tv = new PokerTreeView ();
  195. Assert.AreEqual (0, tv.StateBag.Count, "ViewState.Count");
  196. tv.AutoGenerateDataBindings = true;
  197. Assert.AreEqual (true, tv.AutoGenerateDataBindings, "AutoGenerateDataBindings");
  198. Assert.AreEqual (1, tv.StateBag.Count, "ViewState.Count-1");
  199. //tv.CheckedNodes.Add (new TreeNode ());
  200. //Assert.AreEqual (1, tv.CheckedNodes.Count, "CheckedNodes");
  201. //Assert.AreEqual (1, tv.StateBag.Count, "ViewState.Count-2");
  202. tv.CollapseImageToolTip = "Collapse {0}";
  203. Assert.AreEqual ("Collapse {0}", tv.CollapseImageToolTip, "CollapseImageToolTip");
  204. Assert.AreEqual (2, tv.StateBag.Count, "ViewState.Count-3");
  205. tv.CollapseImageUrl = string.Empty;
  206. Assert.AreEqual (string.Empty, tv.CollapseImageUrl, "CollapseImageUrl");
  207. Assert.AreEqual (3, tv.StateBag.Count, "ViewState.Count-4");
  208. tv.DataBindings.Add (new TreeNodeBinding ());
  209. Assert.AreEqual (1, tv.DataBindings.Count, "DataBindings");
  210. Assert.AreEqual (3, tv.StateBag.Count, "ViewState.Count-5");
  211. tv.EnableClientScript = true;
  212. Assert.AreEqual (true, tv.EnableClientScript, "EnableClientScript");
  213. Assert.AreEqual (4, tv.StateBag.Count, "ViewState.Count-6");
  214. tv.ExpandDepth = -1;
  215. Assert.AreEqual (-1, tv.ExpandDepth, "ExpandDepth");
  216. Assert.AreEqual (5, tv.StateBag.Count, "ViewState.Count-7");
  217. tv.ExpandImageToolTip = "Expand {0}";
  218. Assert.AreEqual ("Expand {0}", tv.ExpandImageToolTip, "ExpandImageToolTip");
  219. Assert.AreEqual (6, tv.StateBag.Count, "ViewState.Count-8");
  220. tv.ExpandImageUrl = string.Empty;
  221. Assert.AreEqual (string.Empty, tv.ExpandImageUrl, "ExpandImageUrl");
  222. Assert.AreEqual (7, tv.StateBag.Count, "ViewState.Count-9");
  223. tv.ImageSet = TreeViewImageSet.Custom;
  224. Assert.AreEqual (TreeViewImageSet.Custom, tv.ImageSet, "ImageSet");
  225. Assert.AreEqual (8, tv.StateBag.Count, "ViewState.Count-10");
  226. tv.LevelStyles.Add (new TreeNodeStyle ());
  227. Assert.AreEqual (1, tv.LevelStyles.Count, "LevelStyles");
  228. Assert.AreEqual (8, tv.StateBag.Count, "ViewState.Count-11");
  229. tv.LineImagesFolder = string.Empty;
  230. Assert.AreEqual (string.Empty, tv.LineImagesFolder, "LineImagesFolder");
  231. Assert.AreEqual (9, tv.StateBag.Count, "ViewState.Count-12");
  232. tv.MaxDataBindDepth = -1;
  233. Assert.AreEqual (-1, tv.MaxDataBindDepth, "MaxDataBindDepth");
  234. Assert.AreEqual (10, tv.StateBag.Count, "ViewState.Count-13");
  235. tv.NodeIndent = 20;
  236. Assert.AreEqual (20, tv.NodeIndent, "NodeIndent");
  237. Assert.AreEqual (11, tv.StateBag.Count, "ViewState.Count-14");
  238. tv.Nodes.Add (new TreeNode ());
  239. Assert.AreEqual (1, tv.Nodes.Count, "Nodes");
  240. Assert.AreEqual (11, tv.StateBag.Count, "ViewState.Count-15");
  241. tv.NodeWrap = false;
  242. Assert.AreEqual (false, tv.NodeWrap, "NodeWrap");
  243. Assert.AreEqual (12, tv.StateBag.Count, "ViewState.Count-16");
  244. tv.NoExpandImageUrl = string.Empty;
  245. Assert.AreEqual (string.Empty, tv.NoExpandImageUrl, "NoExpandImageUrl");
  246. Assert.AreEqual (13, tv.StateBag.Count, "ViewState.Count-17");
  247. tv.PopulateNodesFromClient = true;
  248. Assert.AreEqual (true, tv.PopulateNodesFromClient, "PopulateNodesFromClient");
  249. Assert.AreEqual (14, tv.StateBag.Count, "ViewState.Count-18");
  250. tv.ShowCheckBoxes = TreeNodeTypes.None;
  251. Assert.AreEqual (TreeNodeTypes.None, tv.ShowCheckBoxes, "ShowCheckBoxes");
  252. Assert.AreEqual (15, tv.StateBag.Count, "ViewState.Count-19");
  253. tv.ShowExpandCollapse = true;
  254. Assert.AreEqual (true, tv.ShowExpandCollapse, "ShowExpandCollapse");
  255. Assert.AreEqual (16, tv.StateBag.Count, "ViewState.Count-20");
  256. tv.ShowLines = false;
  257. Assert.AreEqual (false, tv.ShowLines, "ShowLines");
  258. Assert.AreEqual (17, tv.StateBag.Count, "ViewState.Count-21");
  259. tv.SkipLinkText = "Skip Navigation Links.";
  260. Assert.AreEqual ("Skip Navigation Links.", tv.SkipLinkText, "SkipLinkText");
  261. Assert.AreEqual (18, tv.StateBag.Count, "ViewState.Count-22");
  262. tv.Target = string.Empty;
  263. Assert.AreEqual (string.Empty, tv.Target, "Target");
  264. Assert.AreEqual (19, tv.StateBag.Count, "ViewState.Count-23");
  265. tv.Visible = true;
  266. Assert.AreEqual (true, tv.Visible, "Visible");
  267. Assert.AreEqual (19, tv.StateBag.Count, "ViewState.Count-24");
  268. }
  269. [Test]
  270. public void Treeview_ViewState () {
  271. PokerTreeView tv = new PokerTreeView ();
  272. tv.AutoGenerateDataBindings = true;
  273. Assert.AreEqual (true, tv.AutoGenerateDataBindings, "AutoGenerateDataBindings-beforecopy");
  274. TreeNode node = new TreeNode ();
  275. node.Checked = true;
  276. tv.Nodes.Add (node);
  277. tv.Nodes.Add (new TreeNode ());
  278. Assert.AreEqual (2, tv.Nodes.Count, "Nodes-beforecopy");
  279. Assert.AreEqual (1, tv.CheckedNodes.Count, "CheckedNodes-beforecopy");
  280. tv.CollapseImageToolTip = "Collapse {0}";
  281. Assert.AreEqual ("Collapse {0}", tv.CollapseImageToolTip, "CollapseImageToolTip-beforecopy");
  282. tv.CollapseImageUrl = string.Empty;
  283. Assert.AreEqual (string.Empty, tv.CollapseImageUrl, "CollapseImageUrl-beforecopy");
  284. tv.DataBindings.Add (new TreeNodeBinding ());
  285. Assert.AreEqual (1, tv.DataBindings.Count, "DataBindings-beforecopy");
  286. tv.EnableClientScript = true;
  287. Assert.AreEqual (true, tv.EnableClientScript, "EnableClientScript-beforecopy");
  288. tv.ExpandDepth = -1;
  289. Assert.AreEqual (-1, tv.ExpandDepth, "ExpandDepth-beforecopy");
  290. tv.ExpandImageToolTip = "Expand {0}";
  291. Assert.AreEqual ("Expand {0}", tv.ExpandImageToolTip, "ExpandImageToolTip-beforecopy");
  292. tv.ExpandImageUrl = string.Empty;
  293. Assert.AreEqual (string.Empty, tv.ExpandImageUrl, "ExpandImageUrl-beforecopy");
  294. tv.ImageSet = TreeViewImageSet.Custom;
  295. Assert.AreEqual (TreeViewImageSet.Custom, tv.ImageSet, "ImageSet-beforecopy");
  296. tv.LevelStyles.Add (new TreeNodeStyle ());
  297. Assert.AreEqual (1, tv.LevelStyles.Count, "LevelStyles-beforecopy");
  298. tv.LineImagesFolder = string.Empty;
  299. Assert.AreEqual (string.Empty, tv.LineImagesFolder, "LineImagesFolder-beforecopy");
  300. tv.MaxDataBindDepth = -1;
  301. Assert.AreEqual (-1, tv.MaxDataBindDepth, "MaxDataBindDepth-beforecopy");
  302. tv.NodeIndent = 20;
  303. Assert.AreEqual (20, tv.NodeIndent, "NodeIndent-beforecopy");
  304. tv.NodeWrap = false;
  305. Assert.AreEqual (false, tv.NodeWrap, "NodeWrap-beforecopy");
  306. tv.NoExpandImageUrl = string.Empty;
  307. Assert.AreEqual (string.Empty, tv.NoExpandImageUrl, "NoExpandImageUrl-beforecopy");
  308. tv.PopulateNodesFromClient = true;
  309. Assert.AreEqual (true, tv.PopulateNodesFromClient, "PopulateNodesFromClient-beforecopy");
  310. tv.ShowCheckBoxes = TreeNodeTypes.None;
  311. Assert.AreEqual (TreeNodeTypes.None, tv.ShowCheckBoxes, "ShowCheckBoxes-beforecopy");
  312. tv.ShowExpandCollapse = true;
  313. Assert.AreEqual (true, tv.ShowExpandCollapse, "ShowExpandCollapse-beforecopy");
  314. tv.ShowLines = false;
  315. Assert.AreEqual (false, tv.ShowLines, "ShowLines-beforecopy");
  316. tv.SkipLinkText = "Skip Navigation Links.";
  317. Assert.AreEqual ("Skip Navigation Links.", tv.SkipLinkText, "SkipLinkText-beforecopy");
  318. tv.Target = string.Empty;
  319. Assert.AreEqual (string.Empty, tv.Target, "Target-beforecopy");
  320. tv.Visible = true;
  321. Assert.AreEqual (true, tv.Visible, "Visible-beforecopy");
  322. object state = tv.SaveState ();
  323. PokerTreeView copy = new PokerTreeView ();
  324. copy.LoadState (state);
  325. Assert.AreEqual (true, copy.AutoGenerateDataBindings, "AutoGenerateDataBindings-aftercopy");
  326. Assert.AreEqual ("Collapse {0}", copy.CollapseImageToolTip, "CollapseImageToolTip-aftercopy");
  327. Assert.AreEqual (string.Empty, copy.CollapseImageUrl, "CollapseImageUrl-aftercopy");
  328. Assert.AreEqual (true, copy.EnableClientScript, "EnableClientScript-aftercopy");
  329. Assert.AreEqual (-1, copy.ExpandDepth, "ExpandDepth-aftercopy");
  330. Assert.AreEqual ("Expand {0}", copy.ExpandImageToolTip, "ExpandImageToolTip-aftercopy");
  331. Assert.AreEqual (string.Empty, copy.ExpandImageUrl, "ExpandImageUrl-aftercopy");
  332. Assert.AreEqual (TreeViewImageSet.Custom, copy.ImageSet, "ImageSet-aftercopy");
  333. Assert.AreEqual (1, copy.LevelStyles.Count, "LevelStyles-aftercopy");
  334. Assert.AreEqual (string.Empty, copy.LineImagesFolder, "LineImagesFolder-aftercopy");
  335. Assert.AreEqual (-1, copy.MaxDataBindDepth, "MaxDataBindDepth-aftercopy");
  336. Assert.AreEqual (20, copy.NodeIndent, "NodeIndent-aftercopy");
  337. Assert.AreEqual (2, copy.Nodes.Count, "Nodes-aftercopy");
  338. Assert.AreEqual (false, copy.NodeWrap, "NodeWrap-aftercopy");
  339. Assert.AreEqual (string.Empty, copy.NoExpandImageUrl, "NoExpandImageUrl-aftercopy");
  340. Assert.AreEqual (true, copy.PopulateNodesFromClient, "PopulateNodesFromClient-aftercopy");
  341. Assert.AreEqual (TreeNodeTypes.None, copy.ShowCheckBoxes, "ShowCheckBoxes-aftercopy");
  342. Assert.AreEqual (true, copy.ShowExpandCollapse, "ShowExpandCollapse-aftercopy");
  343. Assert.AreEqual (false, copy.ShowLines, "ShowLines-aftercopy");
  344. Assert.AreEqual ("Skip Navigation Links.", copy.SkipLinkText, "SkipLinkText-aftercopy");
  345. Assert.AreEqual (string.Empty, copy.Target, "Target-aftercopy");
  346. Assert.AreEqual (true, copy.Visible, "Visible-aftercopy");
  347. }
  348. [Test]
  349. public void TreeView_ViewStateNodes () {
  350. PokerTreeView tv = new PokerTreeView ();
  351. TreeNode R = new TreeNode ("root", "value-root");
  352. TreeNode N1 = new TreeNode ("node1", "value-node1");
  353. TreeNode N2 = new TreeNode ("node2", "value-node2");
  354. R.ChildNodes.Add (N1);
  355. R.ChildNodes.Add (N2);
  356. tv.Nodes.Add (R);
  357. PokerTreeView copy = new PokerTreeView ();
  358. object state = tv.SaveState ();
  359. copy.LoadState (state);
  360. Assert.AreEqual (1, tv.Nodes.Count, "ViewStateNodes-1");
  361. Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "ViewStateNodes-1");
  362. Assert.AreEqual (0, tv.Nodes[0].ChildNodes[0].ChildNodes.Count, "ViewStateNodes-2");
  363. Assert.AreEqual ("node1", tv.Nodes[0].ChildNodes[0].Text, "ViewStateNodes-3");
  364. Assert.AreEqual ("value-node1", tv.Nodes[0].ChildNodes[0].Value, "ViewStateNodes-4");
  365. Assert.AreEqual (false, tv.Nodes[0].ChildNodes[0].DataBound, "ViewStateNodes-5");
  366. Assert.AreEqual ("", tv.Nodes[0].ChildNodes[0].DataPath, "ViewStateNodes-6");
  367. }
  368. private static string xmlDataBind = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Book Title=\"Book Title\"><Chapter Heading=\"Chapter 1\"><Section Heading=\"Section 1\"></Section><Section Heading=\"Section 2\"></Section></Chapter><Chapter Heading=\"Chapter 2\"><Section Heading=\"Section 1\"></Section></Chapter></Book>";
  369. private static string xmlDataBindSmall = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Book Title=\"Book Title\"></Book>";
  370. [Test]
  371. public void TreeView_ViewStateDataBoundNodes () {
  372. PokerTreeView b = new PokerTreeView ();
  373. SetDataBindings (b);
  374. b.DataSource = CreateXmlDataSource ();
  375. b.DataBind ();
  376. PokerTreeView copy = new PokerTreeView ();
  377. object state = b.SaveState ();
  378. copy.LoadState (state);
  379. CheckTreeNodes (copy);
  380. }
  381. private static void CheckTreeNodes (TreeView m) {
  382. Assert.AreEqual (1, m.Nodes.Count, "CheckTreeNodes#1");
  383. Assert.AreEqual (10, m.Nodes[0].ChildNodes.Count, "CheckTreeNodes#2");
  384. Assert.AreEqual (0, m.Nodes[0].ChildNodes[0].ChildNodes.Count, "CheckTreeNodes#3");
  385. Assert.AreEqual (true, m.Nodes[0].ChildNodes[0].DataBound, "CheckTreeNodes#4");
  386. Assert.AreEqual ("/*[position()=1]/*[position()=1]", m.Nodes[0].ChildNodes[0].DataPath, "CheckTreeNodes#5");
  387. Assert.AreEqual ("img#root", m.Nodes[0].ImageUrl, "CheckTreeNodes_ImageUrl#1");
  388. Assert.AreEqual ("img#1", m.Nodes[0].ChildNodes[0].ImageUrl, "CheckTreeNodes_ImageUrl#2");
  389. Assert.AreEqual ("img#2", m.Nodes[0].ChildNodes[1].ImageUrl, "CheckTreeNodes_ImageUrl#3");
  390. Assert.AreEqual ("img#default", m.Nodes[0].ChildNodes[2].ImageUrl, "CheckTreeNodes_ImageUrl#4");
  391. Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].ImageUrl, "CheckTreeNodes_ImageUrl#5");
  392. Assert.AreEqual ("url#root", m.Nodes[0].NavigateUrl, "CheckTreeNodes_NavigateUrl#1");
  393. Assert.AreEqual ("url#1", m.Nodes[0].ChildNodes[0].NavigateUrl, "CheckTreeNodes_NavigateUrl#2");
  394. Assert.AreEqual ("url#2", m.Nodes[0].ChildNodes[1].NavigateUrl, "CheckTreeNodes_NavigateUrl#3");
  395. Assert.AreEqual ("url#default", m.Nodes[0].ChildNodes[2].NavigateUrl, "CheckTreeNodes_NavigateUrl#4");
  396. Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].NavigateUrl, "CheckTreeNodes_NavigateUrl#5");
  397. Assert.AreEqual ("target#root", m.Nodes[0].Target, "CheckTreeNodes_Target#1");
  398. Assert.AreEqual ("target#1", m.Nodes[0].ChildNodes[0].Target, "CheckTreeNodes_Target#2");
  399. Assert.AreEqual ("target#2", m.Nodes[0].ChildNodes[1].Target, "CheckTreeNodes_Target#3");
  400. Assert.AreEqual ("target#default", m.Nodes[0].ChildNodes[2].Target, "CheckTreeNodes_Target#4");
  401. Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].Target, "CheckTreeNodes_Target#5");
  402. Assert.AreEqual ("text#root", m.Nodes[0].Text, "CheckTreeNodes_Text#1");
  403. Assert.AreEqual ("text#1", m.Nodes[0].ChildNodes[0].Text, "CheckTreeNodes_Text#2");
  404. Assert.AreEqual ("text#2", m.Nodes[0].ChildNodes[1].Text, "CheckTreeNodes_Text#3");
  405. Assert.AreEqual ("text#", m.Nodes[0].ChildNodes[2].Text, "CheckTreeNodes_Text#4");
  406. Assert.AreEqual ("subnode", m.Nodes[0].ChildNodes[2].ChildNodes[0].Text, "CheckTreeNodes_Text#5");
  407. Assert.AreEqual ("tooltip#root", m.Nodes[0].ToolTip, "CheckTreeNodes_ToolTip#1");
  408. Assert.AreEqual ("tooltip#1", m.Nodes[0].ChildNodes[0].ToolTip, "CheckTreeNodes_ToolTip#2");
  409. Assert.AreEqual ("tooltip#2", m.Nodes[0].ChildNodes[1].ToolTip, "CheckTreeNodes_ToolTip#3");
  410. Assert.AreEqual ("tooltip#default", m.Nodes[0].ChildNodes[2].ToolTip, "CheckTreeNodes_ToolTip#4");
  411. Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].ToolTip, "CheckTreeNodes_ToolTip#5");
  412. Assert.AreEqual ("imagetooltip#root", m.Nodes[0].ImageToolTip, "CheckTreeNodes_ImageToolTip#1");
  413. Assert.AreEqual ("imagetooltip#1", m.Nodes[0].ChildNodes[0].ImageToolTip, "CheckTreeNodes_ImageToolTip#2");
  414. Assert.AreEqual ("imagetooltip#2", m.Nodes[0].ChildNodes[1].ImageToolTip, "CheckTreeNodes_ImageToolTip#3");
  415. Assert.AreEqual ("imagetooltip#default", m.Nodes[0].ChildNodes[2].ImageToolTip, "CheckTreeNodes_ImageToolTip#4");
  416. Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].ImageToolTip, "CheckTreeNodes_ImageToolTip#5");
  417. Assert.AreEqual ("value#root", m.Nodes[0].Value, "CheckTreeNodes_Value#1");
  418. Assert.AreEqual ("value#1", m.Nodes[0].ChildNodes[0].Value, "CheckTreeNodes_Value#2");
  419. Assert.AreEqual ("value#2", m.Nodes[0].ChildNodes[1].Value, "CheckTreeNodes_Value#3");
  420. Assert.AreEqual ("value#default", m.Nodes[0].ChildNodes[2].Value, "CheckTreeNodes_Value#4");
  421. Assert.AreEqual ("subnode", m.Nodes[0].ChildNodes[2].ChildNodes[0].Value, "CheckTreeNodes_Value#5");
  422. Assert.AreEqual ("text#extra1", m.Nodes[0].ChildNodes[3].Text, "CheckTreeNodes_Extra1#1");
  423. Assert.AreEqual ("text#extra1", m.Nodes[0].ChildNodes[3].Value, "CheckTreeNodes_Extra1#2");
  424. Assert.AreEqual ("value#extra2", m.Nodes[0].ChildNodes[4].Text, "CheckTreeNodes_Extra2#1");
  425. Assert.AreEqual ("value#extra2", m.Nodes[0].ChildNodes[4].Value, "CheckTreeNodes_Extra2#2");
  426. Assert.AreEqual ("text#extra3", m.Nodes[0].ChildNodes[5].Text, "CheckTreeNodes_Extra3#1");
  427. Assert.AreEqual ("text#extra3", m.Nodes[0].ChildNodes[5].Value, "CheckTreeNodes_Extra3#2");
  428. Assert.AreEqual ("value#extra3", m.Nodes[0].ChildNodes[6].Text, "CheckTreeNodes_Extra3#3");
  429. Assert.AreEqual ("value#extra3", m.Nodes[0].ChildNodes[6].Value, "CheckTreeNodes_Extra3#4");
  430. Assert.AreEqual ("", m.Nodes[0].ChildNodes[7].Text, "CheckTreeNodes_Extra3#5");
  431. Assert.AreEqual ("", m.Nodes[0].ChildNodes[7].Value, "CheckTreeNodes_Extra3#6");
  432. Assert.AreEqual ("text#extra4", m.Nodes[0].ChildNodes[8].Text, "CheckTreeNodes_Extra4#1");
  433. Assert.AreEqual ("text#default", m.Nodes[0].ChildNodes[8].Value, "CheckTreeNodes_Extra4#2");
  434. Assert.AreEqual ("value#default", m.Nodes[0].ChildNodes[9].Text, "CheckTreeNodes_Extra5#1");
  435. Assert.AreEqual ("value#extra5", m.Nodes[0].ChildNodes[9].Value, "CheckTreeNodes_Extra5#2");
  436. }
  437. void SetDataBindings (TreeView tv) {
  438. TreeNodeBinding b = new TreeNodeBinding ();
  439. b.DataMember = "node";
  440. b.ImageUrlField = "img";
  441. b.ImageUrl = "img#default";
  442. b.NavigateUrlField = "url";
  443. b.NavigateUrl = "url#default";
  444. b.TargetField = "target";
  445. b.Target = "target#default";
  446. b.FormatString = "text#{0}";
  447. b.TextField = "text";
  448. b.Text = "text#default";
  449. b.ToolTipField = "tooltip";
  450. b.ToolTip = "tooltip#default";
  451. b.ImageToolTipField = "imagetooltip";
  452. b.ImageToolTip = "imagetooltip#default";
  453. b.ValueField = "value";
  454. b.Value = "value#default";
  455. tv.DataBindings.Add (b);
  456. b = new TreeNodeBinding ();
  457. b.DataMember = "root";
  458. b.ImageUrl = "img#root";
  459. b.NavigateUrl = "url#root";
  460. b.Target = "target#root";
  461. b.Text = "text#root";
  462. b.ToolTip = "tooltip#root";
  463. b.ImageToolTip = "imagetooltip#root";
  464. b.Value = "value#root";
  465. tv.DataBindings.Add (b);
  466. b = new TreeNodeBinding ();
  467. b.DataMember = "extra1";
  468. b.Text = "text#extra1";
  469. tv.DataBindings.Add (b);
  470. b = new TreeNodeBinding ();
  471. b.DataMember = "extra2";
  472. b.Value = "value#extra2";
  473. tv.DataBindings.Add (b);
  474. b = new TreeNodeBinding ();
  475. b.DataMember = "extra3";
  476. b.TextField = "text";
  477. b.ValueField = "value";
  478. tv.DataBindings.Add (b);
  479. b = new TreeNodeBinding ();
  480. b.DataMember = "extra4";
  481. b.TextField = "text";
  482. b.Text = "text#default";
  483. b.ValueField = "value";
  484. tv.DataBindings.Add (b);
  485. b = new TreeNodeBinding ();
  486. b.DataMember = "extra5";
  487. b.TextField = "text";
  488. b.Value = "value#default";
  489. b.ValueField = "value";
  490. tv.DataBindings.Add (b);
  491. }
  492. XmlDataSource CreateXmlDataSource () {
  493. XmlDataSource xmlDs = new XmlDataSource ();
  494. xmlDs.EnableCaching = false;
  495. xmlDs.ID = "XmlDataSource";
  496. xmlDs.Data = "<root>" +
  497. "<node url=\"url#1\" img=\"img#1\" selectable=\"true\" popoutimg=\"popoutimg#1\" separatorimg=\"separatorimg#1\" target=\"target#1\" text=\"1\" tooltip=\"tooltip#1\" imagetooltip=\"imagetooltip#1\" value=\"value#1\" />" +
  498. "<node url=\"url#2\" img=\"img#2\" selectable=\"false\" popoutimg=\"popoutimg#2\" separatorimg=\"separatorimg#2\" target=\"target#2\" text=\"2\" tooltip=\"tooltip#2\" imagetooltip=\"imagetooltip#2\" value=\"value#2\" />" +
  499. "<node url=\"\" img=\"\" selectable=\"\" popoutimg=\"\" separatorimg=\"\" target=\"\" text=\"\" tooltip=\"\" imagetooltip=\"\" value=\"\">" +
  500. "<subnode url=\"url#unreachable\" img=\"img#unreachable\" selectable=\"false\" popoutimg=\"popoutimg#unreachable\" separatorimg=\"separatorimg#unreachable\" target=\"target#unreachable\" text=\"text#unreachable\" tooltip=\"tooltip#unreachable\" imagetooltip=\"imagetooltip#unreachable\" value=\"value#unreachable\" />" +
  501. "<subnode /></node>" +
  502. "<extra1 /><extra2 />" +
  503. "<extra3 text=\"text#extra3\" value=\"\" />" +
  504. "<extra3 text=\"\" value=\"value#extra3\" />" +
  505. "<extra3 text=\"\" value=\"\" />" +
  506. "<extra4 text=\"text#extra4\" value=\"\" />" +
  507. "<extra5 text=\"\" value=\"value#extra5\" />" +
  508. "</root>";
  509. return xmlDs;
  510. }
  511. [Test]
  512. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  513. public void TreeView_Exp_ImageSet () {
  514. // The specified image set is not one of the TreeViewImageSet values.
  515. PokerTreeView tv = new PokerTreeView ();
  516. tv.ImageSet = (TreeViewImageSet) 16;
  517. }
  518. [Test]
  519. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  520. public void TreeView_Exp_ShowCheckBoxes () {
  521. // The bitwise combination value is outside the range of the TreeNodeTypes enumeration.
  522. PokerTreeView tv = new PokerTreeView ();
  523. tv.ShowCheckBoxes = (TreeNodeTypes) 8;
  524. }
  525. [Test]
  526. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  527. public void TreeView_Exp_Nodes () {
  528. // Trying to access nonexisting node.
  529. PokerTreeView tv = new PokerTreeView ();
  530. int depth = tv.Nodes[1].Depth;
  531. }
  532. [Test]
  533. public void TreeView_Method_DataBindDataSource () {
  534. PokerTreeView tv = new PokerTreeView ();
  535. XmlDataSource xmlds = new XmlDataSource ();
  536. xmlds.EnableCaching = false;
  537. xmlds.Data = xmlDataBind;
  538. tv.DataSource = xmlds;
  539. _TreeNodeDataBoundCount = 0;
  540. tv.TreeNodeDataBound += new TreeNodeEventHandler (TreeView_TreeNodeDataBound);
  541. Assert.AreEqual (0, tv.Nodes.Count, "BeforeDataBind1");
  542. tv.DataBind ();
  543. Assert.AreEqual (1, tv.Nodes.Count, "AfterDataBind1-a");
  544. Assert.AreEqual ("Book", tv.Nodes[0].Text, "AfterDataBind1-b");
  545. Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "AfterDataBind1-c");
  546. Assert.AreEqual (2, tv.Nodes [0].ChildNodes [0].ChildNodes.Count, "AfterDataBind1-d");
  547. Assert.AreEqual (6, _TreeNodeDataBoundCount, "AfterDataBind1-TreeNodeDataBoundCount");
  548. }
  549. [Test]
  550. public void TreeView_MaxDataBindDepth () {
  551. TreeView tv = new TreeView ();
  552. XmlDataSource xmlds = new XmlDataSource ();
  553. xmlds.EnableCaching = false;
  554. xmlds.Data = xmlDataBind;
  555. tv.DataSource = xmlds;
  556. tv.MaxDataBindDepth = 1;
  557. _TreeNodeDataBoundCount = 0;
  558. tv.TreeNodeDataBound += new TreeNodeEventHandler (TreeView_TreeNodeDataBound);
  559. Assert.AreEqual (0, tv.Nodes.Count, "BeforeDataBind1");
  560. tv.DataBind ();
  561. Assert.AreEqual (1, tv.Nodes.Count, "AfterDataBind1-a");
  562. Assert.AreEqual ("Book", tv.Nodes [0].Text, "AfterDataBind1-b");
  563. Assert.AreEqual (2, tv.Nodes [0].ChildNodes.Count, "AfterDataBind1-c");
  564. Assert.AreEqual (0, tv.Nodes [0].ChildNodes [0].ChildNodes.Count, "AfterDataBind1-d");
  565. Assert.AreEqual (3, _TreeNodeDataBoundCount, "AfterDataBind1-TreeNodeDataBoundCount");
  566. }
  567. int _TreeNodeDataBoundCount;
  568. private void TreeView_TreeNodeDataBound (object sender, TreeNodeEventArgs e) {
  569. _TreeNodeDataBoundCount++;
  570. }
  571. [Test]
  572. public void TreeView_Method_DataBindStatic () {
  573. PokerTreeView tv = new PokerTreeView ();
  574. TreeNode R = new TreeNode ("root", "value-root");
  575. TreeNode N1 = new TreeNode ("node1", "value-node1");
  576. TreeNode N2 = new TreeNode ("node2", "value-node2");
  577. R.ChildNodes.Add (N1);
  578. R.ChildNodes.Add (N2);
  579. tv.Nodes.Add (R);
  580. tv.DataBind ();
  581. Assert.AreEqual (1, tv.Nodes.Count, "DataBindStatic-1");
  582. Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "DataBindStatic-1");
  583. Assert.AreEqual (0, tv.Nodes[0].ChildNodes[0].ChildNodes.Count, "DataBindStatic-2");
  584. Assert.AreEqual ("node1", tv.Nodes[0].ChildNodes[0].Text, "DataBindStatic-3");
  585. Assert.AreEqual ("value-node1", tv.Nodes[0].ChildNodes[0].Value, "DataBindStatic-4");
  586. Assert.AreEqual (false, tv.Nodes[0].ChildNodes[0].DataBound, "DataBindStatic-5");
  587. Assert.AreEqual ("", tv.Nodes[0].ChildNodes[0].DataPath, "DataBindStatic-6");
  588. }
  589. [Test]
  590. public void TreeView_Method_DataBind () {
  591. PokerTreeView tv = new PokerTreeView ();
  592. SetDataBindings (tv);
  593. tv.DataSource = CreateXmlDataSource ();
  594. tv.DataBind ();
  595. CheckTreeNodes (tv);
  596. }
  597. [Test]
  598. public void TreeView_Method_FindNode () {
  599. PokerTreeView tv = new PokerTreeView ();
  600. XmlDataSource xmlds = new XmlDataSource ();
  601. xmlds.EnableCaching = false;
  602. xmlds.Data = xmlDataBind;
  603. tv.DataSource = xmlds;
  604. tv.DataBind ();
  605. TreeNode tn = new TreeNode ();
  606. Assert.AreEqual (0, tn.ChildNodes.Count, "BeforeFindNode");
  607. tn = tv.FindNode ("Book" + tv.PathSeparator + "Chapter");
  608. Assert.AreEqual ("Chapter", tn.Text, "AfterFindNode1");
  609. Assert.AreEqual (2, tn.ChildNodes.Count, "AfterFindNode2");
  610. Assert.AreEqual ("Section", tn.ChildNodes[0].Text, "AfterFindNode3");
  611. }
  612. [Test]
  613. [Category ("NunitWeb")]
  614. public void TreeView_Render_Defaults () {
  615. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderDefaults));
  616. #region HTML
  617. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  618. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  619. <tr>
  620. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  621. </tr>
  622. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  623. <tr>
  624. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  625. </tr>
  626. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  627. <tr>
  628. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  629. </tr>
  630. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  631. <tr>
  632. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  633. </tr>
  634. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  635. <tr>
  636. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  637. </tr>
  638. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  639. <tr>
  640. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  641. </tr>
  642. </table>
  643. </div><a id=""treeview1_SkipLink""></a>";
  644. #endregion
  645. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  646. HtmlDiff.AssertAreEqual (strTarget, str, "RenderDefaults");
  647. }
  648. public static void pageLoadRenderDefaults (Page page) {
  649. TreeView tv = new TreeView ();
  650. tv.EnableClientScript = false;
  651. tv.ID = "treeview1";
  652. XmlDataSource xmlds = new XmlDataSource ();
  653. xmlds.EnableCaching = false;
  654. xmlds.Data = xmlDataBind;
  655. tv.DataSource = xmlds;
  656. tv.DataBind ();
  657. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  658. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  659. page.Form.Controls.Add (lcb);
  660. page.Form.Controls.Add (tv);
  661. page.Form.Controls.Add (lce);
  662. }
  663. [Test]
  664. [Category ("NunitWeb")]
  665. public void TreeView_Method_RenderTags () {
  666. new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderTags)).Run ();
  667. }
  668. public static void pageLoadRenderTags (Page page) {
  669. TreeView tv = new TreeView ();
  670. tv.ID = "treeview1";
  671. page.Form.Controls.Add (tv);
  672. StringWriter sw = new StringWriter ();
  673. HtmlTextWriter tw = new HtmlTextWriter (sw);
  674. tv.RenderBeginTag (tw);
  675. tv.RenderEndTag (tw);
  676. string str = sw.ToString ();
  677. string strTarget = "<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\">\r\n\r\n</div><a id=\"treeview1_SkipLink\"></a>";
  678. HtmlDiff.AssertAreEqual (strTarget, str, "RenderTags");
  679. }
  680. [Test]
  681. [Category ("NunitWeb")]
  682. public void TreeView_Method_ExpandAll () {
  683. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadExpandAll));
  684. #region HTML
  685. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  686. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  687. <tr>
  688. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  689. </tr>
  690. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  691. <tr>
  692. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  693. </tr>
  694. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  695. <tr>
  696. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  697. </tr>
  698. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  699. <tr>
  700. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  701. </tr>
  702. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  703. <tr>
  704. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  705. </tr>
  706. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  707. <tr>
  708. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  709. </tr>
  710. </table>
  711. </div><a id=""treeview1_SkipLink""></a>";
  712. #endregion
  713. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  714. HtmlDiff.AssertAreEqual (strTarget, str, "ExpandAll");
  715. }
  716. public static void pageLoadExpandAll (Page page) {
  717. TreeView tv = new TreeView ();
  718. tv.EnableClientScript = false;
  719. tv.ID = "treeview1";
  720. XmlDataSource xmlds = new XmlDataSource ();
  721. xmlds.EnableCaching = false;
  722. xmlds.Data = xmlDataBind;
  723. tv.DataSource = xmlds;
  724. tv.DataBind ();
  725. tv.ExpandAll ();
  726. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  727. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  728. page.Form.Controls.Add (lcb);
  729. page.Form.Controls.Add (tv);
  730. page.Form.Controls.Add (lce);
  731. }
  732. [Test]
  733. [Category ("NunitWeb")]
  734. public void TreeView_Method_NodeExpand () {
  735. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeExpand));
  736. #region HTML
  737. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  738. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  739. <tr>
  740. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  741. </tr>
  742. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  743. <tr>
  744. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  745. </tr>
  746. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  747. <tr>
  748. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  749. </tr>
  750. </table>
  751. </div><a id=""treeview1_SkipLink""></a>";
  752. #endregion
  753. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  754. HtmlDiff.AssertAreEqual (strTarget, str, "NodeExpand");
  755. }
  756. public static void pageLoadNodeExpand (Page page) {
  757. TreeView tv = new TreeView ();
  758. tv.EnableClientScript = false;
  759. tv.ID = "treeview1";
  760. XmlDataSource xmlds = new XmlDataSource ();
  761. xmlds.EnableCaching = false;
  762. xmlds.Data = xmlDataBind;
  763. tv.DataSource = xmlds;
  764. tv.DataBind ();
  765. tv.CollapseAll ();
  766. tv.Nodes[0].Expand ();
  767. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  768. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  769. page.Form.Controls.Add (lcb);
  770. page.Form.Controls.Add (tv);
  771. page.Form.Controls.Add (lce);
  772. }
  773. [Test]
  774. [Category ("NunitWeb")]
  775. public void TreeView_Method_NodeExpandAll () {
  776. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeExpandAll));
  777. #region HTML
  778. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  779. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  780. <tr>
  781. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  782. </tr>
  783. </table>
  784. </div><a id=""treeview1_SkipLink""></a>";
  785. #endregion
  786. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  787. HtmlDiff.AssertAreEqual (strTarget, str, "NodeExpandAll");
  788. }
  789. public static void pageLoadNodeExpandAll (Page page) {
  790. TreeView tv = new TreeView ();
  791. tv.EnableClientScript = false;
  792. tv.ID = "treeview1";
  793. XmlDataSource xmlds = new XmlDataSource ();
  794. xmlds.EnableCaching = false;
  795. xmlds.Data = xmlDataBind;
  796. tv.DataSource = xmlds;
  797. tv.DataBind ();
  798. tv.CollapseAll ();
  799. tv.Nodes[0].ChildNodes[0].ExpandAll ();
  800. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  801. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  802. page.Form.Controls.Add (lcb);
  803. page.Form.Controls.Add (tv);
  804. page.Form.Controls.Add (lce);
  805. }
  806. [Test]
  807. [Category ("NunitWeb")]
  808. public void TreeView_Method_CollapseAll () {
  809. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadCollapseAll));
  810. #region HTML
  811. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  812. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  813. <tr>
  814. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  815. </tr>
  816. </table>
  817. </div><a id=""treeview1_SkipLink""></a>";
  818. #endregion
  819. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  820. HtmlDiff.AssertAreEqual (strTarget, str, "CollapseAll");
  821. }
  822. public static void pageLoadCollapseAll (Page page) {
  823. TreeView tv = new TreeView ();
  824. tv.EnableClientScript = false;
  825. tv.ID = "treeview1";
  826. XmlDataSource xmlds = new XmlDataSource ();
  827. xmlds.EnableCaching = false;
  828. xmlds.Data = xmlDataBind;
  829. tv.DataSource = xmlds;
  830. tv.DataBind ();
  831. tv.CollapseAll ();
  832. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  833. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  834. page.Form.Controls.Add (lcb);
  835. page.Form.Controls.Add (tv);
  836. page.Form.Controls.Add (lce);
  837. }
  838. [Test]
  839. [Category ("NunitWeb")]
  840. public void TreeView_Method_NodeCollapse () {
  841. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeCollapse));
  842. #region HTML
  843. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  844. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  845. <tr>
  846. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  847. </tr>
  848. </table>
  849. </div><a id=""treeview1_SkipLink""></a>";
  850. #endregion
  851. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  852. HtmlDiff.AssertAreEqual (strTarget, str, "NodeCollapse");
  853. }
  854. public static void pageLoadNodeCollapse (Page page) {
  855. TreeView tv = new TreeView ();
  856. tv.EnableClientScript = false;
  857. tv.ID = "treeview1";
  858. XmlDataSource xmlds = new XmlDataSource ();
  859. xmlds.EnableCaching = false;
  860. xmlds.Data = xmlDataBind;
  861. tv.DataSource = xmlds;
  862. tv.DataBind ();
  863. tv.Nodes[0].Collapse ();
  864. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  865. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  866. page.Form.Controls.Add (lcb);
  867. page.Form.Controls.Add (tv);
  868. page.Form.Controls.Add (lce);
  869. }
  870. [Test]
  871. [Category ("NunitWeb")]
  872. public void TreeView_Method_NodeCollapseAll () {
  873. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeCollapseAll));
  874. #region HTML
  875. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  876. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  877. <tr>
  878. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  879. </tr>
  880. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  881. <tr>
  882. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  883. </tr>
  884. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  885. <tr>
  886. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  887. </tr>
  888. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  889. <tr>
  890. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  891. </tr>
  892. </table>
  893. </div><a id=""treeview1_SkipLink""></a>";
  894. #endregion
  895. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  896. HtmlDiff.AssertAreEqual (strTarget, str, "NodeCollapseAll");
  897. }
  898. public static void pageLoadNodeCollapseAll (Page page) {
  899. TreeView tv = new TreeView ();
  900. tv.EnableClientScript = false;
  901. tv.ID = "treeview1";
  902. XmlDataSource xmlds = new XmlDataSource ();
  903. xmlds.EnableCaching = false;
  904. xmlds.Data = xmlDataBind;
  905. tv.DataSource = xmlds;
  906. tv.DataBind ();
  907. tv.Nodes[0].ChildNodes[0].CollapseAll ();
  908. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  909. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  910. page.Form.Controls.Add (lcb);
  911. page.Form.Controls.Add (tv);
  912. page.Form.Controls.Add (lce);
  913. }
  914. [Test]
  915. [Category ("NunitWeb")]
  916. public void TreeView_Method_NodeToggleExpandState1 () {
  917. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeToggleExpandState1));
  918. #region HTML
  919. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  920. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  921. <tr>
  922. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  923. </tr>
  924. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  925. <tr>
  926. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  927. </tr>
  928. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  929. <tr>
  930. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  931. </tr>
  932. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  933. <tr>
  934. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  935. </tr>
  936. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  937. <tr>
  938. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  939. </tr>
  940. </table>
  941. </div><a id=""treeview1_SkipLink""></a>";
  942. #endregion
  943. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  944. HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState1");
  945. }
  946. public static void pageLoadNodeToggleExpandState1 (Page page) {
  947. TreeView tv = new TreeView ();
  948. tv.EnableClientScript = false;
  949. tv.ID = "treeview1";
  950. XmlDataSource xmlds = new XmlDataSource ();
  951. xmlds.EnableCaching = false;
  952. xmlds.Data = xmlDataBind;
  953. tv.DataSource = xmlds;
  954. tv.DataBind ();
  955. tv.ExpandAll ();
  956. tv.Nodes[0].ChildNodes[1].ToggleExpandState ();
  957. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  958. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  959. page.Form.Controls.Add (lcb);
  960. page.Form.Controls.Add (tv);
  961. page.Form.Controls.Add (lce);
  962. }
  963. [Test]
  964. [Category ("NunitWeb")]
  965. public void TreeView_Method_NodeToggleExpandState2 () {
  966. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeToggleExpandState2));
  967. #region HTML
  968. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  969. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  970. <tr>
  971. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  972. </tr>
  973. </table>
  974. </div><a id=""treeview1_SkipLink""></a>";
  975. #endregion
  976. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  977. HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState2");
  978. }
  979. public static void pageLoadNodeToggleExpandState2 (Page page) {
  980. TreeView tv = new TreeView ();
  981. tv.EnableClientScript = false;
  982. tv.ID = "treeview1";
  983. XmlDataSource xmlds = new XmlDataSource ();
  984. xmlds.EnableCaching = false;
  985. xmlds.Data = xmlDataBind;
  986. tv.DataSource = xmlds;
  987. tv.DataBind ();
  988. tv.CollapseAll ();
  989. tv.Nodes [0].ChildNodes [0].ToggleExpandState ();
  990. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  991. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  992. page.Form.Controls.Add (lcb);
  993. page.Form.Controls.Add (tv);
  994. page.Form.Controls.Add (lce);
  995. }
  996. [Test]
  997. [Category ("NunitWeb")]
  998. public void TreeView_PopulateNode () {
  999. PageDelegates delegates = new PageDelegates ();
  1000. delegates.Load = new PageDelegate (TreeView_PopulateNode_Load);
  1001. delegates.PreRender = new PageDelegate (TreeView_PopulateNode_PreRender);
  1002. delegates.PreRenderComplete = new PageDelegate (TreeView_PopulateNode_PreRenderComplete);
  1003. PageInvoker invoker = new PageInvoker (delegates);
  1004. WebTest test = new WebTest (invoker);
  1005. test.Run ();
  1006. }
  1007. public static void TreeView_PopulateNode_Load (Page page) {
  1008. TreeView tv = new TreeView ();
  1009. tv.ID = "TreeView";
  1010. tv.TreeNodePopulate += new TreeNodeEventHandler (tv_TreeNodePopulate);
  1011. tv.ExpandDepth = 3;
  1012. TreeNode rootNode = new TreeNode ("root");
  1013. rootNode.PopulateOnDemand = true;
  1014. tv.Nodes.Add (rootNode);
  1015. page.Form.Controls.Add (tv);
  1016. // root node still not populated
  1017. Assert.AreEqual (null, rootNode.Expanded, "TreeView_PopulateNode_Load#1");
  1018. Assert.AreEqual (0, rootNode.ChildNodes.Count, "TreeView_PopulateNode_Load#2");
  1019. // root node was populated after set Expanded=true
  1020. rootNode.Expanded = true;
  1021. Assert.AreEqual (1, rootNode.ChildNodes.Count, "TreeView_PopulateNode_Load#3");
  1022. // node1 was populated because was added with Expanded=true whan root was populated
  1023. Assert.AreEqual (true, rootNode.ChildNodes [0].Expanded, "TreeView_PopulateNode_Load#4");
  1024. Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_Load#5");
  1025. // node2 not populated because Expanded not set
  1026. Assert.AreEqual (null, rootNode.ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_Load#6");
  1027. Assert.AreEqual (0, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_Load#7");
  1028. }
  1029. public static void TreeView_PopulateNode_PreRender (Page page) {
  1030. TreeView tv = (TreeView) page.Form.FindControl ("TreeView");
  1031. TreeNode rootNode = tv.Nodes [0];
  1032. // state of nodes remain the same
  1033. // root
  1034. Assert.AreEqual (true, rootNode.Expanded, "TreeView_PopulateNode_PreRender#1");
  1035. Assert.AreEqual (1, rootNode.ChildNodes.Count, "TreeView_PopulateNode_PreRender#3");
  1036. // node1
  1037. Assert.AreEqual (true, rootNode.ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRender#4");
  1038. Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRender#5");
  1039. // node2
  1040. Assert.AreEqual (null, rootNode.ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRender#6");
  1041. Assert.AreEqual (0, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRender#7");
  1042. }
  1043. public static void TreeView_PopulateNode_PreRenderComplete (Page page) {
  1044. TreeView tv = (TreeView) page.Form.FindControl ("TreeView");
  1045. TreeNode rootNode = tv.Nodes [0];
  1046. // All nodes were expanded and populated up to ExpandDepth
  1047. // root
  1048. Assert.AreEqual (true, rootNode.Expanded, "TreeView_PopulateNode_PreRenderComplete#1");
  1049. Assert.AreEqual (1, rootNode.ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#3");
  1050. // node1
  1051. Assert.AreEqual (true, rootNode.ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRenderComplete#4");
  1052. Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#5");
  1053. // node2
  1054. Assert.AreEqual (true, rootNode.ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRenderComplete#6");
  1055. Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#7");
  1056. // node3
  1057. Assert.AreEqual (null, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRenderComplete#6");
  1058. Assert.AreEqual (0, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#7");
  1059. }
  1060. static void tv_TreeNodePopulate (object sender, TreeNodeEventArgs e) {
  1061. TreeNode node = new TreeNode ("node" + (e.Node.Depth + 1));
  1062. node.PopulateOnDemand = true;
  1063. if (e.Node.Depth < 1)
  1064. node.Expanded = true;
  1065. e.Node.ChildNodes.Add (node);
  1066. }
  1067. [Test]
  1068. [Category ("NunitWeb")]
  1069. public void TreeView_ExpandDepth () {
  1070. PageDelegates delegates = new PageDelegates ();
  1071. delegates.Init = pageInitExpandDepth;
  1072. delegates.Load = pageLoadExpandDepth;
  1073. PageInvoker invoker = new PageInvoker (delegates);
  1074. WebTest t = new WebTest (invoker);
  1075. #region HTML
  1076. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1077. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1078. <tr>
  1079. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  1080. </tr>
  1081. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1082. <tr>
  1083. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  1084. </tr>
  1085. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1086. <tr>
  1087. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  1088. </tr>
  1089. </table>
  1090. </div><a id=""treeview1_SkipLink""></a>";
  1091. #endregion
  1092. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1093. HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState2");
  1094. }
  1095. public static void pageInitExpandDepth (Page page) {
  1096. TreeView tv = new TreeView ();
  1097. tv.EnableClientScript = false;
  1098. tv.ID = "treeview1";
  1099. tv.ExpandDepth = 1;
  1100. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1101. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1102. page.Form.Controls.Add (lcb);
  1103. page.Form.Controls.Add (tv);
  1104. page.Form.Controls.Add (lce);
  1105. }
  1106. public static void pageLoadExpandDepth (Page page) {
  1107. TreeView tv = (TreeView)page.Form.FindControl("treeview1");
  1108. XmlDataSource xmlds = new XmlDataSource ();
  1109. xmlds.EnableCaching = false;
  1110. xmlds.Data = xmlDataBind;
  1111. tv.DataSource = xmlds;
  1112. tv.DataBind ();
  1113. }
  1114. [Test]
  1115. public void TreeView_Method_CreateControlCollection () {
  1116. PokerTreeView tv = new PokerTreeView ();
  1117. ControlCollection cc = tv.CreateControlCollectionBase ();
  1118. Assert.AreEqual (0, cc.Count, "AfterCreateControlCollection");
  1119. }
  1120. [Test]
  1121. public void TreeView_Method_CreateNode () {
  1122. PokerTreeView tv = new PokerTreeView ();
  1123. TreeNode tn = tv.CreateNodeBase ();
  1124. Assert.AreEqual ("New Tree Node", tn.Text, "AfterCreateNode");
  1125. }
  1126. [Test]
  1127. public void TreeView_Method_PerformDataBinding () {
  1128. PokerTreeView tv = new PokerTreeView ();
  1129. XmlDataSource xmlds = new XmlDataSource ();
  1130. xmlds.EnableCaching = false;
  1131. xmlds.Data = xmlDataBind;
  1132. tv.DataSource = xmlds;
  1133. Assert.AreEqual (0, tv.Nodes.Count, "BeforePerformDataBinding");
  1134. tv.PerformDataBindingBase ();
  1135. Assert.AreEqual (1, tv.Nodes.Count, "AfterPerformDataBinding-a");
  1136. Assert.AreEqual ("Book", tv.Nodes[0].Text, "AfterPerformDataBinding-b");
  1137. Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "AfterPerformDataBinding-c");
  1138. }
  1139. // Render Bindings
  1140. [Test]
  1141. [Category ("NunitWeb")]
  1142. public void TreeView_Render_Bindings () {
  1143. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadBindings));
  1144. #region HTML
  1145. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1146. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1147. <tr>
  1148. <td><a href=""javascript:__doPostBack('treeview1','tBook Title')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Book Title"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook Title')"" id=""treeview1t0"">Book Title</a></td>
  1149. </tr>
  1150. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1151. <tr>
  1152. <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook Title\\Chapter 1')"" id=""treeview1t1"">Chapter 1</a></td>
  1153. </tr>
  1154. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1155. <tr>
  1156. <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook Title\\Chapter 2')"" id=""treeview1t2"">Chapter 2</a></td>
  1157. </tr>
  1158. </table>
  1159. </div><a id=""treeview1_SkipLink""></a>";
  1160. #endregion
  1161. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1162. HtmlDiff.AssertAreEqual (strTarget, str, "RenderBindings");
  1163. }
  1164. public static void pageLoadBindings (Page page) {
  1165. TreeView tv = new TreeView ();
  1166. tv.EnableClientScript = false;
  1167. tv.ID = "treeview1";
  1168. tv.ImageSet = TreeViewImageSet.Arrows;
  1169. tv.AutoGenerateDataBindings = false;
  1170. tv.MaxDataBindDepth = 1;
  1171. tv.DataBindings.Add (new TreeNodeBinding ());
  1172. tv.DataBindings[0].DataMember = "Book";
  1173. tv.DataBindings[0].TextField = "Title";
  1174. tv.DataBindings.Add (new TreeNodeBinding ());
  1175. tv.DataBindings[1].DataMember = "Chapter";
  1176. tv.DataBindings[1].TextField = "Heading";
  1177. tv.DataBindings.Add (new TreeNodeBinding ());
  1178. tv.DataBindings[2].DataMember = "Section";
  1179. tv.DataBindings[2].TextField = "Heading";
  1180. XmlDataSource xmlds = new XmlDataSource ();
  1181. xmlds.EnableCaching = false;
  1182. xmlds.Data = xmlDataBind;
  1183. tv.DataSource = xmlds;
  1184. tv.DataBind ();
  1185. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1186. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1187. page.Form.Controls.Add (lcb);
  1188. page.Form.Controls.Add (tv);
  1189. page.Form.Controls.Add (lce);
  1190. }
  1191. // Render Navigate
  1192. [Test]
  1193. [Category ("NunitWeb")]
  1194. public void TreeView_Render_Navigate () {
  1195. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNavigate));
  1196. #region HTML
  1197. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1198. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1199. <tr>
  1200. <td><a href=""javascript:__doPostBack('treeview1','tmyNode0')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse myNode0"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""myUrl0"" target=""myTarget"" id=""treeview1t0"">myNode0</a></td>
  1201. </tr>
  1202. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1203. <tr>
  1204. <td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""myUrl00"" target=""myTarget"" id=""treeview1t1"">myNode00</a></td>
  1205. </tr>
  1206. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1207. <tr>
  1208. <td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""myUrl1"" target=""myTarget"" id=""treeview1t2"">myNode1</a></td>
  1209. </tr>
  1210. </table>
  1211. </div><a id=""treeview1_SkipLink""></a>";
  1212. #endregion
  1213. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1214. HtmlDiff.AssertAreEqual (strTarget, str, "RenderNavigate");
  1215. }
  1216. public static void pageLoadNavigate (Page page) {
  1217. TreeView tv = new TreeView ();
  1218. tv.EnableClientScript = false;
  1219. tv.ID = "treeview1";
  1220. tv.Target = "myTarget";
  1221. tv.Nodes.Add (new TreeNode ());
  1222. tv.Nodes[0].NavigateUrl = "myUrl0";
  1223. tv.Nodes[0].Text = "myNode0";
  1224. tv.Nodes[0].ChildNodes.Add (new TreeNode ());
  1225. tv.Nodes[0].ChildNodes[0].NavigateUrl = "myUrl00";
  1226. tv.Nodes[0].ChildNodes[0].Text = "myNode00";
  1227. tv.Nodes.Add (new TreeNode ());
  1228. tv.Nodes[1].NavigateUrl = "myUrl1";
  1229. tv.Nodes[1].Text = "myNode1";
  1230. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1231. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1232. page.Form.Controls.Add (lcb);
  1233. page.Form.Controls.Add (tv);
  1234. page.Form.Controls.Add (lce);
  1235. }
  1236. // Render Checkboxes
  1237. [Test]
  1238. [Category ("NunitWeb")]
  1239. public void TreeView_Render_Checkboxes () {
  1240. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadCheckboxes));
  1241. #region HTML
  1242. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1243. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1244. <tr>
  1245. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n0CheckBox"" id=""treeview1n0CheckBox"" title=""Book"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  1246. </tr>
  1247. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1248. <tr>
  1249. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n1CheckBox"" id=""treeview1n1CheckBox"" title=""Chapter"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  1250. </tr>
  1251. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1252. <tr>
  1253. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n2CheckBox"" id=""treeview1n2CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  1254. </tr>
  1255. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1256. <tr>
  1257. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n3CheckBox"" id=""treeview1n3CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  1258. </tr>
  1259. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1260. <tr>
  1261. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n4CheckBox"" id=""treeview1n4CheckBox"" title=""Chapter"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  1262. </tr>
  1263. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1264. <tr>
  1265. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n5CheckBox"" id=""treeview1n5CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  1266. </tr>
  1267. </table>
  1268. </div><a id=""treeview1_SkipLink""></a>";
  1269. #endregion
  1270. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1271. HtmlDiff.AssertAreEqual (strTarget, str, "RenderCheckboxes");
  1272. }
  1273. public static void pageLoadCheckboxes (Page page) {
  1274. TreeView tv = new TreeView ();
  1275. tv.EnableClientScript = false;
  1276. tv.ID = "treeview1";
  1277. tv.ShowCheckBoxes = TreeNodeTypes.All;
  1278. XmlDataSource xmlds = new XmlDataSource ();
  1279. xmlds.EnableCaching = false;
  1280. xmlds.Data = xmlDataBind;
  1281. tv.DataSource = xmlds;
  1282. tv.DataBind ();
  1283. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1284. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1285. page.Form.Controls.Add (lcb);
  1286. page.Form.Controls.Add (tv);
  1287. page.Form.Controls.Add (lce);
  1288. }
  1289. // Render Values
  1290. [Test]
  1291. [Category ("NunitWeb")]
  1292. public void TreeView_Render_Values () {
  1293. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadValues));
  1294. #region HTML
  1295. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""mySkipLinkText"" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1296. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1297. <tr>
  1298. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  1299. </tr>
  1300. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1301. <tr>
  1302. <td><div style=""width:30px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  1303. </tr>
  1304. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1305. <tr>
  1306. <td><div style=""width:30px;height:1px""></div></td><td><div style=""width:30px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  1307. </tr>
  1308. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1309. <tr>
  1310. <td><div style=""width:30px;height:1px""></div></td><td><div style=""width:30px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  1311. </tr>
  1312. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1313. <tr>
  1314. <td><div style=""width:30px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvPWfVVXMf-ioilxt_CauIRc1&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  1315. </tr>
  1316. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1317. <tr>
  1318. <td><div style=""width:30px;height:1px""></div></td><td><div style=""width:30px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=tM_G_fTuPrZTezUsMMFtvNJinrRt8LmxJBdwpNumnBQ1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  1319. </tr>
  1320. </table>
  1321. </div><a id=""treeview1_SkipLink""></a>";
  1322. #endregion
  1323. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1324. HtmlDiff.AssertAreEqual (strTarget, str, "RenderValues");
  1325. }
  1326. public static void pageLoadValues (Page page) {
  1327. TreeView tv = new TreeView ();
  1328. tv.EnableClientScript = false;
  1329. tv.ID = "treeview1";
  1330. tv.ImageSet = TreeViewImageSet.Arrows;
  1331. tv.SkipLinkText = "mySkipLinkText";
  1332. tv.NodeIndent = 30;
  1333. tv.ExpandDepth = 3;
  1334. XmlDataSource xmlds = new XmlDataSource ();
  1335. xmlds.EnableCaching = false;
  1336. xmlds.Data = xmlDataBind;
  1337. tv.DataSource = xmlds;
  1338. tv.DataBind ();
  1339. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1340. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1341. page.Form.Controls.Add (lcb);
  1342. page.Form.Controls.Add (tv);
  1343. page.Form.Controls.Add (lce);
  1344. }
  1345. // Render Images
  1346. [Test]
  1347. [Category ("NunitWeb")]
  1348. public void TreeView_Render_ImagesOn () {
  1349. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadImagesOn));
  1350. #region HTML
  1351. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1352. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1353. <tr>
  1354. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""Test666/dashminus.gif"" alt=""Test111"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  1355. </tr>
  1356. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1357. <tr>
  1358. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""Test666/tminus.gif"" alt=""Test111"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  1359. </tr>
  1360. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1361. <tr>
  1362. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""><img src=""Test666/i.gif"" alt="""" /></div></td><td><img src=""Test666/t.gif"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  1363. </tr>
  1364. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1365. <tr>
  1366. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""><img src=""Test666/i.gif"" alt="""" /></div></td><td><img src=""Test666/l.gif"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  1367. </tr>
  1368. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1369. <tr>
  1370. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""Test666/lminus.gif"" alt=""Test111"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  1371. </tr>
  1372. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1373. <tr>
  1374. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""Test666/l.gif"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  1375. </tr>
  1376. </table>
  1377. </div><a id=""treeview1_SkipLink""></a>";
  1378. #endregion
  1379. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1380. HtmlDiff.AssertAreEqual (strTarget, str, "RenderImagesOn");
  1381. }
  1382. [Test]
  1383. [Category ("NunitWeb")]
  1384. public void TreeView_Render_ImagesOff () {
  1385. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadImagesOff));
  1386. #region HTML
  1387. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1388. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1389. <tr>
  1390. <td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1n0"">Book</a></td>
  1391. </tr>
  1392. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1393. <tr>
  1394. <td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1n1"">Chapter</a></td>
  1395. </tr>
  1396. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1397. <tr>
  1398. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1n2"">Section</a></td>
  1399. </tr>
  1400. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1401. <tr>
  1402. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1n3"">Section</a></td>
  1403. </tr>
  1404. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1405. <tr>
  1406. <td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1n4"">Chapter</a></td>
  1407. </tr>
  1408. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1409. <tr>
  1410. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1n5"">Section</a></td>
  1411. </tr>
  1412. </table>
  1413. </div><a id=""treeview1_SkipLink""></a>";
  1414. #endregion
  1415. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1416. HtmlDiff.AssertAreEqual (strTarget, str, "RenderImagesOff");
  1417. }
  1418. public static void pageLoadImagesOn (Page page) {
  1419. TreeView tv = new TreeView ();
  1420. tv.EnableClientScript = false;
  1421. tv.ID = "treeview1";
  1422. tv.CollapseImageToolTip = "Test111";
  1423. tv.ExpandImageToolTip = "Test222";
  1424. tv.CollapseImageUrl = "Test333";
  1425. tv.ExpandImageUrl = "Test444";
  1426. tv.NoExpandImageUrl = "Test555";
  1427. tv.LineImagesFolder = "Test666";
  1428. tv.ShowLines = true;
  1429. tv.ShowExpandCollapse = true;
  1430. tv.ImageSet = TreeViewImageSet.Custom;
  1431. XmlDataSource xmlds = new XmlDataSource ();
  1432. xmlds.EnableCaching = false;
  1433. xmlds.Data = xmlDataBind;
  1434. tv.DataSource = xmlds;
  1435. tv.DataBind ();
  1436. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1437. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1438. page.Form.Controls.Add (lcb);
  1439. page.Form.Controls.Add (tv);
  1440. page.Form.Controls.Add (lce);
  1441. }
  1442. public static void pageLoadImagesOff (Page page) {
  1443. TreeView tv = new TreeView ();
  1444. tv.EnableClientScript = false;
  1445. tv.ID = "treeview1";
  1446. tv.ShowLines = false;
  1447. tv.ShowExpandCollapse = false;
  1448. XmlDataSource xmlds = new XmlDataSource ();
  1449. xmlds.EnableCaching = false;
  1450. xmlds.Data = xmlDataBind;
  1451. tv.DataSource = xmlds;
  1452. tv.DataBind ();
  1453. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1454. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1455. page.Form.Controls.Add (lcb);
  1456. page.Form.Controls.Add (tv);
  1457. page.Form.Controls.Add (lce);
  1458. }
  1459. //Render Wrap
  1460. [Test]
  1461. [Category ("NunitWeb")]
  1462. public void TreeView_Render_WrapOn () {
  1463. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadWrapOn));
  1464. string strTarget =
  1465. @"<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"">
  1466. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1467. <tr>
  1468. <td><img src=""/NunitWeb/WebResource.axd?d=edXX1vkoy5lI0CekgaZ5zZhMbc1ZCZv4nlS9J-l53l41&amp;t=632883840303269703"" alt="""" /></td><td><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sTreeNode1')"" onclick=""TreeView_SelectNode(treeview1_Data, this,'treeview1t0');"" id=""treeview1t0"">TreeNode1</a></td>
  1469. </tr>
  1470. </table>
  1471. </div><a id=""treeview1_SkipLink""></a>";
  1472. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1473. HtmlDiff.AssertAreEqual (strTarget, str, "RenderWrapOn");
  1474. }
  1475. [Test]
  1476. [Category ("NunitWeb")]
  1477. public void TreeView_Render_WrapOff () {
  1478. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadWrapOff));
  1479. string strTarget =
  1480. @"<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"">
  1481. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1482. <tr>
  1483. <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','sTreeNode1')"" onclick=""TreeView_SelectNode(treeview1_Data, this,'treeview1t0');"" id=""treeview1t0"">TreeNode1</a></td>
  1484. </tr>
  1485. </table>
  1486. </div><a id=""treeview1_SkipLink""></a>";
  1487. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1488. HtmlDiff.AssertAreEqual (strTarget, str, "RenderWrapOff");
  1489. }
  1490. public static void pageLoadWrapOn (Page page) {
  1491. TreeView tv = new TreeView ();
  1492. tv.ID = "treeview1";
  1493. tv.NodeWrap = true;
  1494. tv.Nodes.Add (new TreeNode ("TreeNode1"));
  1495. tv.DataBind ();
  1496. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1497. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1498. page.Form.Controls.Add (lcb);
  1499. page.Form.Controls.Add (tv);
  1500. page.Form.Controls.Add (lce);
  1501. }
  1502. public static void pageLoadWrapOff (Page page) {
  1503. TreeView tv = new TreeView ();
  1504. tv.ID = "treeview1";
  1505. tv.NodeWrap = false;
  1506. tv.Nodes.Add (new TreeNode ("TreeNode1"));
  1507. tv.DataBind ();
  1508. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1509. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1510. page.Form.Controls.Add (lcb);
  1511. page.Form.Controls.Add (tv);
  1512. page.Form.Controls.Add (lce);
  1513. }
  1514. // Render Client
  1515. [Test]
  1516. [Category ("NunitWeb")]
  1517. public void TreeView_Render_Client () {
  1518. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadClient));
  1519. string strTarget = "<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\">\r\n\r\n</div><a id=\"treeview1_SkipLink\"></a>";
  1520. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1521. HtmlDiff.AssertAreEqual (strTarget, str, "RenderClient");
  1522. }
  1523. public static void pageLoadClient (Page page) {
  1524. TreeView tv = new TreeView ();
  1525. tv.ID = "treeview1";
  1526. tv.EnableClientScript = false;
  1527. tv.PopulateNodesFromClient = false;
  1528. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1529. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1530. page.Form.Controls.Add (lcb);
  1531. page.Form.Controls.Add (tv);
  1532. page.Form.Controls.Add (lce);
  1533. }
  1534. //Render Invisible
  1535. [Test]
  1536. [Category ("NunitWeb")]
  1537. public void TreeView_Render_Invisible () {
  1538. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadInvisible));
  1539. string strTarget = "";
  1540. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1541. Assert.AreEqual (strTarget, str, "RenderInvisible");
  1542. }
  1543. public static void pageLoadInvisible (Page page) {
  1544. TreeView tv = new TreeView ();
  1545. tv.ID = "treeview1";
  1546. tv.Visible = false;
  1547. XmlDataSource xmlds = new XmlDataSource ();
  1548. xmlds.EnableCaching = false;
  1549. xmlds.Data = xmlDataBindSmall;
  1550. tv.DataSource = xmlds;
  1551. tv.DataBind ();
  1552. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1553. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1554. page.Form.Controls.Add (lcb);
  1555. page.Form.Controls.Add (tv);
  1556. page.Form.Controls.Add (lce);
  1557. }
  1558. //Render Node Strings
  1559. [Test]
  1560. [Category ("NunitWeb")]
  1561. public void TreeView_Render_NodeStrings () {
  1562. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStrings));
  1563. #region HTML
  1564. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1565. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1566. <tr>
  1567. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" title=""string1"" id=""treeview1t0"">Book</a></td>
  1568. </tr>
  1569. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1570. <tr>
  1571. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td><a href=""string4"" id=""treeview1t1i""><img src=""string3"" alt="""" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""string4"" id=""treeview1t1"">Chapter</a></td>
  1572. </tr>
  1573. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1574. <tr>
  1575. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  1576. </tr>
  1577. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1578. <tr>
  1579. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\string6')"" id=""treeview1t3"">string6</a></td>
  1580. </tr>
  1581. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1582. <tr>
  1583. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\string7')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\string7')"" id=""treeview1t4"">Chapter</a></td>
  1584. </tr>
  1585. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1586. <tr>
  1587. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\string7\\Section')"" id=""treeview1t5"">Section</a></td>
  1588. </tr>
  1589. </table>
  1590. </div><a id=""treeview1_SkipLink""></a>";
  1591. #endregion
  1592. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1593. HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStrings");
  1594. }
  1595. public static void pageLoadNodeStrings (Page page) {
  1596. TreeView tv = new TreeView ();
  1597. tv.EnableClientScript = false;
  1598. tv.ID = "treeview1";
  1599. XmlDataSource xmlds = new XmlDataSource ();
  1600. xmlds.EnableCaching = false;
  1601. xmlds.Data = xmlDataBind;
  1602. tv.DataSource = xmlds;
  1603. tv.DataBind ();
  1604. tv.Nodes[0].ToolTip = "string1";
  1605. tv.Nodes[0].ImageToolTip = "string2";
  1606. tv.Nodes[0].ChildNodes[0].ImageUrl = "string3";
  1607. tv.Nodes[0].ChildNodes[0].NavigateUrl = "string4";
  1608. tv.Nodes[0].ChildNodes[0].ChildNodes[0].Target = "string5";
  1609. tv.Nodes[0].ChildNodes[0].ChildNodes[1].Text = "string6";
  1610. tv.Nodes[0].ChildNodes[1].Value = "string7";
  1611. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1612. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1613. page.Form.Controls.Add (lcb);
  1614. page.Form.Controls.Add (tv);
  1615. page.Form.Controls.Add (lce);
  1616. }
  1617. //Render Node States
  1618. [Test]
  1619. [Category ("NunitWeb")]
  1620. public void TreeView_Render_NodeStates1 () {
  1621. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStates1));
  1622. #region HTML
  1623. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1624. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1625. <tr>
  1626. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  1627. </tr>
  1628. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1629. <tr>
  1630. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  1631. </tr>
  1632. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1633. <tr>
  1634. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t2"">Section</a></td>
  1635. </tr>
  1636. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1637. <tr>
  1638. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><input type=""checkbox"" name=""treeview1n3CheckBox"" id=""treeview1n3CheckBox"" title=""Section"" /><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t3"">Section</a></td>
  1639. </tr>
  1640. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1641. <tr>
  1642. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  1643. </tr>
  1644. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1645. <tr>
  1646. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  1647. </tr>
  1648. </table>
  1649. </div><a id=""treeview1_SkipLink""></a>";
  1650. #endregion
  1651. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1652. HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStates1");
  1653. }
  1654. public static void pageLoadNodeStates1 (Page page) {
  1655. TreeView tv = new TreeView ();
  1656. tv.EnableClientScript = false;
  1657. tv.ID = "treeview1";
  1658. XmlDataSource xmlds = new XmlDataSource ();
  1659. xmlds.EnableCaching = false;
  1660. xmlds.Data = xmlDataBind;
  1661. tv.DataSource = xmlds;
  1662. tv.DataBind ();
  1663. tv.Nodes[0].Checked = true;
  1664. tv.Nodes[0].ChildNodes[0].Selected = false;
  1665. tv.Nodes[0].ChildNodes[0].Expanded = true;
  1666. tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = false;
  1667. tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = true;
  1668. tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.SelectExpand;
  1669. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1670. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1671. page.Form.Controls.Add (lcb);
  1672. page.Form.Controls.Add (tv);
  1673. page.Form.Controls.Add (lce);
  1674. }
  1675. [Test]
  1676. [Category ("NunitWeb")]
  1677. public void TreeView_Render_NodeStates2 () {
  1678. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStates2));
  1679. #region HTML
  1680. string strTarget = @"<a href=""#treeview1_SkipLink""><img alt=""Skip Navigation Links."" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&amp;t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><div id=""treeview1"">
  1681. <table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1682. <tr>
  1683. <td><a href=""javascript:__doPostBack('treeview1','tBook')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Book"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook')"" id=""treeview1t0"">Book</a></td>
  1684. </tr>
  1685. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1686. <tr>
  1687. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKww7ErebG7jw1jueqPriNXg1&amp;t=632900536532114160"" alt=""Expand Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t1"">Chapter</a></td>
  1688. </tr>
  1689. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1690. <tr>
  1691. <td><div style=""width:20px;height:1px""></div></td><td><a href=""javascript:__doPostBack('treeview1','tBook\\Chapter')""><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCKx8id-JMenwfEutsU_5Jl881&amp;t=632900536532114160"" alt=""Collapse Chapter"" style=""border-width:0;"" /></a></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter')"" id=""treeview1t4"">Chapter</a></td>
  1692. </tr>
  1693. </table><table cellpadding=""0"" cellspacing=""0"" style=""border-width:0;"">
  1694. <tr>
  1695. <td><div style=""width:20px;height:1px""></div></td><td><div style=""width:20px;height:1px""></div></td><td><img src=""/NunitWeb/WebResource.axd?d=FFvd_97uOAs_RkkFT_hCK1PXgyMDQIACCdOOfDo560o1&amp;t=632900536532114160"" alt="""" /></td><td style=""white-space:nowrap;""><a class=""treeview1_0"" href=""javascript:__doPostBack('treeview1','sBook\\Chapter\\Section')"" id=""treeview1t5"">Section</a></td>
  1696. </tr>
  1697. </table>
  1698. </div><a id=""treeview1_SkipLink""></a>";
  1699. #endregion
  1700. string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
  1701. HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStates2");
  1702. }
  1703. public static void pageLoadNodeStates2 (Page page) {
  1704. TreeView tv = new TreeView ();
  1705. tv.EnableClientScript = false;
  1706. tv.ID = "treeview1";
  1707. XmlDataSource xmlds = new XmlDataSource ();
  1708. xmlds.EnableCaching = false;
  1709. xmlds.Data = xmlDataBind;
  1710. tv.DataSource = xmlds;
  1711. tv.DataBind ();
  1712. tv.Nodes[0].Checked = false;
  1713. tv.Nodes[0].ChildNodes[0].Selected = true;
  1714. tv.Nodes[0].ChildNodes[0].Expanded = false;
  1715. tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = true;
  1716. tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = false;
  1717. tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.Expand;
  1718. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1719. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1720. page.Form.Controls.Add (lcb);
  1721. page.Form.Controls.Add (tv);
  1722. page.Form.Controls.Add (lce);
  1723. }
  1724. [Test]
  1725. [Category ("NunitWeb")]
  1726. public void TreeView_PostBackFireEvents_1 ()
  1727. {
  1728. WebTest t = new WebTest (PageInvoker.CreateOnLoad (PostBackFireEvents_1));
  1729. String html = t.Run ();
  1730. if (t.UserData == null)
  1731. Assert.Fail ("Event not fired fail");
  1732. Assert.AreEqual ("TreeNodeDataBound", t.UserData.ToString (), "PostBackFireEvents_1");
  1733. }
  1734. #region PostBackFireEvents_1
  1735. public static void PostBackFireEvents_1 (Page p)
  1736. {
  1737. TreeView tv = new TreeView ();
  1738. tv.TreeNodeDataBound += new TreeNodeEventHandler (tv_TreeNodeDataBound);
  1739. tv.EnableClientScript = false;
  1740. tv.ID = "treeview1";
  1741. XmlDataSource xmlds = new XmlDataSource ();
  1742. xmlds.EnableCaching = false;
  1743. xmlds.Data = xmlDataBind;
  1744. tv.DataSource = xmlds;
  1745. tv.DataBind ();
  1746. tv.Nodes[0].Checked = true;
  1747. tv.Nodes[0].ChildNodes[0].Selected = false;
  1748. tv.Nodes[0].ChildNodes[0].Expanded = true;
  1749. tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = false;
  1750. tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = true;
  1751. tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.SelectExpand;
  1752. p.Form.Controls.Add (tv);
  1753. }
  1754. public static void tv_TreeNodeDataBound (object sender, TreeNodeEventArgs e)
  1755. {
  1756. WebTest.CurrentTest.UserData = "TreeNodeDataBound";
  1757. }
  1758. #endregion
  1759. [Test]
  1760. [Category ("NunitWeb")]
  1761. [Category ("NotWorking")] // Implementation details for mono
  1762. public void TreeView_PostBackFireEvents_2 ()
  1763. {
  1764. WebTest t = new WebTest ("NoEventValidation.aspx");
  1765. t.Invoker = PageInvoker.CreateOnLoad (PostBackFireEvents_2);
  1766. string html = t.Run ();
  1767. FormRequest fr = new FormRequest (t.Response, "form1");
  1768. #if DOT_NET
  1769. fr.Controls.Add ("__EVENTTARGET");
  1770. fr.Controls.Add ("__EVENTARGUMENT");
  1771. fr.Controls.Add ("treeview1_ExpandState");
  1772. fr.Controls.Add ("treeview1_SelectedNode");
  1773. fr.Controls.Add ("treeview1_PopulateLog");
  1774. fr.Controls.Add ("treeview1n0CheckBox");
  1775. fr.Controls["__EVENTTARGET"].Value = "treeview1";
  1776. fr.Controls["__EVENTARGUMENT"].Value = "sroot";
  1777. fr.Controls["treeview1_ExpandState"].Value = "n";
  1778. fr.Controls["treeview1_SelectedNode"].Value = "treeview1t0";
  1779. fr.Controls["treeview1_PopulateLog"].Value = "";
  1780. fr.Controls["treeview1n0CheckBox"].Value = "on";
  1781. #else
  1782. fr.Controls.Add ("__EVENTTARGET");
  1783. fr.Controls.Add ("__EVENTARGUMENT");
  1784. //fr.Controls.Add ("treeview1_ExpandState");
  1785. //fr.Controls.Add ("treeview1_SelectedNode");
  1786. //fr.Controls.Add ("treeview1_PopulateLog");
  1787. fr.Controls.Add ("treeview1_cs_0");
  1788. fr.Controls ["__EVENTTARGET"].Value = "treeview1";
  1789. fr.Controls ["__EVENTARGUMENT"].Value = "sel|0";
  1790. //fr.Controls ["treeview1_ExpandState"].Value = "n";
  1791. //fr.Controls ["treeview1_SelectedNode"].Value = "treeview1t0";
  1792. //fr.Controls ["treeview1_PopulateLog"].Value = "";
  1793. fr.Controls ["treeview1_cs_0"].Value = "on";
  1794. #endif
  1795. t.Request = fr;
  1796. html = t.Run ();
  1797. Assert.AreEqual ("TreeNodeCheckChanged", t.UserData.ToString (), "PostBackFireEvents");
  1798. }
  1799. #region PostBackFireEvents_2
  1800. public static void PostBackFireEvents_2 (Page p)
  1801. {
  1802. TreeView tv = new TreeView ();
  1803. tv.TreeNodeCheckChanged+=new TreeNodeEventHandler(tv_TreeNodeCheckChanged);
  1804. tv.EnableClientScript = false;
  1805. tv.ID = "treeview1";
  1806. TreeNode root = new TreeNode ("root", "root");
  1807. root.ShowCheckBox = true;
  1808. root.Checked = false;
  1809. tv.Nodes.Add (root);
  1810. p.Form.Controls.Add (tv);
  1811. }
  1812. static void tv_TreeNodeCheckChanged (object sender, TreeNodeEventArgs e)
  1813. {
  1814. WebTest.CurrentTest.UserData = "TreeNodeCheckChanged";
  1815. }
  1816. #endregion
  1817. [Test]
  1818. [Category ("NunitWeb")]
  1819. public void TreeView_PostBackFireEvents_3 ()
  1820. {
  1821. WebTest t = new WebTest (PageInvoker.CreateOnLoad (PostBackFireEvents_3));
  1822. String html = t.Run ();
  1823. if (t.UserData == null)
  1824. Assert.Fail ("Event not fired fail");
  1825. Assert.AreEqual ("TreeNodeExpanded", t.UserData.ToString (), "PostBackFireEvents#1");
  1826. FormRequest fr = new FormRequest (t.Response, "form1");
  1827. fr.Controls.Add ("__EVENTTARGET");
  1828. fr.Controls.Add ("__EVENTARGUMENT");
  1829. fr.Controls["__EVENTTARGET"].Value = "treeview1";
  1830. #if DOT_NET
  1831. fr.Controls["__EVENTARGUMENT"].Value = "tBook";
  1832. #else
  1833. fr.Controls ["__EVENTARGUMENT"].Value = "ec|0";
  1834. #endif
  1835. t.Request = fr;
  1836. html = t.Run ();
  1837. Assert.AreEqual ("TreeNodeCollapsed", t.UserData.ToString (), "PostBackFireEvents#2");
  1838. }
  1839. #region PostBackFireEvents_3
  1840. public static void PostBackFireEvents_3 (Page p)
  1841. {
  1842. TreeView tv = new TreeView ();
  1843. tv.TreeNodeCollapsed += new TreeNodeEventHandler (tv_TreeNodeCollapsed);
  1844. tv.TreeNodeExpanded +=new TreeNodeEventHandler(tv_TreeNodeExpanded);
  1845. tv.EnableClientScript = false;
  1846. tv.ID = "treeview1";
  1847. XmlDataSource xmlds = new XmlDataSource ();
  1848. xmlds.EnableCaching = false;
  1849. xmlds.Data = xmlDataBind;
  1850. tv.DataSource = xmlds;
  1851. tv.DataBind ();
  1852. tv.Nodes[0].Checked = true;
  1853. tv.Nodes[0].ChildNodes[0].Selected = false;
  1854. tv.Nodes[0].ChildNodes[0].Expanded = true;
  1855. tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = false;
  1856. tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = true;
  1857. tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.SelectExpand;
  1858. p.Form.Controls.Add (tv);
  1859. }
  1860. public static void tv_TreeNodeCollapsed (object sender, TreeNodeEventArgs e)
  1861. {
  1862. WebTest.CurrentTest.UserData = "TreeNodeCollapsed";
  1863. }
  1864. static void tv_TreeNodeExpanded (object sender, TreeNodeEventArgs e)
  1865. {
  1866. WebTest.CurrentTest.UserData = "TreeNodeExpanded";
  1867. }
  1868. #endregion
  1869. [Test]
  1870. [Category ("NunitWeb")]
  1871. public void TreeView_PostBackFireEvents_4 ()
  1872. {
  1873. WebTest t = new WebTest (PageInvoker.CreateOnLoad (PostBackFireEvents_4));
  1874. String html = t.Run ();
  1875. Assert.AreEqual ("TreeNodePopulate", t.UserData.ToString (), "PostBackFireEvents");
  1876. }
  1877. #region PostBackFireEvents_4
  1878. public static void PostBackFireEvents_4 (Page p)
  1879. {
  1880. TreeView tv = new TreeView ();
  1881. tv.TreeNodePopulate += new TreeNodeEventHandler (tv_TreeNodePopulate_1);
  1882. tv.EnableClientScript = false;
  1883. tv.ID = "treeview1";
  1884. TreeNode root = new TreeNode ("Root", "Root");
  1885. root.PopulateOnDemand = true;
  1886. root.Expanded = true;
  1887. tv.Nodes.Add (root);
  1888. p.Form.Controls.Add (tv);
  1889. }
  1890. public static void tv_TreeNodePopulate_1 (object sender, TreeNodeEventArgs e)
  1891. {
  1892. WebTest.CurrentTest.UserData = "TreeNodePopulate";
  1893. }
  1894. #endregion
  1895. [Test]
  1896. [Category ("NunitWeb")]
  1897. public void TreeView_PostBackFireEvents_5 ()
  1898. {
  1899. WebTest t = new WebTest ("NoEventValidation.aspx");
  1900. t.Invoker = PageInvoker.CreateOnLoad (PostBackFireEvents_5);
  1901. t.Run ();
  1902. FormRequest fr = new FormRequest (t.Response, "form1");
  1903. #if DOT_NET
  1904. fr.Controls.Add ("__EVENTTARGET");
  1905. fr.Controls.Add ("__EVENTARGUMENT");
  1906. fr.Controls.Add ("TreeView2_ExpandState");
  1907. fr.Controls.Add ("TreeView2_SelectedNode");
  1908. fr.Controls["__EVENTTARGET"].Value = "treeview1";
  1909. fr.Controls["__EVENTARGUMENT"].Value = "snode";
  1910. fr.Controls["TreeView2_ExpandState"].Value = "nn";
  1911. fr.Controls["TreeView2_SelectedNode"].Value = "treeview1t1";
  1912. #else
  1913. fr.Controls.Add ("__EVENTTARGET");
  1914. fr.Controls.Add ("__EVENTARGUMENT");
  1915. //fr.Controls.Add ("TreeView2_ExpandState");
  1916. //fr.Controls.Add ("TreeView2_SelectedNode");
  1917. fr.Controls ["__EVENTTARGET"].Value = "treeview1";
  1918. fr.Controls ["__EVENTARGUMENT"].Value = "sel|1";
  1919. //fr.Controls ["TreeView2_ExpandState"].Value = "nn";
  1920. //fr.Controls ["TreeView2_SelectedNode"].Value = "treeview1t1";
  1921. #endif
  1922. t.Request = fr;
  1923. t.Run ();
  1924. Assert.AreEqual ("SelectedNodeChanged", t.UserData.ToString (), "PostBackFireEvents");
  1925. }
  1926. #region PostBackFireEvents_5
  1927. public static void PostBackFireEvents_5 (Page p)
  1928. {
  1929. TreeView tv = new TreeView ();
  1930. tv.SelectedNodeChanged += new EventHandler (tv_SelectedNodeChanged);
  1931. tv.EnableClientScript = false;
  1932. tv.ID = "treeview1";
  1933. TreeNode root = new TreeNode ("root", "root");
  1934. root.Selected = true;
  1935. tv.Nodes.Add (root);
  1936. TreeNode node = new TreeNode ("node", "node");
  1937. tv.Nodes.Add (node);
  1938. node.Selected = false;
  1939. p.Form.Controls.Add (tv);
  1940. }
  1941. static void tv_SelectedNodeChanged (object sender, EventArgs e)
  1942. {
  1943. WebTest.CurrentTest.UserData = "SelectedNodeChanged";
  1944. }
  1945. #endregion
  1946. [Test]
  1947. public void TreeView_NullDS ()
  1948. {
  1949. TreeView tv = new TreeView ();
  1950. tv.DataSource = null;
  1951. tv.DataBind ();
  1952. Assert.AreEqual (0, tv.Nodes.Count, "NullDS");
  1953. }
  1954. // Events Stuff
  1955. private bool eventDone = false;
  1956. private string treeNodeName = string.Empty;
  1957. private void TreeViewEventHandler1 (object sender, EventArgs e) {
  1958. eventDone = true;
  1959. }
  1960. private void TreeViewEventHandler2 (object sender, TreeNodeEventArgs e) {
  1961. eventDone = true;
  1962. treeNodeName = e.Node.Text;
  1963. }
  1964. private void ResetEvents () {
  1965. eventDone = false;
  1966. treeNodeName = string.Empty;
  1967. }
  1968. [Test]
  1969. public void TreeView_Event_Init () {
  1970. PokerTreeView tv = new PokerTreeView ();
  1971. ResetEvents ();
  1972. Page p = new Page ();
  1973. p.Controls.Add (tv);
  1974. tv.Init += new EventHandler (TreeViewEventHandler1);
  1975. Assert.AreEqual (false, eventDone, "BeforeInit");
  1976. tv.OnInitBase (new EventArgs ());
  1977. Assert.AreEqual (true, eventDone, "AfterInit");
  1978. }
  1979. [Test]
  1980. public void TreeView_Event_SelectedNodeChanged () {
  1981. PokerTreeView tv = new PokerTreeView ();
  1982. ResetEvents ();
  1983. tv.SelectedNodeChanged += new EventHandler (TreeViewEventHandler1);
  1984. Assert.AreEqual (false, eventDone, "BeforeSelectedNodeChanged");
  1985. tv.OnSelectedNodeChangedBase (new EventArgs ());
  1986. Assert.AreEqual (true, eventDone, "AfterSelectedNodeChanged");
  1987. }
  1988. [Test]
  1989. public void TreeView_Event_TreeNodeCheckChanged () {
  1990. string methodName = "TreeNodeCheckChanged";
  1991. PokerTreeView tv = new PokerTreeView ();
  1992. ResetEvents ();
  1993. tv.TreeNodeCheckChanged += new TreeNodeEventHandler (TreeViewEventHandler2);
  1994. Assert.AreEqual (false, eventDone, "Before1 " + methodName);
  1995. Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
  1996. tv.OnTreeNodeCheckChangedBase (new TreeNodeEventArgs (new TreeNode (methodName)));
  1997. Assert.AreEqual (true, eventDone, "After1 " + methodName);
  1998. Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
  1999. }
  2000. [Test]
  2001. public void TreeView_Event_TreeNodeCollapsed () {
  2002. string methodName = "TreeNodeCollapsed";
  2003. PokerTreeView tv = new PokerTreeView ();
  2004. ResetEvents ();
  2005. tv.TreeNodeCollapsed += new TreeNodeEventHandler (TreeViewEventHandler2);
  2006. Assert.AreEqual (false, eventDone, "Before1 " + methodName);
  2007. Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
  2008. tv.OnTreeNodeCollapsedBase (new TreeNodeEventArgs (new TreeNode (methodName)));
  2009. Assert.AreEqual (true, eventDone, "After1 " + methodName);
  2010. Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
  2011. }
  2012. [Test]
  2013. public void TreeView_Event_TreeNodeDataBound () {
  2014. string methodName = "TreeNodeDataBound";
  2015. PokerTreeView tv = new PokerTreeView ();
  2016. ResetEvents ();
  2017. tv.TreeNodeDataBound += new TreeNodeEventHandler (TreeViewEventHandler2);
  2018. Assert.AreEqual (false, eventDone, "Before1 " + methodName);
  2019. Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
  2020. tv.OnTreeNodeDataBoundBase (new TreeNodeEventArgs (new TreeNode (methodName)));
  2021. Assert.AreEqual (true, eventDone, "After1 " + methodName);
  2022. Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
  2023. }
  2024. [Test]
  2025. public void TreeView_Event_TreeNodeExpanded () {
  2026. string methodName = "TreeNodeExpanded";
  2027. PokerTreeView tv = new PokerTreeView ();
  2028. ResetEvents ();
  2029. tv.TreeNodeExpanded += new TreeNodeEventHandler (TreeViewEventHandler2);
  2030. Assert.AreEqual (false, eventDone, "Before1 " + methodName);
  2031. Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
  2032. tv.OnTreeNodeExpandedBase (new TreeNodeEventArgs (new TreeNode (methodName)));
  2033. Assert.AreEqual (true, eventDone, "After1 " + methodName);
  2034. Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
  2035. }
  2036. [Test]
  2037. public void TreeView_Event_TreeNodePopulate () {
  2038. string methodName = "TreeNodePopulate";
  2039. PokerTreeView tv = new PokerTreeView ();
  2040. ResetEvents ();
  2041. tv.TreeNodePopulate += new TreeNodeEventHandler (TreeViewEventHandler2);
  2042. Assert.AreEqual (false, eventDone, "Before1 " + methodName);
  2043. Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
  2044. tv.OnTreeNodePopulateBase (new TreeNodeEventArgs (new TreeNode (methodName)));
  2045. Assert.AreEqual (true, eventDone, "After1 " + methodName);
  2046. Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
  2047. }
  2048. [TestFixtureTearDown]
  2049. public void TearDown () {
  2050. WebTest.Unload ();
  2051. }
  2052. }
  2053. }
  2054. #endif