Browse Source

When importing a directory into a WiX setup legal identifiers are now generated for WiX components and directories.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1906 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 19 years ago
parent
commit
9d1fa8c1a6
  1. 2
      src/AddIns/BackendBindings/WixBinding/Project/Src/WixComponentElement.cs
  2. 2
      src/AddIns/BackendBindings/WixBinding/Project/Src/WixDirectoryElementBase.cs
  3. 50
      src/AddIns/BackendBindings/WixBinding/Test/DirectoryImport/AddDirectoryWithInvalidIdCharsTestFixture.cs
  4. 7
      src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/GenerateComponentIdTests.cs
  5. 1
      src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj

2
src/AddIns/BackendBindings/WixBinding/Project/Src/WixComponentElement.cs

@ -132,7 +132,7 @@ namespace ICSharpCode.WixBinding @@ -132,7 +132,7 @@ namespace ICSharpCode.WixBinding
if (extension.Length > 1) {
idEnd = FirstCharacterToUpperInvariant(extension.Substring(1));
}
return String.Concat(idStart, idEnd);
return WixFileElement.GenerateId(String.Concat(idStart, idEnd));
}
/// <summary>

2
src/AddIns/BackendBindings/WixBinding/Project/Src/WixDirectoryElementBase.cs

@ -77,7 +77,7 @@ namespace ICSharpCode.WixBinding @@ -77,7 +77,7 @@ namespace ICSharpCode.WixBinding
public WixDirectoryElement AddDirectory(string name)
{
WixDirectoryElement directoryElement = new WixDirectoryElement((WixDocument)OwnerDocument);
directoryElement.Id = name;
directoryElement.Id = WixFileElement.GenerateId(name);
SetDirectoryName(directoryElement, name);
return (WixDirectoryElement)AppendChild(directoryElement);
}

50
src/AddIns/BackendBindings/WixBinding/Test/DirectoryImport/AddDirectoryWithInvalidIdCharsTestFixture.cs

@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
// <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 ICSharpCode.WixBinding;
using NUnit.Framework;
using System;
namespace WixBinding.Tests.DirectoryImport
{
[TestFixture]
public class AddDirectoryWithInvalidIdCharsTestFixture
{
WixDocument document;
[SetUp]
public void Init()
{
document = new WixDocument();
document.FileName = @"C:\Projects\Test\Setup.wxs";
document.LoadXml(GetWixXml());
}
[Test]
public void AddDirectoryWithHyphen()
{
string directoryName = "Test-directory";
WixDirectoryElement element = document.RootDirectory.AddDirectory(directoryName);
Assert.AreEqual("Test_directory", element.Id);
}
string GetWixXml()
{
return "<Wix xmlns=\"http://schemas.microsoft.com/wix/2003/01/wi\">\r\n" +
"\t<Product Name=\"MySetup\" \r\n" +
"\t Manufacturer=\"\" \r\n" +
"\t Id=\"F4A71A3A-C271-4BE8-B72C-F47CC956B3AA\" \r\n" +
"\t Language=\"1033\" \r\n" +
"\t Version=\"1.0.0.0\">\r\n" +
"\t\t<Package Id=\"6B8BE64F-3768-49CA-8BC2-86A76424DFE9\"/>\r\n" +
"\t\t<Directory Id=\"TARGETDIR\" SourceName=\"SourceDir\">\r\n" +
"\t\t</Directory>\r\n" +
"\t</Product>\r\n" +
"</Wix>";
}
}
}

7
src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/GenerateComponentIdTests.cs

@ -47,5 +47,12 @@ namespace WixBinding.Tests.PackageFiles @@ -47,5 +47,12 @@ namespace WixBinding.Tests.PackageFiles
{
Assert.AreEqual(String.Empty, WixComponentElement.GenerateIdFromFileName(String.Empty));
}
[Test]
public void Hyphen()
{
string fileName = "a-b.txt";
Assert.AreEqual("A_bTxt", WixComponentElement.GenerateIdFromFileName(fileName));
}
}
}

1
src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj

@ -229,6 +229,7 @@ @@ -229,6 +229,7 @@
<Compile Include="Diff\ExcludedFilesTestFixture.cs" />
<Compile Include="Diff\SameFileReferencedTwiceTestFixture.cs" />
<Compile Include="Project\CanCompileTests.cs" />
<Compile Include="DirectoryImport\AddDirectoryWithInvalidIdCharsTestFixture.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Project\WixBinding.csproj">

Loading…
Cancel
Save