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