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 | |
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')
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 | ||