From 3f4bd928ab4c048792bf4c5c10004a1f22e8aa19 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 12 Apr 2021 15:13:08 -0400 Subject: Fix decompilation of directories as children TARGETDIR. --- .../DecompileFixture.cs | 8 ++++++-- .../ModuleFixture.cs | 17 ++++++++++------ .../DecompileTargetDirMergeModule/Expected.wxs | 18 +++++++++++++++++ .../DecompileTargetDirMergeModule/MergeModule1.msm | Bin 0 -> 32768 bytes .../TestData/SimpleModule/Module.wxs | 22 ++++++++++++--------- 5 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm (limited to 'src/test') diff --git a/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs index b07f5bda..ab04da15 100644 --- a/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs @@ -3,10 +3,8 @@ namespace WixToolsetTest.CoreIntegration { using System.IO; - using System.Xml.Linq; using WixBuildTools.TestSupport; using WixToolset.Core.TestPackage; - using WixToolset.Extensibility.Services; using Xunit; public class DecompileFixture @@ -78,5 +76,11 @@ namespace WixToolsetTest.CoreIntegration { DecompileAndCompare(@"TestData\DecompileNullComponent", "example.msi", "Expected.wxs"); } + + [Fact] + public void CanDecompileMergeModuleWithTargetDirComponent() + { + DecompileAndCompare(@"TestData\DecompileTargetDirMergeModule", "MergeModule1.msm", "Expected.wxs"); + } } } diff --git a/src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs index 349bad2c..17e91692 100644 --- a/src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs @@ -46,19 +46,23 @@ namespace WixToolsetTest.CoreIntegration WixAssert.CompareLineByLine(new[] { "MergeRedirectFolder\tTARGETDIR\t.", + "NotTheMergeRedirectFolder\tTARGETDIR\t.", "TARGETDIR\t\tSourceDir" }, dirSymbols.Select(d => String.Join("\t", d.Id.Id, d.ParentDirectoryRef, d.Name)).ToArray()); - var fileSymbol = section.Symbols.OfType().Single(); - Assert.Equal("filyIq8rqcxxf903Hsn5K9L0SWV73g", fileSymbol.Id.Id); - Assert.Equal(Path.Combine(folder, @"data\test.txt"), fileSymbol[FileSymbolFields.Source].AsPath().Path); - Assert.Equal(@"test.txt", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path); + var fileSymbols = section.Symbols.OfType().OrderBy(d => d.Id.Id).ToList(); + WixAssert.CompareLineByLine(new[] + { + $"File1\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt", + $"File2\t{Path.Combine(folder, @"data\test.txt")}\ttest.txt", + }, fileSymbols.Select(fileSymbol => String.Join("\t", fileSymbol.Id.Id, fileSymbol[FileSymbolFields.Source].AsPath().Path, fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path)).ToArray()); var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb")); var fileRows = data.Tables["File"].Rows; Assert.Equal(new[] { - "filyIq8rqcxxf903Hsn5K9L0SWV73g.243FB739_4D05_472F_9CFB_EF6B1017B6DE" + "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE", + "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE", }, fileRows.Select(r => r.FieldAsString(0)).ToArray()); var cabPath = Path.Combine(intermediateFolder, "msm-test.cab"); @@ -66,7 +70,8 @@ namespace WixToolsetTest.CoreIntegration var files = Query.GetCabinetFiles(cabPath); Assert.Equal(new[] { - "filyIq8rqcxxf903Hsn5K9L0SWV73g.243FB739_4D05_472F_9CFB_EF6B1017B6DE" + "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE", + "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE", }, files.Select(f => Path.Combine(f.Path, f.Name)).ToArray()); } } diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs new file mode 100644 index 00000000..7c5fe3cf --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/Expected.wxs @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm new file mode 100644 index 00000000..2a7b5e3a Binary files /dev/null and b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileTargetDirMergeModule/MergeModule1.msm differ diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs index 9a523162..8317e7af 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs @@ -1,13 +1,17 @@ - - + + - + + + + + - - - - - - + + + + + + -- cgit v1.2.3-55-g6feb