diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-03-05 18:28:01 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-03-08 15:51:55 -0600 |
commit | 7fa2390b06b643ec775d00d7938c1624f5c0fdfe (patch) | |
tree | c946ecbc67337e3df00ce27730e7eb499ab075ef /src/test | |
parent | 1f4652516a385aeeeea1558738efa0863f63c9fc (diff) | |
download | wix-7fa2390b06b643ec775d00d7938c1624f5c0fdfe.tar.gz wix-7fa2390b06b643ec775d00d7938c1624f5c0fdfe.tar.bz2 wix-7fa2390b06b643ec775d00d7938c1624f5c0fdfe.zip |
Fix parsing ProviderKey for Bundle.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs | 53 | ||||
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs | 10 |
2 files changed, 61 insertions, 2 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs index de038bde..48270ce4 100644 --- a/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs | |||
@@ -57,12 +57,61 @@ namespace WixToolsetTest.CoreIntegration | |||
57 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); | 57 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); |
58 | extractResult.AssertSuccess(); | 58 | extractResult.AssertSuccess(); |
59 | 59 | ||
60 | var provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage/burn:Provides"); | 60 | var provides = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage/burn:Provides") |
61 | .Cast<XmlElement>() | ||
62 | .Select(e => e.GetTestXml()) | ||
63 | .ToArray(); | ||
61 | WixAssert.CompareLineByLine(new string[] | 64 | WixAssert.CompareLineByLine(new string[] |
62 | { | 65 | { |
63 | "<Provides Key='UsingProvides' Imported='yes' />", | 66 | "<Provides Key='UsingProvides' Imported='yes' />", |
64 | "<Provides Key='{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}' Version='1.0.0.0' DisplayName='MsiPackage' />", | 67 | "<Provides Key='{A81D50F9-B696-4F3D-ABE0-E64D61590E5F}' Version='1.0.0.0' DisplayName='MsiPackage' />", |
65 | }, provides.Cast<XmlElement>().Select(e => e.GetTestXml()).ToArray()); | 68 | }, provides); |
69 | } | ||
70 | } | ||
71 | |||
72 | [Fact] | ||
73 | public void CanBuildBundleWithCustomProviderKey() | ||
74 | { | ||
75 | var folder = TestData.Get(@"TestData"); | ||
76 | |||
77 | using (var fs = new DisposableFileSystem()) | ||
78 | { | ||
79 | var baseFolder = fs.GetFolder(); | ||
80 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
81 | var binFolder = Path.Combine(baseFolder, "bin"); | ||
82 | var bundlePath = Path.Combine(binFolder, "test.exe"); | ||
83 | var baFolderPath = Path.Combine(baseFolder, "ba"); | ||
84 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | ||
85 | |||
86 | var result = WixRunner.Execute(new[] | ||
87 | { | ||
88 | "build", | ||
89 | Path.Combine(folder, "Dependency", "CustomProviderKeyBundle.wxs"), | ||
90 | Path.Combine(folder, "BundleWithPackageGroupRef", "MinimalPackageGroup.wxs"), | ||
91 | "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), | ||
92 | "-intermediateFolder", intermediateFolder, | ||
93 | "-o", bundlePath, | ||
94 | }); | ||
95 | |||
96 | result.AssertSuccess(); | ||
97 | |||
98 | Assert.True(File.Exists(bundlePath)); | ||
99 | |||
100 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); | ||
101 | extractResult.AssertSuccess(); | ||
102 | |||
103 | var ignoreAttributesByElementName = new Dictionary<string, List<string>> | ||
104 | { | ||
105 | { "Registration", new List<string> { "Id" } }, | ||
106 | }; | ||
107 | var registration = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Registration") | ||
108 | .Cast<XmlElement>() | ||
109 | .Select(e => e.GetTestXml(ignoreAttributesByElementName)) | ||
110 | .ToArray(); | ||
111 | WixAssert.CompareLineByLine(new string[] | ||
112 | { | ||
113 | "<Registration Id='*' ExecutableName='test.exe' PerMachine='yes' Tag='' Version='1.0.0.0' ProviderKey='MyProviderKey,v1.0'><Arp Register='yes' DisplayName='BurnBundle' DisplayVersion='1.0.0.0' Publisher='Example Corporation' /></Registration>", | ||
114 | }, registration); | ||
66 | } | 115 | } |
67 | } | 116 | } |
68 | 117 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs new file mode 100644 index 00000000..6df8a7c0 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Dependency/CustomProviderKeyBundle.wxs | |||
@@ -0,0 +1,10 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
2 | <Bundle Name="BurnBundle" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="B94478B1-E1F3-4700-9CE8-6AA090854AEC" ProviderKey="MyProviderKey,v1.0"> | ||
3 | <BootstrapperApplication> | ||
4 | <BootstrapperApplicationDll SourceFile="fakeba.dll" /> | ||
5 | </BootstrapperApplication> | ||
6 | <Chain> | ||
7 | <PackageGroupRef Id="MinimalPackageGroup" /> | ||
8 | </Chain> | ||
9 | </Bundle> | ||
10 | </Wix> | ||