TreeViewTest.cs 118 KB

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