| 1 | // 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. |
| 2 | |
| 3 | namespace WixToolsetTest.MsiE2E; |
| 4 | |
| 5 | using System; |
| 6 | using System.IO; |
| 7 | using System.Xml.Linq; |
| 8 | using WixTestTools; |
| 9 | using Xunit; |
| 10 | using Xunit.Abstractions; |
| 11 | |
| 12 | public class XmlConfigTests : MsiE2ETests |
| 13 | { |
| 14 | public XmlConfigTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) |
| 15 | { |
| 16 | } |
| 17 | |
| 18 | [RuntimeFact] |
| 19 | public void CanModifyXmlFileWithXmlConfig() |
| 20 | { |
| 21 | var product = this.CreatePackageInstaller("XmlConfig"); |
| 22 | |
| 23 | product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); |
| 24 | |
| 25 | // Validate the expected changes in my.xml. |
| 26 | var myXmlPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "XmlConfig", "my.xml"); |
| 27 | var content = File.ReadAllText(myXmlPath); |
| 28 | var xDoc = XDocument.Parse(content); |
| 29 | |
| 30 | var xRoot = xDoc.Element("root"); |
| 31 | var xChild1 = xRoot.Element("child1"); |
| 32 | Assert.NotNull(xChild1); |
| 33 | |
| 34 | var xGrandchild1 = xChild1.Element("grandchild1"); |
| 35 | Assert.Null(xGrandchild1); |
| 36 | |
| 37 | var xChild2 = xRoot.Element("child2"); |
| 38 | Assert.NotNull(xChild2); |
| 39 | |
| 40 | var xGrandchild3 = xChild2.Element("grandchild3"); |
| 41 | Assert.NotNull(xGrandchild3); |
| 42 | Assert.True(xGrandchild3.HasAttributes); |
| 43 | |
| 44 | var xAttribute1 = xGrandchild3.Attribute("TheAttribute1"); |
| 45 | Assert.NotNull(xAttribute1); |
| 46 | Assert.Equal("AttributeValue1", xAttribute1.Value); |
| 47 | |
| 48 | var xAttribute2 = xGrandchild3.Attribute("TheAttribute2"); |
| 49 | Assert.NotNull(xAttribute2); |
| 50 | Assert.Equal("AttributeValue2", xAttribute2.Value); |
| 51 | |
| 52 | product.UninstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); |
| 53 | } |
| 54 | } |