Browse Source

fixed Unit Tests

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/XmlEditor@4194 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Siegfried Pammer 17 years ago
parent
commit
3bc97380be
  1. 12
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathNodeTextMarker.cs
  2. 27
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeView.cs
  3. 35
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
  4. 6
      src/AddIns/DisplayBindings/XmlEditor/Test/Tree/XmlTreeViewClipboardHandlerTestFixture.cs
  5. 14
      src/AddIns/DisplayBindings/XmlEditor/Test/Utils/MockTextMarker.cs

12
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathNodeTextMarker.cs

@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
// </file>
using System;
using System.Linq;
using System.Collections.Generic;
using System.Drawing;
@ -25,7 +26,7 @@ namespace ICSharpCode.XmlEditor @@ -25,7 +26,7 @@ namespace ICSharpCode.XmlEditor
XPathNodeTextMarker(IDocument document, int offset, XPathNodeMatch node)
{
ITextMarkerService markerService = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService;
marker = markerService.Create(offset, node.DisplayValue.Length);
marker = markerService.Create(offset, node.Value.Length);
marker.Tag = this;
}
@ -55,9 +56,12 @@ namespace ICSharpCode.XmlEditor @@ -55,9 +56,12 @@ namespace ICSharpCode.XmlEditor
public static void RemoveMarkers(IDocument document)
{
ITextMarkerService markerService = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService;
foreach (ITextMarker marker in markerService.TextMarkers) {
if (marker.Tag is XPathNodeTextMarker)
marker.Delete();
ITextMarker[] list = markerService.TextMarkers.ToArray();
foreach (ITextMarker item in list) {
if (item.Tag is XPathNodeTextMarker)
item.Delete();
}
}
}

27
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeView.cs

@ -25,12 +25,14 @@ namespace ICSharpCode.XmlEditor @@ -25,12 +25,14 @@ namespace ICSharpCode.XmlEditor
public class XmlTreeView : AbstractSecondaryViewContent, IClipboardHandler
{
XmlTreeViewContainerControl treeViewContainer;
bool ignoreDirtyChange;
public XmlTreeView(IViewContent parent)
: base(parent)
{
this.TabPageText = "XML Tree";
this.treeViewContainer = new XmlTreeViewContainerControl();
this.treeViewContainer.DirtyChanged += TreeViewContainerDirtyChanged;
treeViewContainer.AttributesGrid.ContextMenuStrip = MenuService.CreateContextMenu(treeViewContainer, "/AddIns/XmlEditor/XmlTree/AttributesGrid/ContextMenu");
treeViewContainer.TreeView.ContextMenuStrip = MenuService.CreateContextMenu(treeViewContainer, "/AddIns/XmlEditor/XmlTree/ContextMenu");
}
@ -133,19 +135,23 @@ namespace ICSharpCode.XmlEditor @@ -133,19 +135,23 @@ namespace ICSharpCode.XmlEditor
{
IFileDocumentProvider provider = this.PrimaryViewContent as IFileDocumentProvider;
treeViewContainer.LoadXml(provider.GetDocumentForFile(this.PrimaryFile).Text, XmlView.GetProvider(Path.GetExtension(this.PrimaryFileName)));
XmlView view = XmlView.ForFile(this.PrimaryFile);
if (view != null) {
view.CheckIsWellFormed();
}
}
protected override void SaveToPrimary()
{
// Do not modify text in the primary view if the data is not well-formed XML
if (!treeViewContainer.IsErrorMessageTextBoxVisible && treeViewContainer.IsDirty) {
IFileDocumentProvider provider = this.PrimaryViewContent as IFileDocumentProvider;
StringWriter str = new StringWriter(CultureInfo.InvariantCulture);
XmlTextWriter writer = new XmlTextWriter(str);
writer.Formatting = Formatting.Indented;
treeViewContainer.Document.WriteTo(writer);
provider.GetDocumentForFile(this.PrimaryFile).Text = str.ToString();
XmlView view = XmlView.ForFile(this.PrimaryFile);
if (view != null) {
view.ReplaceAll(treeViewContainer.Document.OuterXml);
ignoreDirtyChange = true;
treeViewContainer.IsDirty = false;
ignoreDirtyChange = false;
}
}
}
@ -169,5 +175,12 @@ namespace ICSharpCode.XmlEditor @@ -169,5 +175,12 @@ namespace ICSharpCode.XmlEditor
{
return false;
}
void TreeViewContainerDirtyChanged(object source, EventArgs e)
{
if (!ignoreDirtyChange) {
this.PrimaryFile.IsDirty = treeViewContainer.IsDirty;
}
}
}
}

