#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

131 lines
4.0 KiB

// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Xml;
using ICSharpCode.XmlEditor;
using NUnit.Framework;
using XmlEditor.Tests.Utils;
namespace XmlEditor.Tests.Tree
{
/// <summary>
/// Tests the XmlTreeViewContainerControl.OwnerState property.
/// </summary>
[TestFixture]
public class OwnerStatusTestFixture
{
XmlTreeViewContainerControl treeViewContainer;
XmlTreeViewControl treeView;
XmlDocument doc;
XmlElementTreeNode htmlTreeNode;
XmlElementTreeNode bodyTreeNode;
XmlElementTreeNode paraTreeNode;
XmlTextTreeNode textTreeNode;
XmlCommentTreeNode commentTreeNode;
[SetUp]
public void Init()
{
treeViewContainer = new XmlTreeViewContainerControl();
XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema();
XmlSchemaCompletionData xhtmlSchema = new XmlSchemaCompletionData(reader);
XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection();
XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, xhtmlSchema, String.Empty);
treeViewContainer.LoadXml("<!-- comment --><html><body class='a'><p>Text</p></body></html>", provider);
doc = treeViewContainer.Document;
treeView = treeViewContainer.TreeView;
commentTreeNode = (XmlCommentTreeNode)treeView.Nodes[0];
htmlTreeNode = (XmlElementTreeNode)treeView.Nodes[1];
htmlTreeNode.Expanding();
bodyTreeNode = (XmlElementTreeNode)htmlTreeNode.Nodes[0];
bodyTreeNode.Expanding();
paraTreeNode = (XmlElementTreeNode)bodyTreeNode.Nodes[0];
paraTreeNode.Expanding();
textTreeNode = (XmlTextTreeNode)paraTreeNode.Nodes[0];
}
[TearDown]
public void TearDown()
{
if (treeViewContainer != null) {
treeViewContainer.Dispose();
}
}
[Test]
public void NothingSelected()
{
treeView.SelectedNode = null;
Assert.AreEqual(XmlTreeViewContainerControl.XmlTreeViewContainerControlState.Nothing,
treeViewContainer.InternalState,
"OwnerState should be Nothing.");
}
[Test]
public void RootElementSelected()
{
treeView.SelectedNode = htmlTreeNode;
Assert.AreEqual(XmlTreeViewContainerControl.XmlTreeViewContainerControlState.RootElementSelected | XmlTreeViewContainerControl.XmlTreeViewContainerControlState.ElementSelected,
treeViewContainer.InternalState,
"OwnerState should be RootElementSelected and ElementSelected.");
}
[Test]
public void BodyElementSelected()
{
treeView.SelectedNode = bodyTreeNode;
Assert.AreEqual(XmlTreeViewContainerControl.XmlTreeViewContainerControlState.ElementSelected,
treeViewContainer.InternalState,
"OwnerState should be ElementSelected.");
}
[Test]
public void ClassAttributeSelected()
{
treeView.SelectedNode = bodyTreeNode;
treeViewContainer.ShowAttributes(treeView.SelectedElement.Attributes);
Assert.IsNotNull(treeViewContainer.AttributesGrid.SelectedGridItem,
"Sanity check - should have a grid item selected.");
Assert.AreEqual(XmlTreeViewContainerControl.XmlTreeViewContainerControlState.ElementSelected | XmlTreeViewContainerControl.XmlTreeViewContainerControlState.AttributeSelected,
treeViewContainer.InternalState,
"OwnerState should be ElementSelected and AttributeSelected.");
}
[Test]
public void TextNodeSelected()
{
treeView.SelectedNode = textTreeNode;
Assert.AreEqual(XmlTreeViewContainerControl.XmlTreeViewContainerControlState.TextNodeSelected,
treeViewContainer.InternalState,
"OwnerState should be TextNodeSelected.");
}
[Test]
public void CommentNodeSelected()
{
treeView.SelectedNode = commentTreeNode;
Assert.AreEqual(XmlTreeViewContainerControl.XmlTreeViewContainerControlState.CommentSelected,
treeViewContainer.InternalState,
"OwnerState should be CommentSelected.");
}
}
}