//
// System.Web.UI.WebControls.TreeViewTest.cs
// - Unit tests for System.Web.UI.Webcontrols.TreeView
//
//
// Authors:
// Chris Toshok (toshok@ximian.com)
// Hagit Yidov (hagity@mainsoft.com
//
// (C) 2005 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//
#if NET_2_0
using System;
using System.IO;
using System.Globalization;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MonoTests.stand_alone.WebHarness;
using MonoTests.SystemWeb.Framework;
using System.Xml;
using System.Collections.Specialized;
using System.Threading;
using NUnit.Framework;
namespace MonoTests.System.Web.UI.WebControls {
public class TreeViewPoker : TreeView {
}
class PokerTreeView : TreeView {
// View state Stuff
public PokerTreeView () {
TrackViewState ();
}
public object SaveState () {
return SaveViewState ();
}
public void LoadState (object o) {
LoadViewState (o);
}
public StateBag StateBag {
get { return base.ViewState; }
}
public HtmlTextWriterTag TagKeyFromBase {
get { return base.TagKey; }
}
// Protected Methods
public void DataBindFromBase (bool raiseOnDataBinding) {
base.DataBind (raiseOnDataBinding);
}
public void AddAttributesToRenderBase (HtmlTextWriter writer) {
base.AddAttributesToRender (writer);
}
public ControlCollection CreateControlCollectionBase () {
return (base.CreateControlCollection ());
}
public TreeNode CreateNodeBase () {
TreeNode tn = base.CreateNode ();
tn.Text = "New Tree Node";
return (tn);
}
public void RaiseCallbackEventBase (string eventArgument) {
base.RaiseCallbackEvent (eventArgument);
}
public string GetCallbackResultBase () {
return (base.GetCallbackResult ());
}
public void SetNodeDataBoundBase (TreeNode node, bool dataBound) {
base.SetNodeDataBound (node, dataBound);
}
public void SetNodeDataItemBase (TreeNode node, object dataItem) {
base.SetNodeDataItem (node, dataItem);
}
public void SetNodeDataPathBase (TreeNode node, string dataPath) {
base.SetNodeDataPath (node, dataPath);
}
public void PerformDataBindingBase () {
base.PerformDataBinding ();
}
// Events
public void OnInitBase (EventArgs e) { base.OnInit (e); }
public void OnPreRenderBase (EventArgs e) { base.OnPreRender (e); }
public void OnSelectedNodeChangedBase (EventArgs e) { base.OnSelectedNodeChanged (e); }
public void OnTreeNodeCheckChangedBase (TreeNodeEventArgs e) { base.OnTreeNodeCheckChanged (e); }
public void OnTreeNodeCollapsedBase (TreeNodeEventArgs e) { base.OnTreeNodeCollapsed (e); }
public void OnTreeNodeDataBoundBase (TreeNodeEventArgs e) { base.OnTreeNodeDataBound (e); }
public void OnTreeNodeExpandedBase (TreeNodeEventArgs e) { base.OnTreeNodeExpanded (e); }
public void OnTreeNodePopulateBase (TreeNodeEventArgs e) { base.OnTreeNodePopulate (e); }
public void OnBubbleEventBase (Object o, EventArgs e) { base.OnBubbleEvent (o, e); }
}
[TestFixture]
public class TreeViewTest {
[TestFixtureSetUp]
public void SetUp ()
{
WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");
}
[Test]
public void Defaults () {
TreeViewPoker p = new TreeViewPoker ();
Assert.AreEqual ("Collapse {0}", p.CollapseImageToolTip, "A1");
Assert.IsTrue (p.AutoGenerateDataBindings, "A2");
Assert.AreEqual ("", p.CollapseImageUrl, "A3");
Assert.IsNotNull (p.DataBindings, "A4");
Assert.AreEqual (0, p.DataBindings.Count, "A4.1");
Assert.IsTrue (p.EnableClientScript, "A5");
Assert.AreEqual (-1, p.ExpandDepth, "A6");
Assert.AreEqual ("Expand {0}", p.ExpandImageToolTip, "A7");
Assert.AreEqual ("", p.ExpandImageUrl, "A8");
Assert.IsNotNull (p.HoverNodeStyle, "A9");
Assert.AreEqual (TreeViewImageSet.Custom, p.ImageSet, "A10");
Assert.IsNotNull (p.LeafNodeStyle, "A11");
Assert.IsNotNull (p.LevelStyles, "A12");
Assert.AreEqual (0, p.LevelStyles.Count, "A12.1");
Assert.AreEqual ("", p.LineImagesFolder, "A13");
Assert.AreEqual (-1, p.MaxDataBindDepth, "A14");
Assert.AreEqual (20, p.NodeIndent, "A15");
Assert.IsNotNull (p.Nodes, "A16");
Assert.AreEqual (0, p.Nodes.Count, "A16.1");
Assert.IsNotNull (p.NodeStyle, "A17");
Assert.IsFalse (p.NodeWrap, "A18");
Assert.AreEqual ("", p.NoExpandImageUrl, "A19");
Assert.IsNotNull (p.ParentNodeStyle, "A20");
Assert.AreEqual ('/', p.PathSeparator, "A21");
Assert.IsTrue (p.PopulateNodesFromClient, "A22");
Assert.IsNotNull (p.RootNodeStyle, "A23");
Assert.IsNotNull (p.SelectedNodeStyle, "A24");
Assert.AreEqual (TreeNodeTypes.None, p.ShowCheckBoxes, "A25");
Assert.IsTrue (p.ShowExpandCollapse, "A26");
Assert.AreEqual ("Skip Navigation Links.", p.SkipLinkText, "A27");
Assert.IsNull (p.SelectedNode, "A28");
Assert.AreEqual ("", p.SelectedValue, "A29");
Assert.AreEqual ("", p.Target, "A30");
Assert.IsTrue (p.Visible, "A31");
}
[Test]
public void TreeView_DefaultProperties () {
PokerTreeView tv = new PokerTreeView ();
Assert.AreEqual (0, tv.StateBag.Count, "ViewState.Count");
// Public Properties
Assert.AreEqual (true, tv.AutoGenerateDataBindings, "AutoGenerateDataBindings");
Assert.AreEqual (0, tv.CheckedNodes.Count, "CheckedNodes");
Assert.AreEqual ("Collapse {0}", tv.CollapseImageToolTip, "CollapseImageToolTip");
Assert.AreEqual (string.Empty, tv.CollapseImageUrl, "CollapseImageUrl");
Assert.AreEqual (0, tv.DataBindings.Count, "DataBindings");
Assert.AreEqual (true, tv.EnableClientScript, "EnableClientScript");
Assert.AreEqual (-1, tv.ExpandDepth, "ExpandDepth");
Assert.AreEqual ("Expand {0}", tv.ExpandImageToolTip, "ExpandImageToolTip");
Assert.AreEqual (string.Empty, tv.ExpandImageUrl, "ExpandImageUrl");
Assert.AreEqual (TreeViewImageSet.Custom, tv.ImageSet, "ImageSet");
Assert.AreEqual (0, tv.LevelStyles.Count, "LevelStyles");
Assert.AreEqual (string.Empty, tv.LineImagesFolder, "LineImagesFolder");
Assert.AreEqual (-1, tv.MaxDataBindDepth, "MaxDataBindDepth");
Assert.AreEqual (20, tv.NodeIndent, "NodeIndent");
Assert.AreEqual (0, tv.Nodes.Count, "Nodes");
Assert.AreEqual (false, tv.NodeWrap, "NodeWrap");
Assert.AreEqual (string.Empty, tv.NoExpandImageUrl, "NoExpandImageUrl");
Assert.AreEqual (true, tv.PopulateNodesFromClient, "PopulateNodesFromClient");
Assert.AreEqual (null, tv.SelectedNode, "SelectedNode");
Assert.AreEqual (string.Empty, tv.SelectedValue, "SelectedValue");
Assert.AreEqual (TreeNodeTypes.None, tv.ShowCheckBoxes, "ShowCheckBoxes");
Assert.AreEqual (true, tv.ShowExpandCollapse, "ShowExpandCollapse");
Assert.AreEqual (false, tv.ShowLines, "ShowLines");
Assert.AreEqual ("Skip Navigation Links.", tv.SkipLinkText, "SkipLinkText");
Assert.AreEqual (string.Empty, tv.Target, "Target");
Assert.AreEqual (true, tv.Visible, "Visible");
// Protected Properties
Assert.AreEqual (HtmlTextWriterTag.Div, tv.TagKeyFromBase, "TagKey");
}
[Test]
public void Treeview_AssignToDefaultProperties () {
PokerTreeView tv = new PokerTreeView ();
Assert.AreEqual (0, tv.StateBag.Count, "ViewState.Count");
tv.AutoGenerateDataBindings = true;
Assert.AreEqual (true, tv.AutoGenerateDataBindings, "AutoGenerateDataBindings");
Assert.AreEqual (1, tv.StateBag.Count, "ViewState.Count-1");
//tv.CheckedNodes.Add (new TreeNode ());
//Assert.AreEqual (1, tv.CheckedNodes.Count, "CheckedNodes");
//Assert.AreEqual (1, tv.StateBag.Count, "ViewState.Count-2");
tv.CollapseImageToolTip = "Collapse {0}";
Assert.AreEqual ("Collapse {0}", tv.CollapseImageToolTip, "CollapseImageToolTip");
Assert.AreEqual (2, tv.StateBag.Count, "ViewState.Count-3");
tv.CollapseImageUrl = string.Empty;
Assert.AreEqual (string.Empty, tv.CollapseImageUrl, "CollapseImageUrl");
Assert.AreEqual (3, tv.StateBag.Count, "ViewState.Count-4");
tv.DataBindings.Add (new TreeNodeBinding ());
Assert.AreEqual (1, tv.DataBindings.Count, "DataBindings");
Assert.AreEqual (3, tv.StateBag.Count, "ViewState.Count-5");
tv.EnableClientScript = true;
Assert.AreEqual (true, tv.EnableClientScript, "EnableClientScript");
Assert.AreEqual (4, tv.StateBag.Count, "ViewState.Count-6");
tv.ExpandDepth = -1;
Assert.AreEqual (-1, tv.ExpandDepth, "ExpandDepth");
Assert.AreEqual (5, tv.StateBag.Count, "ViewState.Count-7");
tv.ExpandImageToolTip = "Expand {0}";
Assert.AreEqual ("Expand {0}", tv.ExpandImageToolTip, "ExpandImageToolTip");
Assert.AreEqual (6, tv.StateBag.Count, "ViewState.Count-8");
tv.ExpandImageUrl = string.Empty;
Assert.AreEqual (string.Empty, tv.ExpandImageUrl, "ExpandImageUrl");
Assert.AreEqual (7, tv.StateBag.Count, "ViewState.Count-9");
tv.ImageSet = TreeViewImageSet.Custom;
Assert.AreEqual (TreeViewImageSet.Custom, tv.ImageSet, "ImageSet");
Assert.AreEqual (8, tv.StateBag.Count, "ViewState.Count-10");
tv.LevelStyles.Add (new TreeNodeStyle ());
Assert.AreEqual (1, tv.LevelStyles.Count, "LevelStyles");
Assert.AreEqual (8, tv.StateBag.Count, "ViewState.Count-11");
tv.LineImagesFolder = string.Empty;
Assert.AreEqual (string.Empty, tv.LineImagesFolder, "LineImagesFolder");
Assert.AreEqual (9, tv.StateBag.Count, "ViewState.Count-12");
tv.MaxDataBindDepth = -1;
Assert.AreEqual (-1, tv.MaxDataBindDepth, "MaxDataBindDepth");
Assert.AreEqual (10, tv.StateBag.Count, "ViewState.Count-13");
tv.NodeIndent = 20;
Assert.AreEqual (20, tv.NodeIndent, "NodeIndent");
Assert.AreEqual (11, tv.StateBag.Count, "ViewState.Count-14");
tv.Nodes.Add (new TreeNode ());
Assert.AreEqual (1, tv.Nodes.Count, "Nodes");
Assert.AreEqual (11, tv.StateBag.Count, "ViewState.Count-15");
tv.NodeWrap = false;
Assert.AreEqual (false, tv.NodeWrap, "NodeWrap");
Assert.AreEqual (12, tv.StateBag.Count, "ViewState.Count-16");
tv.NoExpandImageUrl = string.Empty;
Assert.AreEqual (string.Empty, tv.NoExpandImageUrl, "NoExpandImageUrl");
Assert.AreEqual (13, tv.StateBag.Count, "ViewState.Count-17");
tv.PopulateNodesFromClient = true;
Assert.AreEqual (true, tv.PopulateNodesFromClient, "PopulateNodesFromClient");
Assert.AreEqual (14, tv.StateBag.Count, "ViewState.Count-18");
tv.ShowCheckBoxes = TreeNodeTypes.None;
Assert.AreEqual (TreeNodeTypes.None, tv.ShowCheckBoxes, "ShowCheckBoxes");
Assert.AreEqual (15, tv.StateBag.Count, "ViewState.Count-19");
tv.ShowExpandCollapse = true;
Assert.AreEqual (true, tv.ShowExpandCollapse, "ShowExpandCollapse");
Assert.AreEqual (16, tv.StateBag.Count, "ViewState.Count-20");
tv.ShowLines = false;
Assert.AreEqual (false, tv.ShowLines, "ShowLines");
Assert.AreEqual (17, tv.StateBag.Count, "ViewState.Count-21");
tv.SkipLinkText = "Skip Navigation Links.";
Assert.AreEqual ("Skip Navigation Links.", tv.SkipLinkText, "SkipLinkText");
Assert.AreEqual (18, tv.StateBag.Count, "ViewState.Count-22");
tv.Target = string.Empty;
Assert.AreEqual (string.Empty, tv.Target, "Target");
Assert.AreEqual (19, tv.StateBag.Count, "ViewState.Count-23");
tv.Visible = true;
Assert.AreEqual (true, tv.Visible, "Visible");
Assert.AreEqual (19, tv.StateBag.Count, "ViewState.Count-24");
}
[Test]
public void Treeview_ViewState () {
PokerTreeView tv = new PokerTreeView ();
tv.AutoGenerateDataBindings = true;
Assert.AreEqual (true, tv.AutoGenerateDataBindings, "AutoGenerateDataBindings-beforecopy");
TreeNode node = new TreeNode ();
node.Checked = true;
tv.Nodes.Add (node);
tv.Nodes.Add (new TreeNode ());
Assert.AreEqual (2, tv.Nodes.Count, "Nodes-beforecopy");
Assert.AreEqual (1, tv.CheckedNodes.Count, "CheckedNodes-beforecopy");
tv.CollapseImageToolTip = "Collapse {0}";
Assert.AreEqual ("Collapse {0}", tv.CollapseImageToolTip, "CollapseImageToolTip-beforecopy");
tv.CollapseImageUrl = string.Empty;
Assert.AreEqual (string.Empty, tv.CollapseImageUrl, "CollapseImageUrl-beforecopy");
tv.DataBindings.Add (new TreeNodeBinding ());
Assert.AreEqual (1, tv.DataBindings.Count, "DataBindings-beforecopy");
tv.EnableClientScript = true;
Assert.AreEqual (true, tv.EnableClientScript, "EnableClientScript-beforecopy");
tv.ExpandDepth = -1;
Assert.AreEqual (-1, tv.ExpandDepth, "ExpandDepth-beforecopy");
tv.ExpandImageToolTip = "Expand {0}";
Assert.AreEqual ("Expand {0}", tv.ExpandImageToolTip, "ExpandImageToolTip-beforecopy");
tv.ExpandImageUrl = string.Empty;
Assert.AreEqual (string.Empty, tv.ExpandImageUrl, "ExpandImageUrl-beforecopy");
tv.ImageSet = TreeViewImageSet.Custom;
Assert.AreEqual (TreeViewImageSet.Custom, tv.ImageSet, "ImageSet-beforecopy");
tv.LevelStyles.Add (new TreeNodeStyle ());
Assert.AreEqual (1, tv.LevelStyles.Count, "LevelStyles-beforecopy");
tv.LineImagesFolder = string.Empty;
Assert.AreEqual (string.Empty, tv.LineImagesFolder, "LineImagesFolder-beforecopy");
tv.MaxDataBindDepth = -1;
Assert.AreEqual (-1, tv.MaxDataBindDepth, "MaxDataBindDepth-beforecopy");
tv.NodeIndent = 20;
Assert.AreEqual (20, tv.NodeIndent, "NodeIndent-beforecopy");
tv.NodeWrap = false;
Assert.AreEqual (false, tv.NodeWrap, "NodeWrap-beforecopy");
tv.NoExpandImageUrl = string.Empty;
Assert.AreEqual (string.Empty, tv.NoExpandImageUrl, "NoExpandImageUrl-beforecopy");
tv.PopulateNodesFromClient = true;
Assert.AreEqual (true, tv.PopulateNodesFromClient, "PopulateNodesFromClient-beforecopy");
tv.ShowCheckBoxes = TreeNodeTypes.None;
Assert.AreEqual (TreeNodeTypes.None, tv.ShowCheckBoxes, "ShowCheckBoxes-beforecopy");
tv.ShowExpandCollapse = true;
Assert.AreEqual (true, tv.ShowExpandCollapse, "ShowExpandCollapse-beforecopy");
tv.ShowLines = false;
Assert.AreEqual (false, tv.ShowLines, "ShowLines-beforecopy");
tv.SkipLinkText = "Skip Navigation Links.";
Assert.AreEqual ("Skip Navigation Links.", tv.SkipLinkText, "SkipLinkText-beforecopy");
tv.Target = string.Empty;
Assert.AreEqual (string.Empty, tv.Target, "Target-beforecopy");
tv.Visible = true;
Assert.AreEqual (true, tv.Visible, "Visible-beforecopy");
object state = tv.SaveState ();
PokerTreeView copy = new PokerTreeView ();
copy.LoadState (state);
Assert.AreEqual (true, copy.AutoGenerateDataBindings, "AutoGenerateDataBindings-aftercopy");
Assert.AreEqual ("Collapse {0}", copy.CollapseImageToolTip, "CollapseImageToolTip-aftercopy");
Assert.AreEqual (string.Empty, copy.CollapseImageUrl, "CollapseImageUrl-aftercopy");
Assert.AreEqual (true, copy.EnableClientScript, "EnableClientScript-aftercopy");
Assert.AreEqual (-1, copy.ExpandDepth, "ExpandDepth-aftercopy");
Assert.AreEqual ("Expand {0}", copy.ExpandImageToolTip, "ExpandImageToolTip-aftercopy");
Assert.AreEqual (string.Empty, copy.ExpandImageUrl, "ExpandImageUrl-aftercopy");
Assert.AreEqual (TreeViewImageSet.Custom, copy.ImageSet, "ImageSet-aftercopy");
Assert.AreEqual (1, copy.LevelStyles.Count, "LevelStyles-aftercopy");
Assert.AreEqual (string.Empty, copy.LineImagesFolder, "LineImagesFolder-aftercopy");
Assert.AreEqual (-1, copy.MaxDataBindDepth, "MaxDataBindDepth-aftercopy");
Assert.AreEqual (20, copy.NodeIndent, "NodeIndent-aftercopy");
Assert.AreEqual (2, copy.Nodes.Count, "Nodes-aftercopy");
Assert.AreEqual (false, copy.NodeWrap, "NodeWrap-aftercopy");
Assert.AreEqual (string.Empty, copy.NoExpandImageUrl, "NoExpandImageUrl-aftercopy");
Assert.AreEqual (true, copy.PopulateNodesFromClient, "PopulateNodesFromClient-aftercopy");
Assert.AreEqual (TreeNodeTypes.None, copy.ShowCheckBoxes, "ShowCheckBoxes-aftercopy");
Assert.AreEqual (true, copy.ShowExpandCollapse, "ShowExpandCollapse-aftercopy");
Assert.AreEqual (false, copy.ShowLines, "ShowLines-aftercopy");
Assert.AreEqual ("Skip Navigation Links.", copy.SkipLinkText, "SkipLinkText-aftercopy");
Assert.AreEqual (string.Empty, copy.Target, "Target-aftercopy");
Assert.AreEqual (true, copy.Visible, "Visible-aftercopy");
}
[Test]
public void TreeView_ViewStateNodes () {
PokerTreeView tv = new PokerTreeView ();
TreeNode R = new TreeNode ("root", "value-root");
TreeNode N1 = new TreeNode ("node1", "value-node1");
TreeNode N2 = new TreeNode ("node2", "value-node2");
R.ChildNodes.Add (N1);
R.ChildNodes.Add (N2);
tv.Nodes.Add (R);
PokerTreeView copy = new PokerTreeView ();
object state = tv.SaveState ();
copy.LoadState (state);
Assert.AreEqual (1, tv.Nodes.Count, "ViewStateNodes-1");
Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "ViewStateNodes-1");
Assert.AreEqual (0, tv.Nodes[0].ChildNodes[0].ChildNodes.Count, "ViewStateNodes-2");
Assert.AreEqual ("node1", tv.Nodes[0].ChildNodes[0].Text, "ViewStateNodes-3");
Assert.AreEqual ("value-node1", tv.Nodes[0].ChildNodes[0].Value, "ViewStateNodes-4");
Assert.AreEqual (false, tv.Nodes[0].ChildNodes[0].DataBound, "ViewStateNodes-5");
Assert.AreEqual ("", tv.Nodes[0].ChildNodes[0].DataPath, "ViewStateNodes-6");
}
private static string xmlDataBind = "";
private static string xmlDataBindSmall = "";
[Test]
public void TreeView_ViewStateDataBoundNodes () {
PokerTreeView b = new PokerTreeView ();
SetDataBindings (b);
b.DataSource = CreateXmlDataSource ();
b.DataBind ();
PokerTreeView copy = new PokerTreeView ();
object state = b.SaveState ();
copy.LoadState (state);
CheckTreeNodes (copy);
}
private static void CheckTreeNodes (TreeView m) {
Assert.AreEqual (1, m.Nodes.Count, "CheckTreeNodes#1");
Assert.AreEqual (10, m.Nodes[0].ChildNodes.Count, "CheckTreeNodes#2");
Assert.AreEqual (0, m.Nodes[0].ChildNodes[0].ChildNodes.Count, "CheckTreeNodes#3");
Assert.AreEqual (true, m.Nodes[0].ChildNodes[0].DataBound, "CheckTreeNodes#4");
Assert.AreEqual ("/*[position()=1]/*[position()=1]", m.Nodes[0].ChildNodes[0].DataPath, "CheckTreeNodes#5");
Assert.AreEqual ("img#root", m.Nodes[0].ImageUrl, "CheckTreeNodes_ImageUrl#1");
Assert.AreEqual ("img#1", m.Nodes[0].ChildNodes[0].ImageUrl, "CheckTreeNodes_ImageUrl#2");
Assert.AreEqual ("img#2", m.Nodes[0].ChildNodes[1].ImageUrl, "CheckTreeNodes_ImageUrl#3");
Assert.AreEqual ("img#default", m.Nodes[0].ChildNodes[2].ImageUrl, "CheckTreeNodes_ImageUrl#4");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].ImageUrl, "CheckTreeNodes_ImageUrl#5");
Assert.AreEqual ("url#root", m.Nodes[0].NavigateUrl, "CheckTreeNodes_NavigateUrl#1");
Assert.AreEqual ("url#1", m.Nodes[0].ChildNodes[0].NavigateUrl, "CheckTreeNodes_NavigateUrl#2");
Assert.AreEqual ("url#2", m.Nodes[0].ChildNodes[1].NavigateUrl, "CheckTreeNodes_NavigateUrl#3");
Assert.AreEqual ("url#default", m.Nodes[0].ChildNodes[2].NavigateUrl, "CheckTreeNodes_NavigateUrl#4");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].NavigateUrl, "CheckTreeNodes_NavigateUrl#5");
Assert.AreEqual ("target#root", m.Nodes[0].Target, "CheckTreeNodes_Target#1");
Assert.AreEqual ("target#1", m.Nodes[0].ChildNodes[0].Target, "CheckTreeNodes_Target#2");
Assert.AreEqual ("target#2", m.Nodes[0].ChildNodes[1].Target, "CheckTreeNodes_Target#3");
Assert.AreEqual ("target#default", m.Nodes[0].ChildNodes[2].Target, "CheckTreeNodes_Target#4");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].Target, "CheckTreeNodes_Target#5");
Assert.AreEqual ("text#root", m.Nodes[0].Text, "CheckTreeNodes_Text#1");
Assert.AreEqual ("text#1", m.Nodes[0].ChildNodes[0].Text, "CheckTreeNodes_Text#2");
Assert.AreEqual ("text#2", m.Nodes[0].ChildNodes[1].Text, "CheckTreeNodes_Text#3");
Assert.AreEqual ("text#", m.Nodes[0].ChildNodes[2].Text, "CheckTreeNodes_Text#4");
Assert.AreEqual ("subnode", m.Nodes[0].ChildNodes[2].ChildNodes[0].Text, "CheckTreeNodes_Text#5");
Assert.AreEqual ("tooltip#root", m.Nodes[0].ToolTip, "CheckTreeNodes_ToolTip#1");
Assert.AreEqual ("tooltip#1", m.Nodes[0].ChildNodes[0].ToolTip, "CheckTreeNodes_ToolTip#2");
Assert.AreEqual ("tooltip#2", m.Nodes[0].ChildNodes[1].ToolTip, "CheckTreeNodes_ToolTip#3");
Assert.AreEqual ("tooltip#default", m.Nodes[0].ChildNodes[2].ToolTip, "CheckTreeNodes_ToolTip#4");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].ToolTip, "CheckTreeNodes_ToolTip#5");
Assert.AreEqual ("imagetooltip#root", m.Nodes[0].ImageToolTip, "CheckTreeNodes_ImageToolTip#1");
Assert.AreEqual ("imagetooltip#1", m.Nodes[0].ChildNodes[0].ImageToolTip, "CheckTreeNodes_ImageToolTip#2");
Assert.AreEqual ("imagetooltip#2", m.Nodes[0].ChildNodes[1].ImageToolTip, "CheckTreeNodes_ImageToolTip#3");
Assert.AreEqual ("imagetooltip#default", m.Nodes[0].ChildNodes[2].ImageToolTip, "CheckTreeNodes_ImageToolTip#4");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[2].ChildNodes[0].ImageToolTip, "CheckTreeNodes_ImageToolTip#5");
Assert.AreEqual ("value#root", m.Nodes[0].Value, "CheckTreeNodes_Value#1");
Assert.AreEqual ("value#1", m.Nodes[0].ChildNodes[0].Value, "CheckTreeNodes_Value#2");
Assert.AreEqual ("value#2", m.Nodes[0].ChildNodes[1].Value, "CheckTreeNodes_Value#3");
Assert.AreEqual ("value#default", m.Nodes[0].ChildNodes[2].Value, "CheckTreeNodes_Value#4");
Assert.AreEqual ("subnode", m.Nodes[0].ChildNodes[2].ChildNodes[0].Value, "CheckTreeNodes_Value#5");
Assert.AreEqual ("text#extra1", m.Nodes[0].ChildNodes[3].Text, "CheckTreeNodes_Extra1#1");
Assert.AreEqual ("text#extra1", m.Nodes[0].ChildNodes[3].Value, "CheckTreeNodes_Extra1#2");
Assert.AreEqual ("value#extra2", m.Nodes[0].ChildNodes[4].Text, "CheckTreeNodes_Extra2#1");
Assert.AreEqual ("value#extra2", m.Nodes[0].ChildNodes[4].Value, "CheckTreeNodes_Extra2#2");
Assert.AreEqual ("text#extra3", m.Nodes[0].ChildNodes[5].Text, "CheckTreeNodes_Extra3#1");
Assert.AreEqual ("text#extra3", m.Nodes[0].ChildNodes[5].Value, "CheckTreeNodes_Extra3#2");
Assert.AreEqual ("value#extra3", m.Nodes[0].ChildNodes[6].Text, "CheckTreeNodes_Extra3#3");
Assert.AreEqual ("value#extra3", m.Nodes[0].ChildNodes[6].Value, "CheckTreeNodes_Extra3#4");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[7].Text, "CheckTreeNodes_Extra3#5");
Assert.AreEqual ("", m.Nodes[0].ChildNodes[7].Value, "CheckTreeNodes_Extra3#6");
Assert.AreEqual ("text#extra4", m.Nodes[0].ChildNodes[8].Text, "CheckTreeNodes_Extra4#1");
Assert.AreEqual ("text#default", m.Nodes[0].ChildNodes[8].Value, "CheckTreeNodes_Extra4#2");
Assert.AreEqual ("value#default", m.Nodes[0].ChildNodes[9].Text, "CheckTreeNodes_Extra5#1");
Assert.AreEqual ("value#extra5", m.Nodes[0].ChildNodes[9].Value, "CheckTreeNodes_Extra5#2");
m.Nodes [0].ChildNodes [5].Text = "TTT";
Assert.AreEqual ("TTT", m.Nodes [0].ChildNodes [5].Value, "");
m.Nodes [0].ChildNodes [6].Value = "VVV";
Assert.AreEqual ("VVV", m.Nodes [0].ChildNodes [6].Text, "");
}
void SetDataBindings (TreeView tv) {
TreeNodeBinding b = new TreeNodeBinding ();
b.DataMember = "node";
b.ImageUrlField = "img";
b.ImageUrl = "img#default";
b.NavigateUrlField = "url";
b.NavigateUrl = "url#default";
b.TargetField = "target";
b.Target = "target#default";
b.FormatString = "text#{0}";
b.TextField = "text";
b.Text = "text#default";
b.ToolTipField = "tooltip";
b.ToolTip = "tooltip#default";
b.ImageToolTipField = "imagetooltip";
b.ImageToolTip = "imagetooltip#default";
b.ValueField = "value";
b.Value = "value#default";
tv.DataBindings.Add (b);
b = new TreeNodeBinding ();
b.DataMember = "root";
b.ImageUrl = "img#root";
b.NavigateUrl = "url#root";
b.Target = "target#root";
b.Text = "text#root";
b.ToolTip = "tooltip#root";
b.ImageToolTip = "imagetooltip#root";
b.Value = "value#root";
tv.DataBindings.Add (b);
b = new TreeNodeBinding ();
b.DataMember = "extra1";
b.Text = "text#extra1";
tv.DataBindings.Add (b);
b = new TreeNodeBinding ();
b.DataMember = "extra2";
b.Value = "value#extra2";
tv.DataBindings.Add (b);
b = new TreeNodeBinding ();
b.DataMember = "extra3";
b.TextField = "text";
b.ValueField = "value";
tv.DataBindings.Add (b);
b = new TreeNodeBinding ();
b.DataMember = "extra4";
b.TextField = "text";
b.Text = "text#default";
b.ValueField = "value";
tv.DataBindings.Add (b);
b = new TreeNodeBinding ();
b.DataMember = "extra5";
b.TextField = "text";
b.Value = "value#default";
b.ValueField = "value";
tv.DataBindings.Add (b);
}
XmlDataSource CreateXmlDataSource () {
XmlDataSource xmlDs = new XmlDataSource ();
xmlDs.EnableCaching = false;
xmlDs.ID = "XmlDataSource";
xmlDs.Data = "" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"";
return xmlDs;
}
[Test]
[ExpectedException (typeof (ArgumentOutOfRangeException))]
public void TreeView_Exp_ImageSet () {
// The specified image set is not one of the TreeViewImageSet values.
PokerTreeView tv = new PokerTreeView ();
tv.ImageSet = (TreeViewImageSet) 16;
}
[Test]
[ExpectedException (typeof (ArgumentOutOfRangeException))]
public void TreeView_Exp_ShowCheckBoxes () {
// The bitwise combination value is outside the range of the TreeNodeTypes enumeration.
PokerTreeView tv = new PokerTreeView ();
tv.ShowCheckBoxes = (TreeNodeTypes) 8;
}
[Test]
[ExpectedException (typeof (ArgumentOutOfRangeException))]
public void TreeView_Exp_Nodes () {
// Trying to access nonexisting node.
PokerTreeView tv = new PokerTreeView ();
int depth = tv.Nodes[1].Depth;
}
[Test]
public void TreeView_Method_DataBindDataSource () {
PokerTreeView tv = new PokerTreeView ();
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
_TreeNodeDataBoundCount = 0;
tv.TreeNodeDataBound += new TreeNodeEventHandler (TreeView_TreeNodeDataBound);
Assert.AreEqual (0, tv.Nodes.Count, "BeforeDataBind1");
tv.DataBind ();
Assert.AreEqual (1, tv.Nodes.Count, "AfterDataBind1-a");
Assert.AreEqual ("Book", tv.Nodes[0].Text, "AfterDataBind1-b");
Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "AfterDataBind1-c");
Assert.AreEqual (2, tv.Nodes [0].ChildNodes [0].ChildNodes.Count, "AfterDataBind1-d");
Assert.AreEqual (6, _TreeNodeDataBoundCount, "AfterDataBind1-TreeNodeDataBoundCount");
}
[Test]
public void TreeView_MaxDataBindDepth () {
TreeView tv = new TreeView ();
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.MaxDataBindDepth = 1;
_TreeNodeDataBoundCount = 0;
tv.TreeNodeDataBound += new TreeNodeEventHandler (TreeView_TreeNodeDataBound);
Assert.AreEqual (0, tv.Nodes.Count, "BeforeDataBind1");
tv.DataBind ();
Assert.AreEqual (1, tv.Nodes.Count, "AfterDataBind1-a");
Assert.AreEqual ("Book", tv.Nodes [0].Text, "AfterDataBind1-b");
Assert.AreEqual (2, tv.Nodes [0].ChildNodes.Count, "AfterDataBind1-c");
Assert.AreEqual (0, tv.Nodes [0].ChildNodes [0].ChildNodes.Count, "AfterDataBind1-d");
Assert.AreEqual (3, _TreeNodeDataBoundCount, "AfterDataBind1-TreeNodeDataBoundCount");
}
int _TreeNodeDataBoundCount;
private void TreeView_TreeNodeDataBound (object sender, TreeNodeEventArgs e) {
_TreeNodeDataBoundCount++;
}
[Test]
public void TreeView_Method_DataBindStatic () {
PokerTreeView tv = new PokerTreeView ();
TreeNode R = new TreeNode ("root", "value-root");
TreeNode N1 = new TreeNode ("node1", "value-node1");
TreeNode N2 = new TreeNode ("node2", "value-node2");
R.ChildNodes.Add (N1);
R.ChildNodes.Add (N2);
tv.Nodes.Add (R);
tv.DataBind ();
Assert.AreEqual (1, tv.Nodes.Count, "DataBindStatic-1");
Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "DataBindStatic-1");
Assert.AreEqual (0, tv.Nodes[0].ChildNodes[0].ChildNodes.Count, "DataBindStatic-2");
Assert.AreEqual ("node1", tv.Nodes[0].ChildNodes[0].Text, "DataBindStatic-3");
Assert.AreEqual ("value-node1", tv.Nodes[0].ChildNodes[0].Value, "DataBindStatic-4");
Assert.AreEqual (false, tv.Nodes[0].ChildNodes[0].DataBound, "DataBindStatic-5");
Assert.AreEqual ("", tv.Nodes[0].ChildNodes[0].DataPath, "DataBindStatic-6");
}
[Test]
public void TreeView_Method_DataBind () {
PokerTreeView tv = new PokerTreeView ();
SetDataBindings (tv);
tv.DataSource = CreateXmlDataSource ();
tv.DataBind ();
CheckTreeNodes (tv);
}
[Test]
public void TreeView_Method_FindNode () {
PokerTreeView tv = new PokerTreeView ();
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
TreeNode tn = new TreeNode ();
Assert.AreEqual (0, tn.ChildNodes.Count, "BeforeFindNode");
tn = tv.FindNode ("Book" + tv.PathSeparator + "Chapter");
Assert.AreEqual ("Chapter", tn.Text, "AfterFindNode1");
Assert.AreEqual (2, tn.ChildNodes.Count, "AfterFindNode2");
Assert.AreEqual ("Section", tn.ChildNodes[0].Text, "AfterFindNode3");
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Defaults () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderDefaults));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderDefaults");
}
public static void pageLoadRenderDefaults (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test (Description="Bug #580692")]
[Category ("NunitWeb")]
public void TreeView_Render_LevelStyle_CssClass ()
{
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderLevelStyleCssClass));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "Render_LevelStyle_CssClass");
}
public static void pageLoadRenderLevelStyleCssClass (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
TreeNodeStyle tns = new TreeNodeStyle ();
tns.CssClass = "TestCssClass1";
tv.LevelStyles.Add (tns);
tns = new TreeNodeStyle ();
tns.CssClass = "TestCssClass2";
tv.LevelStyles.Add (tns);
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_RenderTags () {
new WebTest (PageInvoker.CreateOnLoad (pageLoadRenderTags)).Run ();
}
public static void pageLoadRenderTags (Page page) {
TreeView tv = new TreeView ();
tv.ID = "treeview1";
page.Form.Controls.Add (tv);
StringWriter sw = new StringWriter ();
HtmlTextWriter tw = new HtmlTextWriter (sw);
tv.RenderBeginTag (tw);
tv.RenderEndTag (tw);
string str = sw.ToString ();
#if NET_4_0
string strTarget = "
\r\n\r\n
";
#else
string strTarget = "
\r\n\r\n
";
#endif
HtmlDiff.AssertAreEqual (strTarget, str, "RenderTags");
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_ExpandAll () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadExpandAll));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "ExpandAll");
}
public static void pageLoadExpandAll (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.ExpandAll ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_NodeExpand () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeExpand));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeExpand");
}
public static void pageLoadNodeExpand (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.CollapseAll ();
tv.Nodes[0].Expand ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_NodeExpandAll () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeExpandAll));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeExpandAll");
}
public static void pageLoadNodeExpandAll (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.CollapseAll ();
tv.Nodes[0].ChildNodes[0].ExpandAll ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_CollapseAll () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadCollapseAll));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "CollapseAll");
}
public static void pageLoadCollapseAll (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.CollapseAll ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_NodeCollapse () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeCollapse));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeCollapse");
}
public static void pageLoadNodeCollapse (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].Collapse ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_NodeCollapseAll () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeCollapseAll));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeCollapseAll");
}
public static void pageLoadNodeCollapseAll (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].ChildNodes[0].CollapseAll ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_NodeToggleExpandState1 () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeToggleExpandState1));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState1");
}
public static void pageLoadNodeToggleExpandState1 (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.ExpandAll ();
tv.Nodes[0].ChildNodes[1].ToggleExpandState ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Method_NodeToggleExpandState2 () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeToggleExpandState2));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState2");
}
public static void pageLoadNodeToggleExpandState2 (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.CollapseAll ();
tv.Nodes [0].ChildNodes [0].ToggleExpandState ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_PopulateNode () {
PageDelegates delegates = new PageDelegates ();
delegates.Load = new PageDelegate (TreeView_PopulateNode_Load);
delegates.PreRender = new PageDelegate (TreeView_PopulateNode_PreRender);
delegates.PreRenderComplete = new PageDelegate (TreeView_PopulateNode_PreRenderComplete);
PageInvoker invoker = new PageInvoker (delegates);
WebTest test = new WebTest (invoker);
test.Run ();
}
public static void TreeView_PopulateNode_Load (Page page) {
TreeView tv = new TreeView ();
tv.ID = "TreeView";
tv.TreeNodePopulate += new TreeNodeEventHandler (tv_TreeNodePopulate);
tv.ExpandDepth = 3;
TreeNode rootNode = new TreeNode ("root");
rootNode.PopulateOnDemand = true;
tv.Nodes.Add (rootNode);
page.Form.Controls.Add (tv);
// root node still not populated
Assert.AreEqual (null, rootNode.Expanded, "TreeView_PopulateNode_Load#1");
Assert.AreEqual (0, rootNode.ChildNodes.Count, "TreeView_PopulateNode_Load#2");
// root node was populated after set Expanded=true
rootNode.Expanded = true;
Assert.AreEqual (1, rootNode.ChildNodes.Count, "TreeView_PopulateNode_Load#3");
// node1 was populated because was added with Expanded=true whan root was populated
Assert.AreEqual (true, rootNode.ChildNodes [0].Expanded, "TreeView_PopulateNode_Load#4");
Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_Load#5");
// node2 not populated because Expanded not set
Assert.AreEqual (null, rootNode.ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_Load#6");
Assert.AreEqual (0, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_Load#7");
}
public static void TreeView_PopulateNode_PreRender (Page page) {
TreeView tv = (TreeView) page.Form.FindControl ("TreeView");
TreeNode rootNode = tv.Nodes [0];
// state of nodes remain the same
// root
Assert.AreEqual (true, rootNode.Expanded, "TreeView_PopulateNode_PreRender#1");
Assert.AreEqual (1, rootNode.ChildNodes.Count, "TreeView_PopulateNode_PreRender#3");
// node1
Assert.AreEqual (true, rootNode.ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRender#4");
Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRender#5");
// node2
Assert.AreEqual (null, rootNode.ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRender#6");
Assert.AreEqual (0, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRender#7");
}
public static void TreeView_PopulateNode_PreRenderComplete (Page page) {
TreeView tv = (TreeView) page.Form.FindControl ("TreeView");
TreeNode rootNode = tv.Nodes [0];
// All nodes were expanded and populated up to ExpandDepth
// root
Assert.AreEqual (true, rootNode.Expanded, "TreeView_PopulateNode_PreRenderComplete#1");
Assert.AreEqual (1, rootNode.ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#3");
// node1
Assert.AreEqual (true, rootNode.ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRenderComplete#4");
Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#5");
// node2
Assert.AreEqual (true, rootNode.ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRenderComplete#6");
Assert.AreEqual (1, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#7");
// node3
Assert.AreEqual (null, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes [0].Expanded, "TreeView_PopulateNode_PreRenderComplete#6");
Assert.AreEqual (0, rootNode.ChildNodes [0].ChildNodes [0].ChildNodes [0].ChildNodes.Count, "TreeView_PopulateNode_PreRenderComplete#7");
}
static void tv_TreeNodePopulate (object sender, TreeNodeEventArgs e) {
TreeNode node = new TreeNode ("node" + (e.Node.Depth + 1));
node.PopulateOnDemand = true;
if (e.Node.Depth < 1)
node.Expanded = true;
e.Node.ChildNodes.Add (node);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_ExpandDepth () {
PageDelegates delegates = new PageDelegates ();
delegates.Init = pageInitExpandDepth;
delegates.Load = pageLoadExpandDepth;
PageInvoker invoker = new PageInvoker (delegates);
WebTest t = new WebTest (invoker);
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "NodeToggleExpandState2");
}
public static void pageInitExpandDepth (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.ExpandDepth = 1;
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
public static void pageLoadExpandDepth (Page page) {
TreeView tv = (TreeView)page.Form.FindControl("treeview1");
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
}
[Test]
public void TreeView_Method_CreateControlCollection () {
PokerTreeView tv = new PokerTreeView ();
ControlCollection cc = tv.CreateControlCollectionBase ();
Assert.AreEqual (0, cc.Count, "AfterCreateControlCollection");
}
[Test]
public void TreeView_Method_CreateNode () {
PokerTreeView tv = new PokerTreeView ();
TreeNode tn = tv.CreateNodeBase ();
Assert.AreEqual ("New Tree Node", tn.Text, "AfterCreateNode");
}
[Test]
public void TreeView_Method_PerformDataBinding () {
PokerTreeView tv = new PokerTreeView ();
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
Assert.AreEqual (0, tv.Nodes.Count, "BeforePerformDataBinding");
tv.PerformDataBindingBase ();
Assert.AreEqual (1, tv.Nodes.Count, "AfterPerformDataBinding-a");
Assert.AreEqual ("Book", tv.Nodes[0].Text, "AfterPerformDataBinding-b");
Assert.AreEqual (2, tv.Nodes[0].ChildNodes.Count, "AfterPerformDataBinding-c");
}
// Render Bindings
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Bindings () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadBindings));
#region HTML
#if NET_4_0
string strTarget = "
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderBindings");
}
public static void pageLoadBindings (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.ImageSet = TreeViewImageSet.Arrows;
tv.AutoGenerateDataBindings = false;
tv.MaxDataBindDepth = 1;
tv.DataBindings.Add (new TreeNodeBinding ());
tv.DataBindings[0].DataMember = "Book";
tv.DataBindings[0].TextField = "Title";
tv.DataBindings.Add (new TreeNodeBinding ());
tv.DataBindings[1].DataMember = "Chapter";
tv.DataBindings[1].TextField = "Heading";
tv.DataBindings.Add (new TreeNodeBinding ());
tv.DataBindings[2].DataMember = "Section";
tv.DataBindings[2].TextField = "Heading";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
// Render Navigate
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Navigate () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNavigate));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | myNode0 | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | myNode00 | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | myNode1 | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderNavigate");
}
public static void pageLoadNavigate (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.Target = "myTarget";
tv.Nodes.Add (new TreeNode ());
tv.Nodes[0].NavigateUrl = "myUrl0";
tv.Nodes[0].Text = "myNode0";
tv.Nodes[0].ChildNodes.Add (new TreeNode ());
tv.Nodes[0].ChildNodes[0].NavigateUrl = "myUrl00";
tv.Nodes[0].ChildNodes[0].Text = "myNode00";
tv.Nodes.Add (new TreeNode ());
tv.Nodes[1].NavigateUrl = "myUrl1";
tv.Nodes[1].Text = "myNode1";
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
// Render Checkboxes
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Checkboxes () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadCheckboxes));
#region HTML
#if NET_4_0
string strTarget = "
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderCheckboxes");
}
public static void pageLoadCheckboxes (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.ShowCheckBoxes = TreeNodeTypes.All;
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
// Render Values
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Values () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadValues));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderValues");
}
public static void pageLoadValues (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.ImageSet = TreeViewImageSet.Arrows;
tv.SkipLinkText = "mySkipLinkText";
tv.NodeIndent = 30;
tv.ExpandDepth = 3;
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
// Render Images
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_ImagesOn () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadImagesOn));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderImagesOn");
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_ImagesOff () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadImagesOff));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\tBook | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderImagesOff");
}
public static void pageLoadImagesOn (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.CollapseImageToolTip = "Test111";
tv.ExpandImageToolTip = "Test222";
tv.CollapseImageUrl = "Test333";
tv.ExpandImageUrl = "Test444";
tv.NoExpandImageUrl = "Test555";
tv.LineImagesFolder = "Test666";
tv.ShowLines = true;
tv.ShowExpandCollapse = true;
tv.ImageSet = TreeViewImageSet.Custom;
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
public static void pageLoadImagesOff (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
tv.ShowLines = false;
tv.ShowExpandCollapse = false;
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
//Render Wrap
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_WrapOn () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadWrapOn));
#if NET_4_0
string strTarget = "
";
#else
string strTarget =
@"
";
#endif
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderWrapOn");
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_WrapOff () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadWrapOff));
#if NET_4_0
string strTarget = "
";
#else
string strTarget =
@"
";
#endif
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderWrapOff");
}
public static void pageLoadWrapOn (Page page) {
TreeView tv = new TreeView ();
tv.ID = "treeview1";
tv.NodeWrap = true;
tv.Nodes.Add (new TreeNode ("TreeNode1"));
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
public static void pageLoadWrapOff (Page page) {
TreeView tv = new TreeView ();
tv.ID = "treeview1";
tv.NodeWrap = false;
tv.Nodes.Add (new TreeNode ("TreeNode1"));
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
// Render Client
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Client () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadClient));
#if NET_4_0
string strTarget = "
\r\n\r\n
";
#else
string strTarget = "
\r\n\r\n
";
#endif
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderClient");
}
public static void pageLoadClient (Page page) {
TreeView tv = new TreeView ();
tv.ID = "treeview1";
tv.EnableClientScript = false;
tv.PopulateNodesFromClient = false;
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
//Render Invisible
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_Invisible () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadInvisible));
string strTarget = "";
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
Assert.AreEqual (strTarget, str, "RenderInvisible");
}
public static void pageLoadInvisible (Page page) {
TreeView tv = new TreeView ();
tv.ID = "treeview1";
tv.Visible = false;
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBindSmall;
tv.DataSource = xmlds;
tv.DataBind ();
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
//Render Node Strings
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_NodeStrings () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStrings));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | string6 | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStrings");
}
public static void pageLoadNodeStrings (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].ToolTip = "string1";
tv.Nodes[0].ImageToolTip = "string2";
tv.Nodes[0].ChildNodes[0].ImageUrl = "string3";
tv.Nodes[0].ChildNodes[0].NavigateUrl = "string4";
tv.Nodes[0].ChildNodes[0].ChildNodes[0].Target = "string5";
tv.Nodes[0].ChildNodes[0].ChildNodes[1].Text = "string6";
tv.Nodes[0].ChildNodes[1].Value = "string7";
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
//Render Node States
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_NodeStates1 () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStates1));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStates1");
}
public static void pageLoadNodeStates1 (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].Checked = true;
tv.Nodes[0].ChildNodes[0].Selected = false;
tv.Nodes[0].ChildNodes[0].Expanded = true;
tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = false;
tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = true;
tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.SelectExpand;
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_Render_NodeStates2 () {
WebTest t = new WebTest (PageInvoker.CreateOnLoad (pageLoadNodeStates2));
#region HTML
#if NET_4_0
string strTarget = "
\r\n\t
\r\n\t\t\r\n\t\t\t | Book | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t |  | Chapter | \r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\t\t | |  | Section | \r\n\t\t
\r\n\t
\r\n
";
#else
string strTarget = @"
";
#endif
#endregion
string str = HtmlDiff.GetControlFromPageHtml (t.Run ());
HtmlDiff.AssertAreEqual (strTarget, str, "RenderNodeStates2");
}
public static void pageLoadNodeStates2 (Page page) {
TreeView tv = new TreeView ();
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].Checked = false;
tv.Nodes[0].ChildNodes[0].Selected = true;
tv.Nodes[0].ChildNodes[0].Expanded = false;
tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = true;
tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = false;
tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.Expand;
LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
page.Form.Controls.Add (lcb);
page.Form.Controls.Add (tv);
page.Form.Controls.Add (lce);
}
[Test]
[Category ("NunitWeb")]
public void TreeView_PostBackFireEvents_1 ()
{
WebTest t = new WebTest (PageInvoker.CreateOnLoad (PostBackFireEvents_1));
String html = t.Run ();
if (t.UserData == null)
Assert.Fail ("Event not fired fail");
Assert.AreEqual ("TreeNodeDataBound", t.UserData.ToString (), "PostBackFireEvents_1");
}
#region PostBackFireEvents_1
public static void PostBackFireEvents_1 (Page p)
{
TreeView tv = new TreeView ();
tv.TreeNodeDataBound += new TreeNodeEventHandler (tv_TreeNodeDataBound);
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].Checked = true;
tv.Nodes[0].ChildNodes[0].Selected = false;
tv.Nodes[0].ChildNodes[0].Expanded = true;
tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = false;
tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = true;
tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.SelectExpand;
p.Form.Controls.Add (tv);
}
public static void tv_TreeNodeDataBound (object sender, TreeNodeEventArgs e)
{
WebTest.CurrentTest.UserData = "TreeNodeDataBound";
}
#endregion
[Test]
[Category ("NunitWeb")]
public void TreeView_PostBackFireEvents_2 ()
{
WebTest t = new WebTest ("NoEventValidation.aspx");
t.Invoker = PageInvoker.CreateOnLoad (PostBackFireEvents_2);
string html = t.Run ();
FormRequest fr = new FormRequest (t.Response, "form1");
#if DOT_NET
fr.Controls.Add ("__EVENTTARGET");
fr.Controls.Add ("__EVENTARGUMENT");
fr.Controls.Add ("treeview1_ExpandState");
fr.Controls.Add ("treeview1_SelectedNode");
fr.Controls.Add ("treeview1_PopulateLog");
fr.Controls.Add ("treeview1n0CheckBox");
fr.Controls["__EVENTTARGET"].Value = "treeview1";
fr.Controls["__EVENTARGUMENT"].Value = "sroot";
fr.Controls["treeview1_ExpandState"].Value = "n";
fr.Controls["treeview1_SelectedNode"].Value = "treeview1t0";
fr.Controls["treeview1_PopulateLog"].Value = "";
fr.Controls["treeview1n0CheckBox"].Value = "on";
#else
fr.Controls.Add ("__EVENTTARGET");
fr.Controls.Add ("__EVENTARGUMENT");
//fr.Controls.Add ("treeview1_ExpandState");
//fr.Controls.Add ("treeview1_SelectedNode");
//fr.Controls.Add ("treeview1_PopulateLog");
fr.Controls.Add ("treeview1_cs_0");
fr.Controls ["__EVENTTARGET"].Value = "treeview1";
fr.Controls ["__EVENTARGUMENT"].Value = "sel|0";
//fr.Controls ["treeview1_ExpandState"].Value = "n";
//fr.Controls ["treeview1_SelectedNode"].Value = "treeview1t0";
//fr.Controls ["treeview1_PopulateLog"].Value = "";
fr.Controls ["treeview1_cs_0"].Value = "on";
#endif
t.Request = fr;
html = t.Run ();
Assert.AreEqual ("TreeNodeCheckChanged", t.UserData.ToString (), "PostBackFireEvents");
}
#region PostBackFireEvents_2
public static void PostBackFireEvents_2 (Page p)
{
TreeView tv = new TreeView ();
tv.TreeNodeCheckChanged+=new TreeNodeEventHandler(tv_TreeNodeCheckChanged);
tv.EnableClientScript = false;
tv.ID = "treeview1";
TreeNode root = new TreeNode ("root", "root");
root.ShowCheckBox = true;
root.Checked = false;
tv.Nodes.Add (root);
p.Form.Controls.Add (tv);
}
static void tv_TreeNodeCheckChanged (object sender, TreeNodeEventArgs e)
{
WebTest.CurrentTest.UserData = "TreeNodeCheckChanged";
}
#endregion
[Test]
[Category ("NunitWeb")]
public void TreeView_PostBackFireEvents_3 ()
{
WebTest t = new WebTest (PageInvoker.CreateOnLoad (PostBackFireEvents_3));
String html = t.Run ();
if (t.UserData == null)
Assert.Fail ("Event not fired fail");
Assert.AreEqual ("TreeNodeExpanded", t.UserData.ToString (), "PostBackFireEvents#1");
FormRequest fr = new FormRequest (t.Response, "form1");
fr.Controls.Add ("__EVENTTARGET");
fr.Controls.Add ("__EVENTARGUMENT");
fr.Controls["__EVENTTARGET"].Value = "treeview1";
#if DOT_NET
fr.Controls["__EVENTARGUMENT"].Value = "tBook";
#else
fr.Controls ["__EVENTARGUMENT"].Value = "ec|0";
#endif
t.Request = fr;
html = t.Run ();
Assert.AreEqual ("TreeNodeCollapsed", t.UserData.ToString (), "PostBackFireEvents#2");
}
#region PostBackFireEvents_3
public static void PostBackFireEvents_3 (Page p)
{
TreeView tv = new TreeView ();
tv.TreeNodeCollapsed += new TreeNodeEventHandler (tv_TreeNodeCollapsed);
tv.TreeNodeExpanded +=new TreeNodeEventHandler(tv_TreeNodeExpanded);
tv.EnableClientScript = false;
tv.ID = "treeview1";
XmlDataSource xmlds = new XmlDataSource ();
xmlds.EnableCaching = false;
xmlds.Data = xmlDataBind;
tv.DataSource = xmlds;
tv.DataBind ();
tv.Nodes[0].Checked = true;
tv.Nodes[0].ChildNodes[0].Selected = false;
tv.Nodes[0].ChildNodes[0].Expanded = true;
tv.Nodes[0].ChildNodes[0].ChildNodes[0].PopulateOnDemand = false;
tv.Nodes[0].ChildNodes[0].ChildNodes[1].ShowCheckBox = true;
tv.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.SelectExpand;
p.Form.Controls.Add (tv);
}
public static void tv_TreeNodeCollapsed (object sender, TreeNodeEventArgs e)
{
WebTest.CurrentTest.UserData = "TreeNodeCollapsed";
}
static void tv_TreeNodeExpanded (object sender, TreeNodeEventArgs e)
{
WebTest.CurrentTest.UserData = "TreeNodeExpanded";
}
#endregion
[Test]
[Category ("NunitWeb")]
public void TreeView_PostBackFireEvents_4 ()
{
WebTest t = new WebTest (PageInvoker.CreateOnLoad (PostBackFireEvents_4));
String html = t.Run ();
Assert.AreEqual ("TreeNodePopulate", t.UserData.ToString (), "PostBackFireEvents");
}
#region PostBackFireEvents_4
public static void PostBackFireEvents_4 (Page p)
{
TreeView tv = new TreeView ();
tv.TreeNodePopulate += new TreeNodeEventHandler (tv_TreeNodePopulate_1);
tv.EnableClientScript = false;
tv.ID = "treeview1";
TreeNode root = new TreeNode ("Root", "Root");
root.PopulateOnDemand = true;
root.Expanded = true;
tv.Nodes.Add (root);
p.Form.Controls.Add (tv);
}
public static void tv_TreeNodePopulate_1 (object sender, TreeNodeEventArgs e)
{
WebTest.CurrentTest.UserData = "TreeNodePopulate";
}
#endregion
[Test]
[Category ("NunitWeb")]
public void TreeView_PostBackFireEvents_5 ()
{
WebTest t = new WebTest ("NoEventValidation.aspx");
t.Invoker = PageInvoker.CreateOnLoad (PostBackFireEvents_5);
t.Run ();
FormRequest fr = new FormRequest (t.Response, "form1");
#if DOT_NET
fr.Controls.Add ("__EVENTTARGET");
fr.Controls.Add ("__EVENTARGUMENT");
fr.Controls.Add ("TreeView2_ExpandState");
fr.Controls.Add ("TreeView2_SelectedNode");
fr.Controls["__EVENTTARGET"].Value = "treeview1";
fr.Controls["__EVENTARGUMENT"].Value = "snode";
fr.Controls["TreeView2_ExpandState"].Value = "nn";
fr.Controls["TreeView2_SelectedNode"].Value = "treeview1t1";
#else
fr.Controls.Add ("__EVENTTARGET");
fr.Controls.Add ("__EVENTARGUMENT");
//fr.Controls.Add ("TreeView2_ExpandState");
//fr.Controls.Add ("TreeView2_SelectedNode");
fr.Controls ["__EVENTTARGET"].Value = "treeview1";
fr.Controls ["__EVENTARGUMENT"].Value = "sel|1";
//fr.Controls ["TreeView2_ExpandState"].Value = "nn";
//fr.Controls ["TreeView2_SelectedNode"].Value = "treeview1t1";
#endif
t.Request = fr;
t.Run ();
Assert.AreEqual ("SelectedNodeChanged", t.UserData.ToString (), "PostBackFireEvents");
}
#region PostBackFireEvents_5
public static void PostBackFireEvents_5 (Page p)
{
TreeView tv = new TreeView ();
tv.SelectedNodeChanged += new EventHandler (tv_SelectedNodeChanged);
tv.EnableClientScript = false;
tv.ID = "treeview1";
TreeNode root = new TreeNode ("root", "root");
root.Selected = true;
tv.Nodes.Add (root);
TreeNode node = new TreeNode ("node", "node");
tv.Nodes.Add (node);
node.Selected = false;
p.Form.Controls.Add (tv);
}
static void tv_SelectedNodeChanged (object sender, EventArgs e)
{
WebTest.CurrentTest.UserData = "SelectedNodeChanged";
}
#endregion
[Test]
public void TreeView_NullDS ()
{
TreeView tv = new TreeView ();
tv.DataSource = null;
tv.DataBind ();
Assert.AreEqual (0, tv.Nodes.Count, "NullDS");
}
// Events Stuff
private bool eventDone = false;
private string treeNodeName = string.Empty;
private void TreeViewEventHandler1 (object sender, EventArgs e) {
eventDone = true;
}
private void TreeViewEventHandler2 (object sender, TreeNodeEventArgs e) {
eventDone = true;
treeNodeName = e.Node.Text;
}
private void ResetEvents () {
eventDone = false;
treeNodeName = string.Empty;
}
[Test]
public void TreeView_Event_Init () {
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
Page p = new Page ();
p.Controls.Add (tv);
tv.Init += new EventHandler (TreeViewEventHandler1);
Assert.AreEqual (false, eventDone, "BeforeInit");
tv.OnInitBase (new EventArgs ());
Assert.AreEqual (true, eventDone, "AfterInit");
}
[Test]
public void TreeView_Event_SelectedNodeChanged () {
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
tv.SelectedNodeChanged += new EventHandler (TreeViewEventHandler1);
Assert.AreEqual (false, eventDone, "BeforeSelectedNodeChanged");
tv.OnSelectedNodeChangedBase (new EventArgs ());
Assert.AreEqual (true, eventDone, "AfterSelectedNodeChanged");
}
[Test]
public void TreeView_Event_TreeNodeCheckChanged () {
string methodName = "TreeNodeCheckChanged";
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
tv.TreeNodeCheckChanged += new TreeNodeEventHandler (TreeViewEventHandler2);
Assert.AreEqual (false, eventDone, "Before1 " + methodName);
Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
tv.OnTreeNodeCheckChangedBase (new TreeNodeEventArgs (new TreeNode (methodName)));
Assert.AreEqual (true, eventDone, "After1 " + methodName);
Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
}
[Test]
public void TreeView_Event_TreeNodeCollapsed () {
string methodName = "TreeNodeCollapsed";
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
tv.TreeNodeCollapsed += new TreeNodeEventHandler (TreeViewEventHandler2);
Assert.AreEqual (false, eventDone, "Before1 " + methodName);
Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
tv.OnTreeNodeCollapsedBase (new TreeNodeEventArgs (new TreeNode (methodName)));
Assert.AreEqual (true, eventDone, "After1 " + methodName);
Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
}
[Test]
public void TreeView_Event_TreeNodeDataBound () {
string methodName = "TreeNodeDataBound";
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
tv.TreeNodeDataBound += new TreeNodeEventHandler (TreeViewEventHandler2);
Assert.AreEqual (false, eventDone, "Before1 " + methodName);
Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
tv.OnTreeNodeDataBoundBase (new TreeNodeEventArgs (new TreeNode (methodName)));
Assert.AreEqual (true, eventDone, "After1 " + methodName);
Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
}
[Test]
public void TreeView_Event_TreeNodeExpanded () {
string methodName = "TreeNodeExpanded";
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
tv.TreeNodeExpanded += new TreeNodeEventHandler (TreeViewEventHandler2);
Assert.AreEqual (false, eventDone, "Before1 " + methodName);
Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
tv.OnTreeNodeExpandedBase (new TreeNodeEventArgs (new TreeNode (methodName)));
Assert.AreEqual (true, eventDone, "After1 " + methodName);
Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
}
[Test]
public void TreeView_Event_TreeNodePopulate () {
string methodName = "TreeNodePopulate";
PokerTreeView tv = new PokerTreeView ();
ResetEvents ();
tv.TreeNodePopulate += new TreeNodeEventHandler (TreeViewEventHandler2);
Assert.AreEqual (false, eventDone, "Before1 " + methodName);
Assert.AreEqual (string.Empty, treeNodeName, "Before2 " + methodName);
tv.OnTreeNodePopulateBase (new TreeNodeEventArgs (new TreeNode (methodName)));
Assert.AreEqual (true, eventDone, "After1 " + methodName);
Assert.AreEqual (methodName, treeNodeName, "After2 " + methodName);
}
[TestFixtureTearDown]
public void TearDown () {
WebTest.Unload ();
}
}
}
#endif