TreeViewTest.cs 118 KB

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