From 8cf0427984a88b0b3ddfb2061e5be721afffe82e Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 22 Apr 2021 17:19:56 -0700 Subject: Move Core into wix --- .../ContainerFixture.cs | 385 --------------------- 1 file changed, 385 deletions(-) delete mode 100644 src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs (limited to 'src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs') diff --git a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs deleted file mode 100644 index dd381dfe..00000000 --- a/src/test/WixToolsetTest.CoreIntegration/ContainerFixture.cs +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. - -namespace WixToolsetTest.CoreIntegration -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Xml; - using WixBuildTools.TestSupport; - using WixToolset.Core; - using WixToolset.Core.Burn; - using WixToolset.Core.TestPackage; - using Xunit; - - public class ContainerFixture - { - [Fact(Skip = "Test demonstrates failure")] - public void CanBuildWithCustomAttachedContainer() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder, buildToSubfolder: true); - - var result = WixRunner.Execute(new[] - { - "build", - Path.Combine(folder, "Container", "HarvestIntoAttachedContainer.wxs"), - Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - result.AssertSuccess(); - - Assert.True(File.Exists(bundlePath)); - - var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); - extractResult.AssertSuccess(); - - var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload"); - Assert.Equal(4, payloads.Count); - var ignoreAttributes = new Dictionary> { { "Payload", new List { "FileSize", "Hash" } } }; - Assert.Equal(@"", payloads[0].GetTestXml(ignoreAttributes)); - Assert.Equal(@"", payloads[1].GetTestXml(ignoreAttributes)); - Assert.Equal(@"", payloads[2].GetTestXml(ignoreAttributes)); - Assert.Equal(@"", payloads[3].GetTestXml(ignoreAttributes)); - } - } - - [Fact] - public void HarvestedPayloadsArePutInCorrectContainer() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder); - - var result = WixRunner.Execute(new[] - { - "build", - Path.Combine(folder, "Container", "HarvestIntoDetachedContainer.wxs"), - Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - result.AssertSuccess(); - - Assert.True(File.Exists(bundlePath)); - - var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); - extractResult.AssertSuccess(); - - var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload"); - Assert.Equal(4, payloads.Count); - var ignoreAttributes = new Dictionary> { { "Payload", new List { "FileSize", "Hash" } } }; - Assert.Equal(@"", payloads[0].GetTestXml(ignoreAttributes)); - Assert.Equal(@"", payloads[1].GetTestXml(ignoreAttributes)); - Assert.Equal(@"", payloads[2].GetTestXml(ignoreAttributes)); - Assert.Equal(@"", payloads[3].GetTestXml(ignoreAttributes)); - } - } - - [Fact] - public void HarvestedPayloadsArePutInCorrectPackage() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder); - - var result = WixRunner.Execute(new[] - { - "build", - Path.Combine(folder, "Container", "HarvestIntoDetachedContainer.wxs"), - Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - result.AssertSuccess(); - - Assert.True(File.Exists(bundlePath)); - - var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); - extractResult.AssertSuccess(); - - var ignoreAttributes = new Dictionary> - { - { "MsiPackage", new List { "CacheId", "InstallSize", "Size", "ProductCode" } }, - { "Provides", new List { "Key" } }, - }; - var msiPackages = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Chain/burn:MsiPackage") - .Cast() - .Select(e => e.GetTestXml(ignoreAttributes)) - .ToArray(); - WixAssert.CompareLineByLine(new string[] - { - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "", - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "", - }, msiPackages); - } - } - - [Fact] - public void LayoutPayloadIsPutInContainer() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder); - - var result = WixRunner.Execute(false, new[] - { - "build", - Path.Combine(folder, "Container", "LayoutPayloadInContainer.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - WixAssert.CompareLineByLine(new string[] - { - "The layout-only Payload 'SharedPayload' is being added to Container 'FirstX64'. It will not be extracted during layout.", - }, result.Messages.Select(m => m.ToString()).ToArray()); - result.AssertSuccess(); - - Assert.True(File.Exists(bundlePath)); - - var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); - extractResult.AssertSuccess(); - - var ignoreAttributes = new Dictionary> { { "Payload", new List { "FileSize", "Hash" } } }; - var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='SharedPayload']") - .Cast() - .Select(e => e.GetTestXml(ignoreAttributes)) - .ToArray(); - WixAssert.CompareLineByLine(new string[] - { - "", - }, payloads); - } - } - - [Fact] - public void MultipleAttachedContainersAreNotCurrentlySupported() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder); - - var result = WixRunner.Execute(new[] - { - "build", - Path.Combine(folder, "Container", "MultipleAttachedContainers.wxs"), - Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - Assert.Equal((int)BurnBackendErrors.Ids.MultipleAttachedContainersUnsupported, result.ExitCode); - } - } - - [Fact] - public void PayloadIsNotPutInMultipleContainers() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder); - - var result = WixRunner.Execute(false, new[] - { - "build", - Path.Combine(folder, "Container", "PayloadInMultipleContainers.wxs"), - Path.Combine(folder, "BundleWithPackageGroupRef", "Bundle.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - WixAssert.CompareLineByLine(new string[] - { - "The Payload 'SharedPayload' can't be added to Container 'FirstX64' because it was already added to Container 'FirstX86'.", - }, result.Messages.Select(m => m.ToString()).ToArray()); - result.AssertSuccess(); - - Assert.True(File.Exists(bundlePath)); - - var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); - extractResult.AssertSuccess(); - - var ignoreAttributes = new Dictionary> { { "Payload", new List { "FileSize", "Hash" } } }; - var payloads = extractResult.SelectManifestNodes("/burn:BurnManifest/burn:Payload[@Id='SharedPayload']") - .Cast() - .Select(e => e.GetTestXml(ignoreAttributes)) - .ToArray(); - WixAssert.CompareLineByLine(new string[] - { - "", - }, payloads); - } - } - - [Fact] - public void PopulatesBAManifestWithLayoutOnlyPayloads() - { - var folder = TestData.Get(@"TestData"); - - using (var fs = new DisposableFileSystem()) - { - var baseFolder = fs.GetFolder(); - var intermediateFolder = Path.Combine(baseFolder, "obj"); - var binFolder = Path.Combine(baseFolder, "bin"); - var bundlePath = Path.Combine(binFolder, "test.exe"); - var baFolderPath = Path.Combine(baseFolder, "ba"); - var extractFolderPath = Path.Combine(baseFolder, "extract"); - - this.BuildMsis(folder, intermediateFolder, binFolder); - - var result = WixRunner.Execute(false, new[] - { - "build", - Path.Combine(folder, "Container", "LayoutPayloadInContainer.wxs"), - "-bindpath", Path.Combine(folder, "SimpleBundle", "data"), - "-bindpath", binFolder, - "-intermediateFolder", intermediateFolder, - "-o", bundlePath - }); - - WixAssert.CompareLineByLine(new string[] - { - "The layout-only Payload 'SharedPayload' is being added to Container 'FirstX64'. It will not be extracted during layout.", - }, result.Messages.Select(m => m.ToString()).ToArray()); - result.AssertSuccess(); - - Assert.True(File.Exists(bundlePath)); - - var extractResult = BundleExtractor.ExtractBAContainer(null, bundlePath, baFolderPath, extractFolderPath); - extractResult.AssertSuccess(); - - var ignoreAttributesByElementName = new Dictionary> - { - { "WixPayloadProperties", new List { "Size" } }, - }; - var payloads = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:WixPayloadProperties") - .Cast() - .Select(e => e.GetTestXml(ignoreAttributesByElementName)) - .ToArray(); - WixAssert.CompareLineByLine(new string[] - { - "", - "", - "", - "", - }, payloads); - } - } - - private void BuildMsis(string folder, string intermediateFolder, string binFolder, bool buildToSubfolder = false) - { - var result = WixRunner.Execute(new[] - { - "build", - Path.Combine(folder, "MsiTransaction", "FirstX86.wxs"), - Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"), - Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), - "-bindpath", Path.Combine(folder, "SingleFile", "data"), - "-intermediateFolder", intermediateFolder, - "-o", Path.Combine(binFolder, buildToSubfolder ? "FirstX86" : ".", "FirstX86.msi"), - }); - - result.AssertSuccess(); - - result = WixRunner.Execute(new[] - { - "build", - Path.Combine(folder, "MsiTransaction", "FirstX64.wxs"), - Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"), - Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), - "-bindpath", Path.Combine(folder, "SingleFile", "data"), - "-intermediateFolder", intermediateFolder, - "-o", Path.Combine(binFolder, buildToSubfolder ? "FirstX64" : ".", "FirstX64.msi"), - }); - - result.AssertSuccess(); - } - } -} -- cgit v1.2.3-55-g6feb