Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs')
-rw-r--r--main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs44
1 files changed, 44 insertions, 0 deletions
diff --git a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs
index 2e87dee4e9..668a698619 100644
--- a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildProjectTests.cs
@@ -28,6 +28,7 @@ using NUnit.Framework;
using UnitTests;
using MonoDevelop.Core.Serialization;
using MonoDevelop.Projects.MSBuild;
+using System.IO;
using System.Linq;
using System.Xml;
using ValueSet = MonoDevelop.Projects.ConditionedPropertyCollection.ValueSet;
@@ -921,6 +922,49 @@ namespace MonoDevelop.Projects
Assert.IsFalse (test2Element.HasAttribute ("xmlns"));
Assert.IsFalse (test3Element.HasAttribute ("xmlns"));
}
+
+ [TestCase ("ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"")]
+ public void PatchedImport (string projectElementAttributes)
+ {
+ string projectXml =
+ "<Project " + projectElementAttributes + ">\r\n" +
+ " <PropertyGroup>\r\n" +
+ " <TargetFramework>netcoreapp1.0</TargetFramework>\r\n" +
+ " <Test1></Test1>\r\n" +
+ " </PropertyGroup>\r\n" +
+ " <Import Project=\"Original.targets\" />\r\n" +
+ "</Project>";
+
+ var p = new MSBuildProject ();
+ p.LoadXml (projectXml);
+
+ var import = p.Imports.Single ();
+
+ var sw = new StringWriter ();
+ var xw = XmlWriter.Create (sw, new XmlWriterSettings {
+ OmitXmlDeclaration = true,
+ NewLineChars = "\r\n",
+ NewLineHandling = NewLineHandling.Replace
+ });
+
+ xw.WriteStartElement (string.Empty, "Root", p.Namespace);
+ import.WritePatchedImport (xw, "Updated.targets");
+ xw.WriteEndElement ();
+ xw.Dispose ();
+
+ var doc = new XmlDocument ();
+ doc.LoadXml (sw.ToString ());
+
+ var import1 = (XmlElement)doc.DocumentElement.ChildNodes [0];
+ var import2 = (XmlElement)doc.DocumentElement.ChildNodes [1];
+
+ Assert.AreEqual ("Original.targets", import1.GetAttribute ("Project"));
+ Assert.AreEqual ("Exists('Original.targets')", import1.GetAttribute ("Condition"));
+ Assert.AreEqual ("Updated.targets", import2.GetAttribute ("Project"));
+ Assert.AreEqual ("!Exists('Original.targets')", import2.GetAttribute ("Condition"));
+ Assert.IsFalse (import1.HasAttribute ("xmlns"));
+ Assert.IsFalse (import2.HasAttribute ("xmlns"));
+ }
}
}