diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-04-24 17:46:14 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-04-25 23:06:35 -0500 |
commit | 8b7545c2b692098957cc5737e92415bbe4f7823d (patch) | |
tree | cf8b5713cbc2962b76d217d7713b6a090c3f5c20 /src/test | |
parent | 8a957275b6a1185f3b74fb31fff258be7f628347 (diff) | |
download | wix-8b7545c2b692098957cc5737e92415bbe4f7823d.tar.gz wix-8b7545c2b692098957cc5737e92415bbe4f7823d.tar.bz2 wix-8b7545c2b692098957cc5737e92415bbe4f7823d.zip |
Include LayoutOnly payloads in BootstrapperApplicationData.xml.
#6399
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs | 8 | ||||
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs | 55 |
2 files changed, 59 insertions, 4 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs index 29c741dc..6d769bd6 100644 --- a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs | |||
@@ -131,10 +131,10 @@ namespace WixToolsetTest.CoreIntegration | |||
131 | { "WixPayloadProperties", new List<string> { "Size" } }, | 131 | { "WixPayloadProperties", new List<string> { "Size" } }, |
132 | }; | 132 | }; |
133 | Assert.Equal(4, payloadElements.Count); | 133 | Assert.Equal(4, payloadElements.Count); |
134 | Assert.Equal("<WixPayloadProperties Package='credwiz.exe' Payload='SourceFilePayload' Container='WixAttachedContainer' Name='SharedPayloadsBetweenPackages.wxs' Size='*' LayoutOnly='no' />", payloadElements[0].GetTestXml(ignoreAttributesByElementName)); | 134 | Assert.Equal("<WixPayloadProperties Package='credwiz.exe' Payload='SourceFilePayload' Container='WixAttachedContainer' Name='SharedPayloadsBetweenPackages.wxs' Size='*' />", payloadElements[0].GetTestXml(ignoreAttributesByElementName)); |
135 | Assert.Equal("<WixPayloadProperties Package='credwiz.exe' Payload='credwiz.exe' Container='WixAttachedContainer' Name='credwiz.exe' Size='*' LayoutOnly='no' />", payloadElements[1].GetTestXml(ignoreAttributesByElementName)); | 135 | Assert.Equal("<WixPayloadProperties Package='credwiz.exe' Payload='credwiz.exe' Container='WixAttachedContainer' Name='credwiz.exe' Size='*' />", payloadElements[1].GetTestXml(ignoreAttributesByElementName)); |
136 | Assert.Equal("<WixPayloadProperties Package='cscript.exe' Payload='SourceFilePayload' Container='WixAttachedContainer' Name='SharedPayloadsBetweenPackages.wxs' Size='*' LayoutOnly='no' />", payloadElements[2].GetTestXml(ignoreAttributesByElementName)); | 136 | Assert.Equal("<WixPayloadProperties Package='cscript.exe' Payload='SourceFilePayload' Container='WixAttachedContainer' Name='SharedPayloadsBetweenPackages.wxs' Size='*' />", payloadElements[2].GetTestXml(ignoreAttributesByElementName)); |
137 | Assert.Equal("<WixPayloadProperties Package='cscript.exe' Payload='cscript.exe' Container='WixAttachedContainer' Name='cscript.exe' Size='*' LayoutOnly='no' />", payloadElements[3].GetTestXml(ignoreAttributesByElementName)); | 137 | Assert.Equal("<WixPayloadProperties Package='cscript.exe' Payload='cscript.exe' Container='WixAttachedContainer' Name='cscript.exe' Size='*' />", payloadElements[3].GetTestXml(ignoreAttributesByElementName)); |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs index ffeda069..ff48ee05 100644 --- a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs | |||
@@ -254,6 +254,61 @@ namespace WixToolsetTest.CoreIntegration | |||
254 | } | 254 | } |
255 | } | 255 | } |
256 | 256 | ||
257 | [Fact] | ||
258 | public void PopulatesBAManifestWithLayoutOnlyPayloads() | ||
259 | { | ||
260 | var folder = TestData.Get(@"TestData"); | ||
261 | |||
262 | using (var fs = new DisposableFileSystem()) | ||
263 | { | ||
264 | var baseFolder = fs.GetFolder(); | ||
265 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
266 | var binFolder = Path.Combine(baseFolder, "bin"); | ||
267 | var bundlePath = Path.Combine(binFolder, "test.exe"); | ||
268 | var baFolderPath = Path.Combine(baseFolder, "ba"); | ||
269 | var extractFolderPath = Path.Combine(baseFolder, "extract"); | ||
270 | |||
271 | this.BuildMsis(folder, intermediateFolder, binFolder); | ||
272 | |||
273 | var result = WixRunner.Execute(false, new[] | ||
274 | { | ||
275 | "build", | ||
276 | Path.Combine(folder, "Container", "LayoutPayloadInContainer.wxs"), | ||
277 | "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), | ||
278 | "-bindpath", binFolder, | ||
279 | "-intermediateFolder", intermediateFolder, | ||
280 | "-o", bundlePath | ||
281 | }); | ||
282 | |||
283 | WixAssert.CompareLineByLine(new string[] | ||
284 | { | ||
285 | "The layout-only Payload 'SharedPayload' is being added to Container 'FirstX64'. It will not be extracted during layout.", | ||
286 | }, result.Messages.Select(m => m.ToString()).ToArray()); | ||
287 | result.AssertSuccess(); | ||
288 | |||
289 | Assert.True(File.Exists(bundlePath)); | ||
290 | |||
291 | var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); | ||
292 | extractResult.AssertSuccess(); | ||
293 | |||
294 | var ignoreAttributesByElementName = new Dictionary<string, List<string>> | ||
295 | { | ||
296 | { "WixPayloadProperties", new List<string> { "Size" } }, | ||
297 | }; | ||
298 | var payloads = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPayloadProperties") | ||
299 | .Cast<XmlElement>() | ||
300 | .Select(e => e.GetTestXml(ignoreAttributesByElementName)) | ||
301 | .ToArray(); | ||
302 | WixAssert.CompareLineByLine(new string[] | ||
303 | { | ||
304 | "<WixPayloadProperties Package='FirstX64.msi' Payload='FirstX64.msi' Container='FirstX64' Name='FirstX64.msi' Size='*' />", | ||
305 | "<WixPayloadProperties Package='FirstX64.msi' Payload='SharedPayload' Container='FirstX64' Name='LayoutPayloadInContainer.wxs' Size='*' />", | ||
306 | "<WixPayloadProperties Package='FirstX64.msi' Payload='fC0n41rZK8oW3JK8LzHu6AT3CjdQ' Container='FirstX64' Name='PFiles\\MsiPackage\\test.txt' Size='*' />", | ||
307 | "<WixPayloadProperties Payload='SharedPayload' Container='FirstX64' Name='LayoutPayloadInContainer.wxs' Size='*' />", | ||
308 | }, payloads); | ||
309 | } | ||
310 | } | ||
311 | |||
257 | private void BuildMsis(string folder, string intermediateFolder, string binFolder) | 312 | private void BuildMsis(string folder, string intermediateFolder, string binFolder) |
258 | { | 313 | { |
259 | var result = WixRunner.Execute(new[] | 314 | var result = WixRunner.Execute(new[] |