aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-03-05 17:38:14 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-03-08 15:51:55 -0600
commit1f4652516a385aeeeea1558738efa0863f63c9fc (patch)
tree5a0491726c6898ad3b6a99b6caf66ba639a691ae /src/test
parent24082aafc87c9cc3ed22749e6b21d80e0d3e6ced (diff)
downloadwix-1f4652516a385aeeeea1558738efa0863f63c9fc.tar.gz
wix-1f4652516a385aeeeea1558738efa0863f63c9fc.tar.bz2
wix-1f4652516a385aeeeea1558738efa0863f63c9fc.zip
Fix harvesting providers from MSI packages.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs60
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/UsingProvidesBundle.wxs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs2
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
3namespace WixToolsetTest.CoreIntegration 3namespace 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