35
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs

@ -83,7 +83,7 @@ namespace ICSharpCode.XmlEditor @@ -83,7 +83,7 @@ namespace ICSharpCode.XmlEditor
XmlSchemaCompletionData defaultSchemaCompletionData;
XmlSchemaCompletionDataCollection schemas;
if (PropertyService.Initialized) {
if (PropertyService.DataDirectory != null) {
schemas = XmlSchemaManager.SchemaCompletionDataItems;
defaultNamespacePrefix = XmlSchemaManager.GetNamespacePrefix(extension);
defaultSchemaCompletionData = XmlSchemaManager.GetSchemaCompletionData(extension);
@ -202,21 +202,26 @@ namespace ICSharpCode.XmlEditor @@ -202,21 +202,26 @@ namespace ICSharpCode.XmlEditor
/// </summary>
public bool IsWellFormed {
get {
ITextEditor editor = TextEditor;
if (editor == null)
return false;
try {
XmlDocument Document = new XmlDocument();
Document.LoadXml(editor.Document.Text);
return true;
} catch(XmlException ex) {
AddTask(editor.FileName, ex.Message, ex.LinePosition - 1, ex.LineNumber - 1, TaskType.Error);
} catch (WebException ex) {
AddTask(editor.FileName, ex.Message, 0, 0, TaskType.Error);
}
return false;
return CheckIsWellFormed();
}
}
public bool CheckIsWellFormed()
{
ITextEditor editor = TextEditor;
if (editor == null) return false;
try {
XmlDocument Document = new XmlDocument();
Document.LoadXml(editor.Document.Text);
return true;
}
catch (XmlException ex) {
AddTask(editor.FileName, ex.Message, ex.LinePosition - 1, ex.LineNumber - 1, TaskType.Error);
}
catch (WebException ex) {
AddTask(editor.FileName, ex.Message, 0, 0, TaskType.Error);
}
return false;
}
static void AddTask(string fileName, string message, int column, int line, TaskType taskType)

6
src/AddIns/DisplayBindings/XmlEditor/Test/Tree/XmlTreeViewClipboardHandlerTestFixture.cs

@ -103,7 +103,7 @@ namespace XmlEditor.Tests.Tree @@ -103,7 +103,7 @@ namespace XmlEditor.Tests.Tree
view.Copy();
view.Paste();
Assert.IsTrue(xmlView.IsDirty);
Assert.IsTrue(view.IsDirty);
Assert.AreEqual(htmlTreeNode.Text, htmlTreeNode.LastNode.Text);
}
@ -115,7 +115,7 @@ namespace XmlEditor.Tests.Tree @@ -115,7 +115,7 @@ namespace XmlEditor.Tests.Tree
treeView.SelectedNode = htmlTreeNode;
view.Paste();
Assert.IsTrue(xmlView.IsDirty);
Assert.IsTrue(view.IsDirty);
Assert.AreEqual(paragraphTreeNode.Text, htmlTreeNode.LastNode.Text);
}
@ -127,7 +127,7 @@ namespace XmlEditor.Tests.Tree @@ -127,7 +127,7 @@ namespace XmlEditor.Tests.Tree
clipboardHandler.Delete();
Assert.AreEqual(0, treeView.Nodes.Count);
Assert.IsTrue(xmlView.IsDirty);
Assert.IsTrue(view.IsDirty);
}
}
}

14
src/AddIns/DisplayBindings/XmlEditor/Test/Utils/MockTextMarker.cs

@ -53,27 +53,23 @@ namespace XmlEditor.Tests.Utils @@ -53,27 +53,23 @@ namespace XmlEditor.Tests.Utils
public Nullable<Color> BackgroundColor {
get {
return null;
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public Nullable<Color> ForegroundColor {
get {
return null;
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public object Tag {
get {
return null;
}
set {
}
}
public object Tag { get; set; }
public void Delete()
{

Loading…
Cancel
Save