Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2752 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
11 changed files with 410 additions and 111 deletions
@ -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 System; |
||||
using ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
|
||||
namespace XmlEditor.Tests.Parser |
||||
{ |
||||
/// <summary>
|
||||
/// The XmlParser does not find the correct path when the first
|
||||
/// element of a namespace is under the current cursor position. It
|
||||
/// incorrectly uses the namespace of the parent element even though
|
||||
/// the element itself has its own prefix.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class XamlMixedNamespaceTestFixture |
||||
{ |
||||
string xaml = "<Window\r\n" + |
||||
" x:Class=\"DefaultNamespace.Window2\" xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:designer=\"clr-namespace:ICSharpCode.WpfDesign.Designer;assembly=ICSharpCode.WpfDesign.Designer\"\r\n" + |
||||
" Title=\"DefaultNamespace\"\r\n" + |
||||
" Height=\"300\"\r\n" + |
||||
" Width=\"300\">\r\n" + |
||||
" <Grid>\r\n" + |
||||
" <TabControl\r\n" + |
||||
" TabStripPlacement=\"Bottom\"\r\n" + |
||||
" Name=\"tabControl\"\r\n" + |
||||
" SelectionChanged=\"tabControlSelectionChanged\"\r\n" + |
||||
" Grid.Column=\"0\">\r\n" + |
||||
" <TabItem\r\n" + |
||||
" Header=\"Design\"\r\n" + |
||||
" Name=\"designTab\">\r\n" + |
||||
" <designer:DesignSurface\r\n" + |
||||
" Name=\"designSurface\"/>\r\n" + |
||||
" </TabItem>\r\n" + |
||||
" </TabControl>\r\n" + |
||||
" </Grid>\r\n" + |
||||
"</Window>"; |
||||
|
||||
XmlElementPath designSurfacePath; |
||||
XmlElementPath designSurfacePath2; |
||||
QualifiedName designSurfaceNameAttribute; |
||||
|
||||
[TestFixtureSetUp] |
||||
public void SetUpFixture() |
||||
{ |
||||
// Get the path for the DesignSurface element.
|
||||
int index = xaml.IndexOf("designer:DesignSurface"); |
||||
designSurfacePath = XmlParser.GetActiveElementStartPathAtIndex(xaml, index); |
||||
designSurfacePath2 = XmlParser.GetActiveElementStartPath(xaml, index); |
||||
|
||||
// Get the path for the DesignSurface/@Name attribute.
|
||||
index = xaml.IndexOf("Name=\"designSurface\""); |
||||
designSurfaceNameAttribute = XmlParser.GetQualifiedAttributeNameAtIndex(xaml, index, true); |
||||
} |
||||
|
||||
[Test] |
||||
public void DesignSurfacePath() |
||||
{ |
||||
XmlElementPath expectedPath = new XmlElementPath(); |
||||
expectedPath.Elements.Add(new QualifiedName("DesignSurface", "clr-namespace:ICSharpCode.WpfDesign.Designer;assembly=ICSharpCode.WpfDesign.Designer", "designer")); |
||||
|
||||
Assert.AreEqual(expectedPath, designSurfacePath); |
||||
} |
||||
|
||||
[Test] |
||||
public void DesignSurfacePath2() |
||||
{ |
||||
XmlElementPath expectedPath = new XmlElementPath(); |
||||
expectedPath.Elements.Add(new QualifiedName("DesignSurface", "clr-namespace:ICSharpCode.WpfDesign.Designer;assembly=ICSharpCode.WpfDesign.Designer", "designer")); |
||||
|
||||
Assert.AreEqual(expectedPath, designSurfacePath2); |
||||
} |
||||
|
||||
[Test] |
||||
public void DesignSurfaceNameAttribute() |
||||
{ |
||||
QualifiedName expectedName = new QualifiedName("Name", "clr-namespace:ICSharpCode.WpfDesign.Designer;assembly=ICSharpCode.WpfDesign.Designer", String.Empty); |
||||
|
||||
Assert.AreEqual(expectedName, designSurfaceNameAttribute); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
// <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 ICSharpCode.XmlEditor; |
||||
using NUnit.Framework; |
||||
|
||||
namespace XmlEditor.Tests.Paths |
||||
{ |
||||
/// <summary>
|
||||
/// Tests the QualifiedName.ToString method.
|
||||
/// </summary>
|
||||
[TestFixture] |
||||
public class QualifiedNameToStringTests |
||||
{ |
||||
[Test] |
||||
public void EmptyQualifiedName() |
||||
{ |
||||
QualifiedName name = new QualifiedName(); |
||||
Assert.AreEqual(String.Empty, name.ToString()); |
||||
} |
||||
|
||||
[Test] |
||||
public void NameOnly() |
||||
{ |
||||
QualifiedName name = new QualifiedName("root", String.Empty); |
||||
Assert.AreEqual("root", name.ToString()); |
||||
} |
||||
|
||||
[Test] |
||||
public void NameAndNamespace() |
||||
{ |
||||
QualifiedName name = new QualifiedName("root", "urn:my-uri"); |
||||
Assert.AreEqual("root [urn:my-uri]", name.ToString()); |
||||
} |
||||
|
||||
[Test] |
||||
public void NameNamespaceAndPrefix() |
||||
{ |
||||
QualifiedName name = new QualifiedName("root", "urn:my-uri", "a"); |
||||
Assert.AreEqual("a:root [urn:my-uri]", name.ToString()); |
||||
} |
||||
|
||||
[Test] |
||||
public void NameAndPrefixOnly() |
||||
{ |
||||
QualifiedName name = new QualifiedName("root", String.Empty, "b"); |
||||
Assert.AreEqual("b:root", name.ToString()); |
||||
} |
||||
|
||||
[Test] |
||||
public void NullPrefix() |
||||
{ |
||||
QualifiedName name = new QualifiedName("root", String.Empty, null); |
||||
Assert.AreEqual("root", name.ToString()); |
||||
} |
||||
|
||||
[Test] |
||||
public void NullPrefixAndNonEmptyNamespace() |
||||
{ |
||||
QualifiedName name = new QualifiedName("root", "urn:my-uri", null); |
||||
Assert.AreEqual("root [urn:my-uri]", name.ToString()); |
||||
} |
||||
|
||||
} |
||||
} |
Loading…
Reference in new issue