TreeViewTest.cs 117 KB

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