Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1929 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
27 changed files with 1209 additions and 18 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,60 @@
@@ -0,0 +1,60 @@
|
||||
<Components version="1.0"> |
||||
<System.Windows.Forms.Form> |
||||
<Name value="AddElementDialog" /> |
||||
<MinimizeBox value="False" /> |
||||
<StartPosition value="CenterParent" /> |
||||
<MinimumSize value="191, 155" /> |
||||
<ShowInTaskbar value="False" /> |
||||
<Text value="${res:ICSharpCode.XmlEditor.AddElementDialog.Title}" /> |
||||
<MaximizeBox value="False" /> |
||||
<ClientSize value="{Width=289, Height=244}" /> |
||||
<ShowIcon value="False" /> |
||||
<Controls> |
||||
<System.Windows.Forms.Label> |
||||
<Name value="customElementLabel" /> |
||||
<Location value="5, 179" /> |
||||
<Text value="${res:ICSharpCode.XmlEditor.AddElementDialog.CustomElementLabel}" /> |
||||
<Anchor value="Bottom, Left" /> |
||||
<Size value="82, 23" /> |
||||
<TabIndex value="1" /> |
||||
</System.Windows.Forms.Label> |
||||
<System.Windows.Forms.TextBox> |
||||
<Name value="elementTextBox" /> |
||||
<TabIndex value="2" /> |
||||
<Size value="183, 21" /> |
||||
<Location value="100, 179" /> |
||||
<Anchor value="Bottom, Left, Right" /> |
||||
</System.Windows.Forms.TextBox> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="okButton" /> |
||||
<DialogResult value="OK" /> |
||||
<Location value="121, 209" /> |
||||
<Text value="${res:Global.OKButtonText}" /> |
||||
<Anchor value="Bottom, Right" /> |
||||
<UseVisualStyleBackColor value="True" /> |
||||
<Size value="75, 23" /> |
||||
<TabIndex value="3" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.Button> |
||||
<Name value="cancelButton" /> |
||||
<DialogResult value="Cancel" /> |
||||
<Location value="202, 209" /> |
||||
<Text value="${res:Global.CancelButtonText}" /> |
||||
<Anchor value="Bottom, Right" /> |
||||
<UseVisualStyleBackColor value="True" /> |
||||
<Size value="75, 23" /> |
||||
<TabIndex value="4" /> |
||||
</System.Windows.Forms.Button> |
||||
<System.Windows.Forms.ListBox> |
||||
<Name value="elementsListBox" /> |
||||
<Size value="289, 173" /> |
||||
<TabIndex value="0" /> |
||||
<Sorted value="True" /> |
||||
<SelectionMode value="MultiExtended" /> |
||||
<FormattingEnabled value="True" /> |
||||
<Location value="0, 0" /> |
||||
<Anchor value="Top, Bottom, Left, Right" /> |
||||
</System.Windows.Forms.ListBox> |
||||
</Controls> |
||||
</System.Windows.Forms.Form> |
||||
</Components> |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
// <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 ICSharpCode.Core; |
||||
using System; |
||||
|
||||
namespace ICSharpCode.XmlEditor |
||||
{ |
||||
/// <summary>
|
||||
/// Adds a new child element to the XML Tree.
|
||||
/// </summary>
|
||||
public class AddChildElementCommand : AbstractMenuCommand |
||||
{ |
||||
public override void Run() |
||||
{ |
||||
XmlTreeViewContainerControl view = Owner as XmlTreeViewContainerControl; |
||||
if (view != null) { |
||||
view.AddChildElement(); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
// <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 ICSharpCode.SharpDevelop.Gui.XmlForms; |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Windows.Forms; |
||||
|
||||
namespace ICSharpCode.XmlEditor |
||||
{ |
||||
public class AddElementDialog : BaseSharpDevelopForm |
||||
{ |
||||
ListBox elementsListBox; |
||||
Button okButton; |
||||
TextBox elementTextBox; |
||||
|
||||
public AddElementDialog(string[] elementNames) |
||||
{ |
||||
SetupFromXmlStream(GetType().Assembly.GetManifestResourceStream("ICSharpCode.XmlEditor.Resources.AddElementDialog.xfrm")); |
||||
|
||||
okButton = (Button)ControlDictionary["okButton"]; |
||||
okButton.Enabled = false; |
||||
AcceptButton = okButton; |
||||
CancelButton = (Button)ControlDictionary["cancelButton"]; |
||||
|
||||
elementTextBox = (TextBox)ControlDictionary["elementTextBox"]; |
||||
elementTextBox.TextChanged += ElementTextBoxTextChanged; |
||||
|
||||
elementsListBox = (ListBox)ControlDictionary["elementsListBox"]; |
||||
elementsListBox.SelectedIndexChanged += ElementsListBoxSelectedIndexChanged; |
||||
foreach (string name in elementNames) { |
||||
elementsListBox.Items.Add(name); |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Gets the element names selected.
|
||||
/// </summary>
|
||||
public string[] ElementNames { |
||||
get { |
||||
List<string> elementNames = new List<string>(); |
||||
if (IsElementSelected) { |
||||
foreach (string elementName in elementsListBox.SelectedItems) { |
||||
elementNames.Add(elementName); |
||||
} |
||||
} |
||||
string customElementName = elementTextBox.Text.Trim(); |
||||
if (customElementName.Length > 0) { |
||||
elementNames.Add(customElementName); |
||||
} |
||||
return elementNames.ToArray(); |
||||
} |
||||
} |
||||
|
||||
void ElementsListBoxSelectedIndexChanged(object source, EventArgs e) |
||||
{ |
||||
okButton.Enabled = IsOkButtonEnabled; |
||||
} |
||||
|
||||
void ElementTextBoxTextChanged(object source, EventArgs e) |
||||
{ |
||||
okButton.Enabled = IsOkButtonEnabled; |
||||
} |
||||
|
||||
bool IsElementSelected { |
||||
get { |
||||
return elementsListBox.SelectedIndex >= 0; |
||||
} |
||||
} |
||||
|
||||
bool IsOkButtonEnabled { |
||||
get { |
||||
return IsElementSelected || IsElementNameEntered; |
||||
} |
||||
} |
||||
|
||||
bool IsElementNameEntered { |
||||
get { |
||||
return elementTextBox.Text.Trim().Length > 0; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
// <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 ICSharpCode.Core; |
||||
using System; |
||||
|
||||
namespace ICSharpCode.XmlEditor |
||||
{ |
||||
/// <summary>
|
||||
/// Inserts a child element after the selected element in the XML tree.
|
||||
/// </summary>
|
||||
public class InsertElementAfterCommand : AbstractMenuCommand |
||||
{ |
||||
public override void Run() |
||||
{ |
||||
XmlTreeViewContainerControl view = Owner as XmlTreeViewContainerControl; |
||||
if (view != null) { |
||||
view.InsertElementAfter(); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
// <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 ICSharpCode.Core; |
||||
using System; |
||||
|
||||
namespace ICSharpCode.XmlEditor |
||||
{ |
||||
/// <summary>
|
||||
/// Inserts a child element before the selected element in the XML tree.
|
||||
/// </summary>
|
||||
public class InsertElementBeforeCommand : AbstractMenuCommand |
||||
{ |
||||
public override void Run() |
||||
{ |
||||
XmlTreeViewContainerControl view = Owner as XmlTreeViewContainerControl; |
||||
if (view != null) { |
||||
view.InsertElementBefore(); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,120 @@
@@ -0,0 +1,120 @@
|
||||
// <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 ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
using System; |
||||
using System.IO; |
||||
using System.Xml; |
||||
using XmlEditor.Tests.Utils; |
||||
|
||||
namespace XmlEditor.Tests.Tree |
||||
{ |
||||
/// <summary>
|
||||
/// Tests that a child element is added to the XML document by the
|
||||
/// XmlTreeEditor.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class AddChildElementTestFixture : XmlTreeViewTestFixtureBase |
||||
{ |
||||
XmlElement bodyElement; |
||||
|
||||
[SetUp] |
||||
public void Init() |
||||
{ |
||||
base.InitFixture(); |
||||
bodyElement = (XmlElement)editor.Document.SelectSingleNode("/html/body"); |
||||
mockXmlTreeView.SelectedElement = bodyElement; |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("h1"); |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("p"); |
||||
|
||||
editor.AddChildElement(); |
||||
} |
||||
|
||||
[Test] |
||||
public void ViewSelectElementsCalled() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.IsSelectNewElementsCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void NoElementSelected() |
||||
{ |
||||
mockXmlTreeView.SelectedElement = null; |
||||
mockXmlTreeView.IsSelectNewElementsCalled = false; |
||||
editor.AddChildElement(); |
||||
Assert.IsFalse(mockXmlTreeView.IsSelectNewElementsCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void IsDirty() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
[Test] |
||||
public void NoElementsToAdd() |
||||
{ |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Clear(); |
||||
mockXmlTreeView.IsDirty = false; |
||||
editor.AddChildElement(); |
||||
Assert.IsFalse(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
[Test] |
||||
public void ParagraphElementAdded() |
||||
{ |
||||
Assert.AreEqual(1, bodyElement.GetElementsByTagName("p").Count); |
||||
} |
||||
|
||||
[Test] |
||||
public void HeadlineElementAdded() |
||||
{ |
||||
Assert.AreEqual(1, bodyElement.GetElementsByTagName("h1").Count); |
||||
} |
||||
|
||||
[Test] |
||||
public void HeadlineElementNamespace() |
||||
{ |
||||
XmlElement element = (XmlElement)(bodyElement.GetElementsByTagName("h1")[0]); |
||||
Assert.AreEqual(String.Empty, element.NamespaceURI); |
||||
} |
||||
|
||||
[Test] |
||||
public void ElementListContainsForm() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.SelectNewElementsList.Contains("form")); |
||||
} |
||||
|
||||
[Test] |
||||
public void TwoChildElementsAddedToView() |
||||
{ |
||||
Assert.AreEqual(2, mockXmlTreeView.ChildElementsAdded.Count); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Returns the xhtml strict schema as the default schema.
|
||||
/// </summary>
|
||||
protected override XmlSchemaCompletionData DefaultSchemaCompletionData { |
||||
get { |
||||
XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); |
||||
return new XmlSchemaCompletionData(reader); |
||||
} |
||||
} |
||||
|
||||
protected override string GetXml() |
||||
{ |
||||
return "<html>\r\n" + |
||||
"\t<head>\r\n" + |
||||
"\t\t<title></title>\r\n" + |
||||
"\t</head>\r\n" + |
||||
"\t<body>\r\n" + |
||||
"\t</body>\r\n" + |
||||
"</html>"; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,97 @@
@@ -0,0 +1,97 @@
|
||||
// <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 ICSharpCode.SharpDevelop.Gui; |
||||
using ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
using System; |
||||
using System.Windows.Forms; |
||||
using System.Xml; |
||||
|
||||
namespace XmlEditor.Tests.Tree |
||||
{ |
||||
[TestFixture] |
||||
public class AddElementsToTreeControlTestFixture |
||||
{ |
||||
XmlDocument doc; |
||||
XmlElementTreeNode rootNode; |
||||
|
||||
[SetUp] |
||||
public void SetUpFixture() |
||||
{ |
||||
doc = new XmlDocument(); |
||||
doc.LoadXml("<root/>"); |
||||
using (XmlTreeViewControl treeView = new XmlTreeViewControl()) { |
||||
treeView.DocumentElement = doc.DocumentElement; |
||||
rootNode = (XmlElementTreeNode)treeView.Nodes[0]; |
||||
|
||||
// No node selected in treeview - adding a child
|
||||
// node should do nothing.
|
||||
treeView.SelectedNode = null; |
||||
XmlElement testElement = doc.CreateElement("test"); |
||||
treeView.AppendChildElement(testElement); |
||||
|
||||
treeView.SelectedNode = rootNode; |
||||
XmlElement childElement = doc.CreateElement("child"); |
||||
treeView.AppendChildElement(childElement); |
||||
|
||||
// No node selected in treeview - inserting a node
|
||||
// node should do nothing.
|
||||
treeView.SelectedNode = null; |
||||
treeView.AppendChildElement(testElement); |
||||
|
||||
XmlElementTreeNode childNode = (XmlElementTreeNode)rootNode.Nodes[0]; |
||||
treeView.SelectedNode = childNode; |
||||
XmlElement beforeElement = doc.CreateElement("before"); |
||||
treeView.InsertElementBefore(beforeElement); |
||||
|
||||
// No node selected in treeview - inserting a node
|
||||
// node should do nothing.
|
||||
treeView.SelectedNode = null; |
||||
treeView.AppendChildElement(testElement); |
||||
|
||||
treeView.SelectedNode = childNode; |
||||
XmlElement afterElement = doc.CreateElement("after"); |
||||
treeView.InsertElementAfter(afterElement); |
||||
} |
||||
} |
||||
|
||||
[Test] |
||||
public void ChildNodeAdded() |
||||
{ |
||||
XmlElementTreeNode childNode = (XmlElementTreeNode)rootNode.Nodes[1]; |
||||
Assert.AreEqual("child", childNode.Text); |
||||
} |
||||
|
||||
[Test] |
||||
public void NodeInsertedBeforeAdded() |
||||
{ |
||||
XmlElementTreeNode node = (XmlElementTreeNode)rootNode.Nodes[0]; |
||||
Assert.AreEqual("before", node.Text); |
||||
} |
||||
|
||||
[Test] |
||||
public void NodeInsertedBeforeParent() |
||||
{ |
||||
XmlElementTreeNode node = (XmlElementTreeNode)rootNode.Nodes[0]; |
||||
Assert.IsNotNull(node.Parent); |
||||
} |
||||
|
||||
[Test] |
||||
public void NodeInsertedAfterAdded() |
||||
{ |
||||
XmlElementTreeNode node = (XmlElementTreeNode)rootNode.Nodes[2]; |
||||
Assert.AreEqual("after", node.Text); |
||||
} |
||||
|
||||
[Test] |
||||
public void ThreeChildNodesAdded() |
||||
{ |
||||
Assert.AreEqual(3, rootNode.Nodes.Count); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,105 @@
@@ -0,0 +1,105 @@
|
||||
// <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 ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
using System; |
||||
using System.IO; |
||||
using System.Xml; |
||||
using XmlEditor.Tests.Utils; |
||||
|
||||
namespace XmlEditor.Tests.Tree |
||||
{ |
||||
/// <summary>
|
||||
/// Tests that a child element is added to the XML document by the
|
||||
/// XmlTreeEditor with the correct namespace.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class ExplicitNamespaceTestFixture : XmlTreeViewTestFixtureBase |
||||
{ |
||||
XmlElement bodyElement; |
||||
|
||||
[SetUp] |
||||
public void Init() |
||||
{ |
||||
base.InitFixture(); |
||||
XmlNamespaceManager nsManager = new XmlNamespaceManager(editor.Document.NameTable); |
||||
nsManager.AddNamespace("h", "http://www.w3.org/1999/xhtml"); |
||||
bodyElement = (XmlElement)editor.Document.SelectSingleNode("/h:html/h:body", nsManager); |
||||
mockXmlTreeView.SelectedElement = bodyElement; |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("h1"); |
||||
|
||||
editor.AddChildElement(); |
||||
} |
||||
|
||||
[Test] |
||||
public void HeadlineElementNamespace() |
||||
{ |
||||
XmlElement element = (XmlElement)bodyElement.FirstChild; |
||||
Assert.AreEqual("http://www.w3.org/1999/xhtml", element.NamespaceURI); |
||||
} |
||||
|
||||
[Test] |
||||
public void InsertBeforeDifferentNamespaceElementSelected() |
||||
{ |
||||
XmlNamespaceManager nsManager = new XmlNamespaceManager(editor.Document.NameTable); |
||||
nsManager.AddNamespace("a", "http://asp.net"); |
||||
XmlElement buttonElement = (XmlElement)editor.Document.SelectSingleNode("//a:button", nsManager); |
||||
XmlElement headElement = (XmlElement)buttonElement.ParentNode; |
||||
mockXmlTreeView.SelectedElement = buttonElement; |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Clear(); |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("title"); |
||||
|
||||
editor.InsertElementBefore(); |
||||
|
||||
XmlElement titleElement = (XmlElement)headElement.FirstChild; |
||||
Assert.AreEqual(2, headElement.ChildNodes.Count); |
||||
Assert.AreEqual("title", titleElement.LocalName); |
||||
Assert.AreEqual("http://www.w3.org/1999/xhtml", titleElement.NamespaceURI); |
||||
} |
||||
|
||||
[Test] |
||||
public void InsertAfterDifferentNamespaceElementSelected() |
||||
{ |
||||
XmlNamespaceManager nsManager = new XmlNamespaceManager(editor.Document.NameTable); |
||||
nsManager.AddNamespace("a", "http://asp.net"); |
||||
XmlElement buttonElement = (XmlElement)editor.Document.SelectSingleNode("//a:button", nsManager); |
||||
XmlElement headElement = (XmlElement)buttonElement.ParentNode; |
||||
mockXmlTreeView.SelectedElement = buttonElement; |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Clear(); |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("title"); |
||||
|
||||
editor.InsertElementAfter(); |
||||
|
||||
XmlElement titleElement = (XmlElement)headElement.LastChild; |
||||
Assert.AreEqual(2, headElement.ChildNodes.Count); |
||||
Assert.AreEqual("title", titleElement.LocalName); |
||||
Assert.AreEqual("http://www.w3.org/1999/xhtml", titleElement.NamespaceURI); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Returns the xhtml strict schema as the default schema.
|
||||
/// </summary>
|
||||
protected override XmlSchemaCompletionData DefaultSchemaCompletionData { |
||||
get { |
||||
XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); |
||||
return new XmlSchemaCompletionData(reader); |
||||
} |
||||
} |
||||
|
||||
protected override string GetXml() |
||||
{ |
||||
return "<html xmlns='http://www.w3.org/1999/xhtml'>\r\n" + |
||||
"\t<head>\r\n" + |
||||
"\t\t<asp:button xmlns:asp='http://asp.net'/>\r\n" + |
||||
"\t</head>\r\n" + |
||||
"\t<body>\r\n" + |
||||
"\t</body>\r\n" + |
||||
"</html>"; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,129 @@
@@ -0,0 +1,129 @@
|
||||
// <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 ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
using System; |
||||
using System.IO; |
||||
using System.Xml; |
||||
using XmlEditor.Tests.Utils; |
||||
|
||||
namespace XmlEditor.Tests.Tree |
||||
{ |
||||
/// <summary>
|
||||
/// Tests that an element is inserted after the selected element by the
|
||||
/// XmlTreeEditor.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class InsertElementAfterTestFixture : XmlTreeViewTestFixtureBase |
||||
{ |
||||
XmlElement paragraphElement; |
||||
XmlElement bodyElement; |
||||
|
||||
[SetUp] |
||||
public void Init() |
||||
{ |
||||
base.InitFixture(); |
||||
bodyElement = (XmlElement)editor.Document.SelectSingleNode("/html/body"); |
||||
paragraphElement = (XmlElement)bodyElement.FirstChild; |
||||
mockXmlTreeView.SelectedElement = paragraphElement; |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("h1"); |
||||
|
||||
editor.InsertElementAfter(); |
||||
} |
||||
|
||||
[Test] |
||||
public void HeadlineElementAdded() |
||||
{ |
||||
XmlElement headlineElement = (XmlElement)bodyElement.LastChild; |
||||
Assert.AreEqual("h1", headlineElement.LocalName); |
||||
} |
||||
|
||||
[Test] |
||||
public void BodyHasTwoChildElements() |
||||
{ |
||||
Assert.AreEqual(2, bodyElement.ChildNodes.Count); |
||||
} |
||||
|
||||
[Test] |
||||
public void IsDirty() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
[Test] |
||||
public void ViewSelectElementsCalled() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.IsSelectNewElementsCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void NoElementsToAdd() |
||||
{ |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Clear(); |
||||
mockXmlTreeView.IsDirty = false; |
||||
editor.InsertElementAfter(); |
||||
Assert.IsFalse(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
[Test] |
||||
public void NoElementSelected() |
||||
{ |
||||
mockXmlTreeView.SelectedElement = null; |
||||
mockXmlTreeView.IsSelectNewElementsCalled = false; |
||||
editor.InsertElementAfter(); |
||||
Assert.IsFalse(mockXmlTreeView.IsSelectNewElementsCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void ElementListContainsForm() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.SelectNewElementsList.Contains("form")); |
||||
} |
||||
|
||||
[Test] |
||||
public void NewElementAddedToView() |
||||
{ |
||||
Assert.AreEqual(1, mockXmlTreeView.ElementsInsertedAfter.Count); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Cannot insert after the root element.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void RootElementSelected() |
||||
{ |
||||
mockXmlTreeView.SelectedElement = editor.Document.DocumentElement; |
||||
mockXmlTreeView.IsDirty = false; |
||||
|
||||
editor.InsertElementAfter(); |
||||
Assert.IsFalse(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Returns the xhtml strict schema as the default schema.
|
||||
/// </summary>
|
||||
protected override XmlSchemaCompletionData DefaultSchemaCompletionData { |
||||
get { |
||||
XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); |
||||
return new XmlSchemaCompletionData(reader); |
||||
} |
||||
} |
||||
|
||||
protected override string GetXml() |
||||
{ |
||||
return "<html>\r\n" + |
||||
"\t<head>\r\n" + |
||||
"\t\t<title></title>\r\n" + |
||||
"\t</head>\r\n" + |
||||
"\t<body>\r\n" + |
||||
"\t\t<p/>\r\n" + |
||||
"\t</body>\r\n" + |
||||
"</html>"; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,129 @@
@@ -0,0 +1,129 @@
|
||||
// <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 ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
using System; |
||||
using System.IO; |
||||
using System.Xml; |
||||
using XmlEditor.Tests.Utils; |
||||
|
||||
namespace XmlEditor.Tests.Tree |
||||
{ |
||||
/// <summary>
|
||||
/// Tests that an element is inserted before the selected element by the
|
||||
/// XmlTreeEditor.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class InsertElementBeforeTestFixture : XmlTreeViewTestFixtureBase |
||||
{ |
||||
XmlElement paragraphElement; |
||||
XmlElement bodyElement; |
||||
|
||||
[SetUp] |
||||
public void Init() |
||||
{ |
||||
base.InitFixture(); |
||||
bodyElement = (XmlElement)editor.Document.SelectSingleNode("/html/body"); |
||||
paragraphElement = (XmlElement)bodyElement.FirstChild; |
||||
mockXmlTreeView.SelectedElement = paragraphElement; |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Add("h1"); |
||||
|
||||
editor.InsertElementBefore(); |
||||
} |
||||
|
||||
[Test] |
||||
public void HeadlineElementAdded() |
||||
{ |
||||
XmlElement headlineElement = (XmlElement)bodyElement.FirstChild; |
||||
Assert.AreEqual("h1", headlineElement.LocalName); |
||||
} |
||||
|
||||
[Test] |
||||
public void BodyHasTwoChildElements() |
||||
{ |
||||
Assert.AreEqual(2, bodyElement.ChildNodes.Count); |
||||
} |
||||
|
||||
[Test] |
||||
public void IsDirty() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
[Test] |
||||
public void ViewSelectElementsCalled() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.IsSelectNewElementsCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void NoElementsToAdd() |
||||
{ |
||||
mockXmlTreeView.SelectedNewElementsToReturn.Clear(); |
||||
mockXmlTreeView.IsDirty = false; |
||||
editor.InsertElementBefore(); |
||||
Assert.IsFalse(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
[Test] |
||||
public void NoElementSelected() |
||||
{ |
||||
mockXmlTreeView.SelectedElement = null; |
||||
mockXmlTreeView.IsSelectNewElementsCalled = false; |
||||
editor.InsertElementBefore(); |
||||
Assert.IsFalse(mockXmlTreeView.IsSelectNewElementsCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void ElementListContainsForm() |
||||
{ |
||||
Assert.IsTrue(mockXmlTreeView.SelectNewElementsList.Contains("form")); |
||||
} |
||||
|
||||
[Test] |
||||
public void NewElementAddedToView() |
||||
{ |
||||
Assert.AreEqual(1, mockXmlTreeView.ElementsInsertedBefore.Count); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Cannot insert before the root element.
|
||||
/// </summary>
|
||||
[Test] |
||||
public void RootElementSelected() |
||||
{ |
||||
mockXmlTreeView.SelectedElement = editor.Document.DocumentElement; |
||||
mockXmlTreeView.IsDirty = false; |
||||
|
||||
editor.InsertElementBefore(); |
||||
Assert.IsFalse(mockXmlTreeView.IsDirty); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Returns the xhtml strict schema as the default schema.
|
||||
/// </summary>
|
||||
protected override XmlSchemaCompletionData DefaultSchemaCompletionData { |
||||
get { |
||||
XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); |
||||
return new XmlSchemaCompletionData(reader); |
||||
} |
||||
} |
||||
|
||||
protected override string GetXml() |
||||
{ |
||||
return "<html>\r\n" + |
||||
"\t<head>\r\n" + |
||||
"\t\t<title></title>\r\n" + |
||||
"\t</head>\r\n" + |
||||
"\t<body>\r\n" + |
||||
"\t\t<p/>\r\n" + |
||||
"\t</body>\r\n" + |
||||
"</html>"; |
||||
} |
||||
} |
||||
} |
Binary file not shown.
Loading…
Reference in new issue