From ed20ef6dc8caa5d585c1a715ff4ba577687bf291 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Sat, 27 Feb 2021 16:28:42 -0600 Subject: Add failing tests for package description and packages sharing payloads In Core projects, treat warnings as errors. --- .../BundleManifestFixture.cs | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) (limited to 'src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs') diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs index ae83150a..3829cdf0 100644 --- a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs @@ -51,6 +51,93 @@ namespace WixToolsetTest.CoreIntegration } } + [Fact(Skip = "Test demonstrates failure")] + public void PopulatesBAManifestWithPackageInformation() + { + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var bundlePath = Path.Combine(baseFolder, @"bin\test.exe"); + var baFolderPath = Path.Combine(baseFolder, "ba"); + var extractFolderPath = Path.Combine(baseFolder, "extract"); + + var result = WixRunner.Execute(false, new[] + { + "build", + Path.Combine(folder, "CustomPackageDescription", "CustomPackageDescription.wxs"), + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), + "-bindpath", Path.Combine(folder, ".Data"), + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), + "-intermediateFolder", intermediateFolder, + "-o", bundlePath + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(bundlePath)); + + var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); + extractResult.AssertSuccess(); + + var packageElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPackageProperties"); + var ignoreAttributesByElementName = new Dictionary> + { + { "WixPackageProperties", new List { "DownloadSize", "PackageSize", "InstalledSize", "Version" } }, + }; + Assert.Equal(3, packageElements.Count); + Assert.Equal("", packageElements[0].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", packageElements[1].GetTestXml()); + Assert.Equal("", packageElements[2].GetTestXml(ignoreAttributesByElementName)); + } + } + + [Fact(Skip = "Test demonstrates failure")] + public void PopulatesBAManifestWithPayloadInformation() + { + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var bundlePath = Path.Combine(baseFolder, @"bin\test.exe"); + var baFolderPath = Path.Combine(baseFolder, "ba"); + var extractFolderPath = Path.Combine(baseFolder, "extract"); + + var result = WixRunner.Execute(false, new[] + { + "build", + Path.Combine(folder, "SharedPayloadsBetweenPackages", "SharedPayloadsBetweenPackages.wxs"), + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), + "-bindpath", Path.Combine(folder, ".Data"), + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), + "-intermediateFolder", intermediateFolder, + "-o", bundlePath + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(bundlePath)); + + var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); + extractResult.AssertSuccess(); + + var payloadElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPayloadProperties"); + var ignoreAttributesByElementName = new Dictionary> + { + { "WixPayloadProperties", new List { "Size" } }, + }; + Assert.Equal(4, payloadElements.Count); + Assert.Equal("", payloadElements[0].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", payloadElements[1].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", payloadElements[2].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", payloadElements[3].GetTestXml(ignoreAttributesByElementName)); + } + } + [Fact] public void PopulatesBEManifestWithBundleExtensionBundleCustomData() { @@ -191,6 +278,48 @@ namespace WixToolsetTest.CoreIntegration } } + [Fact(Skip = "Test demonstrates failure")] + public void PopulatesManifestWithExePackages() + { + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var bundlePath = Path.Combine(baseFolder, @"bin\test.exe"); + var baFolderPath = Path.Combine(baseFolder, "ba"); + var extractFolderPath = Path.Combine(baseFolder, "extract"); + + var result = WixRunner.Execute(false, new[] + { + "build", + Path.Combine(folder, "SharedPayloadsBetweenPackages", "SharedPayloadsBetweenPackages.wxs"), + Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), + "-bindpath", Path.Combine(folder, ".Data"), + "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), + "-intermediateFolder", intermediateFolder, + "-o", bundlePath + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(bundlePath)); + + var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); + extractResult.AssertSuccess(); + + var exePackageElements = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:ExePackage"); + var ignoreAttributesByElementName = new Dictionary> + { + { "ExePackage", new List { "CacheId", "InstallSize", "Size" } }, + }; + Assert.Equal(2, exePackageElements.Count); + Assert.Equal("", exePackageElements[0].GetTestXml(ignoreAttributesByElementName)); + Assert.Equal("", exePackageElements[1].GetTestXml(ignoreAttributesByElementName)); + } + } + [Fact] public void PopulatesManifestWithSetVariables() { -- cgit v1.2.3-55-g6feb