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/DependencyExtensionFixture.cs | |
| 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/DependencyExtensionFixture.cs')
| -rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs | 60 |
1 files changed, 59 insertions, 1 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 }); |
