From ab8d368fe8e7a41e503ec295b196035922293ef4 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 27 Apr 2023 21:06:35 -0400 Subject: Fix XmlConfig lookup logic. Fixes https://github.com/wixtoolset/issues/issues/7377. Requires fix for https://github.com/wixtoolset/issues/issues/7444. --- .../TestData/XmlConfigTests/XmlConfig/Package.wxs | 27 +++++++++++ .../XmlConfigTests/XmlConfig/XmlConfig.wixproj | 6 +++ .../msi/TestData/XmlConfigTests/XmlConfig/my.xml | 11 +++++ .../msi/WixToolsetTest.MsiE2E/XmlConfigTests.cs | 54 ++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 src/test/msi/TestData/XmlConfigTests/XmlConfig/Package.wxs create mode 100644 src/test/msi/TestData/XmlConfigTests/XmlConfig/XmlConfig.wixproj create mode 100644 src/test/msi/TestData/XmlConfigTests/XmlConfig/my.xml create mode 100644 src/test/msi/WixToolsetTest.MsiE2E/XmlConfigTests.cs (limited to 'src/test') diff --git a/src/test/msi/TestData/XmlConfigTests/XmlConfig/Package.wxs b/src/test/msi/TestData/XmlConfigTests/XmlConfig/Package.wxs new file mode 100644 index 00000000..e5223ea8 --- /dev/null +++ b/src/test/msi/TestData/XmlConfigTests/XmlConfig/Package.wxs @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/msi/TestData/XmlConfigTests/XmlConfig/XmlConfig.wixproj b/src/test/msi/TestData/XmlConfigTests/XmlConfig/XmlConfig.wixproj new file mode 100644 index 00000000..58321e7e --- /dev/null +++ b/src/test/msi/TestData/XmlConfigTests/XmlConfig/XmlConfig.wixproj @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/test/msi/TestData/XmlConfigTests/XmlConfig/my.xml b/src/test/msi/TestData/XmlConfigTests/XmlConfig/my.xml new file mode 100644 index 00000000..3f44c27c --- /dev/null +++ b/src/test/msi/TestData/XmlConfigTests/XmlConfig/my.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/test/msi/WixToolsetTest.MsiE2E/XmlConfigTests.cs b/src/test/msi/WixToolsetTest.MsiE2E/XmlConfigTests.cs new file mode 100644 index 00000000..9b90cf46 --- /dev/null +++ b/src/test/msi/WixToolsetTest.MsiE2E/XmlConfigTests.cs @@ -0,0 +1,54 @@ +// 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.MsiE2E; + +using System; +using System.IO; +using System.Xml.Linq; +using WixTestTools; +using Xunit; +using Xunit.Abstractions; + +public class XmlConfigTests : MsiE2ETests +{ + public XmlConfigTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) + { + } + + [RuntimeFact] + public void CanModifyXmlFileWithXmlConfig() + { + var product = this.CreatePackageInstaller("XmlConfig"); + + product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); + + // Validate the expected changes in my.xml. + var myXmlPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "XmlConfig", "my.xml"); + var content = File.ReadAllText(myXmlPath); + var xDoc = XDocument.Parse(content); + + var xRoot = xDoc.Element("root"); + var xChild1 = xRoot.Element("child1"); + Assert.NotNull(xChild1); + + var xGrandchild1 = xChild1.Element("grandchild1"); + Assert.Null(xGrandchild1); + + var xChild2 = xRoot.Element("child2"); + Assert.NotNull(xChild2); + + var xGrandchild3 = xChild2.Element("grandchild3"); + Assert.NotNull(xGrandchild3); + Assert.True(xGrandchild3.HasAttributes); + + var xAttribute1 = xGrandchild3.Attribute("TheAttribute1"); + Assert.NotNull(xAttribute1); + Assert.Equal("AttributeValue1", xAttribute1.Value); + + var xAttribute2 = xGrandchild3.Attribute("TheAttribute2"); + Assert.NotNull(xAttribute2); + Assert.Equal("AttributeValue2", xAttribute2.Value); + + product.UninstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); + } +} -- cgit v1.2.3-55-g6feb