diff options
author | Atsushi Eno <atsushieno@gmail.com> | 2014-05-16 16:58:38 +0400 |
---|---|---|
committer | Atsushi Eno <atsushieno@gmail.com> | 2014-05-16 17:00:05 +0400 |
commit | 4930f612ae7f58d3f6b3944da31e8f605ffa6bcc (patch) | |
tree | 55354f9af1b4fce5d78c15e2d09b724564caa8d0 /mcs/class/Microsoft.Build/Test | |
parent | 554dc2983e3b921bf326623715eb5bc1f5512da9 (diff) |
[MS.Build] for item metadata access expression, remove surrounding ' and ".
The test case would explain what is not desired there.
Diffstat (limited to 'mcs/class/Microsoft.Build/Test')
-rw-r--r-- | mcs/class/Microsoft.Build/Test/Microsoft.Build.Execution/ProjectInstanceTest.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/mcs/class/Microsoft.Build/Test/Microsoft.Build.Execution/ProjectInstanceTest.cs b/mcs/class/Microsoft.Build/Test/Microsoft.Build.Execution/ProjectInstanceTest.cs index 1f33a64907f..cf41928c19c 100644 --- a/mcs/class/Microsoft.Build/Test/Microsoft.Build.Execution/ProjectInstanceTest.cs +++ b/mcs/class/Microsoft.Build/Test/Microsoft.Build.Execution/ProjectInstanceTest.cs @@ -235,6 +235,36 @@ namespace MonoTests.Microsoft.Build.Execution var proj = new ProjectInstance (root); Assert.AreEqual ("xxx;yyy", proj.ExpandString ("@(FOO)"), "#1"); // so, metadata is gone... } + + [Test] + public void EvaluatePropertyWithQuotation () + { + string project_xml = @"<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'> + <ItemGroup> + <Foo Include='abc/xxx.txt' /> + </ItemGroup> + <PropertyGroup> + <B>foobar</B> + </PropertyGroup> + <Target Name='default'> + <CreateProperty Value=""@(Foo->'%(Filename)%(Extension)')""> + <Output TaskParameter='Value' PropertyName='P' /> + </CreateProperty> + <CreateProperty Value='$(B)|$(P)'> + <Output TaskParameter='Value' PropertyName='Q' /> + </CreateProperty> + </Target> +</Project>"; + var xml = XmlReader.Create (new StringReader (project_xml)); + var root = ProjectRootElement.Create (xml); + root.FullPath = "ProjectInstanceTest.EvaluatePropertyWithQuotation.proj"; + var proj = new ProjectInstance (root); + proj.Build (); + var p = proj.GetProperty ("P"); + Assert.AreEqual ("xxx.txt", p.EvaluatedValue, "#1"); + var q = proj.GetProperty ("Q"); + Assert.AreEqual ("foobar|xxx.txt", q.EvaluatedValue, "#2"); + } } namespace SubNamespace |