Browse Source

Add trailing slash to AddInPath property returned by StringParser when expanding T4 directives.

pull/23/head
Matt Ward 15 years ago
parent
commit
7ca65cf26a
  1. 10
      src/AddIns/Misc/TextTemplating/Project/Src/TextTemplatingDirectoryVariable.cs
  2. 24
      src/AddIns/Misc/TextTemplating/Test/Src/TextTemplatingVariablesTests.cs

10
src/AddIns/Misc/TextTemplating/Project/Src/TextTemplatingDirectoryVariable.cs

@ -9,10 +9,20 @@ namespace ICSharpCode.TextTemplating
public static class TextTemplatingDirectoryVariable public static class TextTemplatingDirectoryVariable
{ {
public static bool IsDirectoryVariable(string name) public static bool IsDirectoryVariable(string name)
{
return EndsWithDir(name) || IsAddInPath(name);
}
static bool EndsWithDir(string name)
{ {
return name.EndsWith("Dir", StringComparison.OrdinalIgnoreCase); return name.EndsWith("Dir", StringComparison.OrdinalIgnoreCase);
} }
static bool IsAddInPath(string name)
{
return name.StartsWith("addinpath:", StringComparison.OrdinalIgnoreCase);
}
public static string AppendTrailingSlashIfMissing(string variableValue) public static string AppendTrailingSlashIfMissing(string variableValue)
{ {
if (!String.IsNullOrEmpty(variableValue)) { if (!String.IsNullOrEmpty(variableValue)) {

24
src/AddIns/Misc/TextTemplating/Test/Src/TextTemplatingVariablesTests.cs

@ -237,5 +237,29 @@ namespace TextTemplating.Tests
string expectedResult = @"d:\projects\MyProject\bin\Debug\Test.dll"; string expectedResult = @"d:\projects\MyProject\bin\Debug\Test.dll";
Assert.AreEqual(expectedResult, result); Assert.AreEqual(expectedResult, result);
} }
[Test]
public void ExpandVariables_AddInPathHasNoTrailingSlash_AddInPathPropertyIsExpandedWithTrailingSlash()
{
CreateTextTemplatingVariables();
AddProperty("addinpath:ICSharpCode.MyAddIn", @"d:\SD\AddIns\MyAddIn");
string result = variables.ExpandVariables(@"$(addinpath:ICSharpCode.MyAddIn)MyAddIn.dll");
string expectedResult = @"d:\SD\AddIns\MyAddIn\MyAddIn.dll";
Assert.AreEqual(expectedResult, result);
}
[Test]
public void ExpandVariables_AddInPathInUpperCaseWithoutTrailingSlash_AddInPathPropertyIsExpandedWithTrailingSlash()
{
CreateTextTemplatingVariables();
AddProperty("ADDINPATH:ICSharpCode.MyAddIn", @"d:\SD\AddIns\MyAddIn");
string result = variables.ExpandVariables(@"$(ADDINPATH:ICSharpCode.MyAddIn)MyAddIn.dll");
string expectedResult = @"d:\SD\AddIns\MyAddIn\MyAddIn.dll";
Assert.AreEqual(expectedResult, result);
}
} }
} }

Loading…
Cancel
Save