diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2021-03-05 17:38:14 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2021-03-08 15:51:55 -0600 |
| commit | 1f4652516a385aeeeea1558738efa0863f63c9fc (patch) | |
| tree | 5a0491726c6898ad3b6a99b6caf66ba639a691ae /src/test/WixToolsetTest.CoreIntegration | |
| parent | 24082aafc87c9cc3ed22749e6b21d80e0d3e6ced (diff) | |
| download | wix-1f4652516a385aeeeea1558738efa0863f63c9fc.tar.gz wix-1f4652516a385aeeeea1558738efa0863f63c9fc.tar.bz2 wix-1f4652516a385aeeeea1558738efa0863f63c9fc.zip | |
Fix harvesting providers from MSI packages.
Diffstat (limited to 'src/test/WixToolsetTest.CoreIntegration')
3 files changed, 68 insertions, 2 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs index 14eb8ff7..de038bde 100644 --- a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs | |||
| @@ -2,6 +2,10 @@ | |||
| 2 | 2 | ||
| 3 | namespace WixToolsetTest.CoreIntegration | 3 | namespace WixToolsetTest.CoreIntegration |
| 4 | { | 4 | { |
| 5 | using System.Collections.Generic; | ||
| 6 | using System.IO; | ||
| 7 | using System.Linq; | ||
| 8 | using System.Xml; | ||
| 5 | using WixBuildTools.TestSupport; | 9 | using WixBuildTools.TestSupport; |
| 6 | using WixToolset.Core.TestPackage; | 10 | using WixToolset.Core.TestPackage; |
| 7 | using Xunit; | 11 | using Xunit; |
| @@ -9,7 +13,61 @@ namespace WixToolsetTest.CoreIntegration | |||
| 9 | public class DependencyExtensionFixture | 13 | public class DependencyExtensionFixture |
| 10 | { | 14 | { |
| 11 | [Fact] | 15 | [Fact] |
| 12 | public void CanBuildUsingProvides() | 16 | public void CanBuildBundleUsingMsiWithProvides() |
| 17 | { | ||
| 18 | var folder = TestData.Get(@"TestData"); | ||
| 19 | |||
| 20 | using (var fs = new DisposableFileSystem()) | ||
| 21 | { | ||
| 22 | var baseFolder = fs.GetFolder(); | ||
| 23 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 24 | var binFolder = Path.Combine(baseFolder, "bin"); | ||
| 25 | var bundlePath = Path.Combine(binFolder, "test.exe"); | ||
| 26 | var baFolderPath = Path.Combine(baseFolder, "ba"); | ||
| 27 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | ||
| 28 | |||
| 29 | var result = WixRunner.Execute(new[] | ||
| 30 | { | ||
| 31 | "build", | ||
| 32 | Path.Combine(folder, "UsingProvides", "Package.wxs"), | ||
| 33 | Path.Combine(folder, "UsingProvides", "PackageComponents.wxs"), | ||
| 34 | "-loc", Path.Combine(folder, "UsingProvides", "Package.en-us.wxl"), | ||
| 35 | "-bindpath", Path.Combine(folder, "UsingProvides"), | ||
| 36 | "-intermediateFolder", intermediateFolder, | ||
| 37 | "-o", Path.Combine(binFolder, "UsingProvides.msi"), | ||
| 38 | }); | ||
| 39 | |||
| 40 | result.AssertSuccess(); | ||
| 41 | |||
| 42 | result = WixRunner.Execute(new[] | ||
| 43 | { | ||
| 44 | "build", | ||
| 45 | Path.Combine(folder, "Dependency", "UsingProvidesBundle.wxs"), | ||
| 46 | Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), | ||
| 47 | "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), | ||
| 48 | "-bindpath", binFolder, | ||
| 49 | "-intermediateFolder", intermediateFolder, | ||
| 50 | "-o", bundlePath, | ||
| 51 | }); | ||
| 52 | |||
| 53 | result.AssertSuccess(); | ||
| 54 | |||
| 55 | Assert.True(File.Exists(bundlePath)); | ||
| 56 | |||
| 57 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); | ||
| 58 | extractResult.AssertSuccess(); | ||
| 59 | |||
| 60 | var provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage/burn:Provides"); | ||
| 61 | WixAssert.CompareLineByLine(new string[] | ||
| 62 | { | ||
| 63 | "<Provides Key='UsingProvides' Imported='yes' />", | ||
| 64 | "<Provides Key='{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}' Version='1.0.0.0' DisplayName='MsiPackage' />", | ||
| 65 | }, provides.Cast<XmlElement>().Select(e => e.GetTestXml()).ToArray()); | ||
| 66 | } | ||
| 67 | } | ||
| 68 | |||
| 69 | [Fact] | ||
| 70 | public void CanBuildPackageUsingProvides() | ||
| 13 | { | 71 | { |
| 14 | var folder = TestData.Get(@"TestData\UsingProvides"); | 72 | var folder = TestData.Get(@"TestData\UsingProvides"); |
| 15 | var build = new Builder(folder, null, new[] { folder }); | 73 | var build = new Builder(folder, null, new[] { folder }); |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs new file mode 100644 index 00000000..9c3a9690 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
| 3 | <Fragment> | ||
| 4 | <PackageGroup Id="BundlePackages"> | ||
| 5 | <MsiPackage SourceFile="UsingProvides.msi" /> | ||
| 6 | </PackageGroup> | ||
| 7 | </Fragment> | ||
| 8 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs index 07da1215..9ddcdc90 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| 2 | <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | 2 | <Package ProductCode="{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> |
| 3 | 3 | ||
| 4 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | 4 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> |
| 5 | 5 | ||
