aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-04-24 17:46:14 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-04-25 23:06:35 -0500
commit8b7545c2b692098957cc5737e92415bbe4f7823d (patch)
treecf8b5713cbc2962b76d217d7713b6a090c3f5c20 /src/test
parent8a957275b6a1185f3b74fb31fff258be7f628347 (diff)
downloadwix-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.cs8
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs55
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[]