From b4210b23ea28e0acc5a8b7ca5357d7d3926071b4 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sun, 25 Apr 2021 15:36:31 -0500 Subject: Allow DownloadUrl on embedded payloads. #5253 --- .../ContainerFixture.cs | 50 ++++++++++++++++++++-- .../Container/HarvestIntoAttachedContainer.wxs | 17 ++++++++ 2 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoAttachedContainer.wxs (limited to 'src/test') diff --git a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs index ff48ee05..dd381dfe 100644 --- a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs @@ -15,6 +15,50 @@ namespace WixToolsetTest.CoreIntegration public class ContainerFixture { + [Fact(Skip = "Test demonstrates failure")] + public void CanBuildWithCustomAttachedContainer() + { + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var binFolder = Path.Combine(baseFolder, "bin"); + var bundlePath = Path.Combine(binFolder, "test.exe"); + var baFolderPath = Path.Combine(baseFolder, "ba"); + var extractFolderPath = Path.Combine(baseFolder, "extract"); + + this.BuildMsis(folder, intermediateFolder, binFolder, buildToSubfolder: true); + + var result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "Container", "HarvestIntoAttachedContainer.wxs"), + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), + "-bindpath", binFolder, + "-intermediateFolder", intermediateFolder, + "-o", bundlePath + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(bundlePath)); + + var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); + extractResult.AssertSuccess(); + + var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload"); + Assert.Equal(4, payloads.Count); + var ignoreAttributes = new Dictionary> { { "Payload", new List { "FileSize", "Hash" } } }; + Assert.Equal(@"", payloads[0].GetTestXml(ignoreAttributes)); + Assert.Equal(@"", payloads[1].GetTestXml(ignoreAttributes)); + Assert.Equal(@"", payloads[2].GetTestXml(ignoreAttributes)); + Assert.Equal(@"", payloads[3].GetTestXml(ignoreAttributes)); + } + } + [Fact] public void HarvestedPayloadsArePutInCorrectContainer() { @@ -309,7 +353,7 @@ namespace WixToolsetTest.CoreIntegration } } - private void BuildMsis(string folder, string intermediateFolder, string binFolder) + private void BuildMsis(string folder, string intermediateFolder, string binFolder, bool buildToSubfolder = false) { var result = WixRunner.Execute(new[] { @@ -319,7 +363,7 @@ namespace WixToolsetTest.CoreIntegration Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), "-bindpath", Path.Combine(folder, "SingleFile", "data"), "-intermediateFolder", intermediateFolder, - "-o", Path.Combine(binFolder, "FirstX86.msi"), + "-o", Path.Combine(binFolder, buildToSubfolder ? "FirstX86" : ".", "FirstX86.msi"), }); result.AssertSuccess(); @@ -332,7 +376,7 @@ namespace WixToolsetTest.CoreIntegration Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), "-bindpath", Path.Combine(folder, "SingleFile", "data"), "-intermediateFolder", intermediateFolder, - "-o", Path.Combine(binFolder, "FirstX64.msi"), + "-o", Path.Combine(binFolder, buildToSubfolder ? "FirstX64" : ".", "FirstX64.msi"), }); result.AssertSuccess(); diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoAttachedContainer.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoAttachedContainer.wxs new file mode 100644 index 00000000..ec757c5d --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Container/HarvestIntoAttachedContainer.wxs @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + -- cgit v1.2.3-55-g6feb