From 2d23530fde970972c927680ee3df6466538ae8ca Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 23 Apr 2020 08:33:03 +1000 Subject: Add and fix some bundle tests. --- .../Bundles/ProcessPayloadsCommand.cs | 4 +- .../BundleFixture.cs | 59 ++++++++++++++++++++++ .../SingleExeBundle/SingleExePackageGroup.wxs | 8 +++ .../SingleExeBundle/SingleExeRemotePayload.wxs | 31 ++++++++++++ .../WixToolsetTest.CoreIntegration.csproj | 2 + 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs (limited to 'src') diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs index d0c1fdfc..42b1b5ab 100644 --- a/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs @@ -56,7 +56,7 @@ namespace WixToolset.Core.Burn.Bundles // Embedded files (aka: files from binary .wixlibs) are not content files (because they are hidden // in the .wixlib). var sourceFile = payload.SourceFile; - payload.ContentFile = !sourceFile.Embed; + payload.ContentFile = sourceFile != null && !sourceFile.Embed; this.UpdatePayloadPackagingType(payload); @@ -85,7 +85,7 @@ namespace WixToolset.Core.Burn.Bundles private void UpdatePayloadPackagingType(WixBundlePayloadTuple payload) { - if (PackagingType.Unknown == payload.Packaging) + if (!payload.Packaging.HasValue || PackagingType.Unknown == payload.Packaging) { if (!payload.Compressed.HasValue) { diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs index 31cfed34..6e66aa74 100644 --- a/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/BundleFixture.cs @@ -140,5 +140,64 @@ namespace WixToolsetTest.CoreIntegration Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb"))); } } + + [Fact] + public void CanBuildSingleExeBundle() + { + var burnStubPath = TestData.Get(@"TestData\.Data\burn.exe"); + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var exePath = Path.Combine(baseFolder, @"bin\test.exe"); + + var result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "SingleExeBundle", "SingleExePackageGroup.wxs"), + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), + "-bindpath", Path.Combine(folder, ".Data"), + "-intermediateFolder", intermediateFolder, + "-burnStub", burnStubPath, + "-o", exePath, + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(exePath)); + } + } + + [Fact] + public void CanBuildSingleExeRemotePayloadBundle() + { + var burnStubPath = TestData.Get(@"TestData\.Data\burn.exe"); + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var exePath = Path.Combine(baseFolder, @"bin\test.exe"); + + var result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "SingleExeBundle", "SingleExeRemotePayload.wxs"), + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), + "-intermediateFolder", intermediateFolder, + "-burnStub", burnStubPath, + "-o", exePath, + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(exePath)); + } + } } } diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs new file mode 100644 index 00000000..9d7a9511 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExePackageGroup.wxs @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs new file mode 100644 index 00000000..709dc9e7 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleExeBundle/SingleExeRemotePayload.wxs @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj index 13611770..60cbde85 100644 --- a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj +++ b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj @@ -117,6 +117,8 @@ + + -- cgit v1.2.3-55-g6feb