From 592c6e2f7407c291a7bf9ef4c8ce50da9798cc68 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 3 May 2021 17:00:34 -0700 Subject: Move UI.wixext into ext --- .../test/WixToolsetTest.UI/UIExtensionFixture.cs | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs (limited to 'src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs') diff --git a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs new file mode 100644 index 00000000..54c4c788 --- /dev/null +++ b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs @@ -0,0 +1,111 @@ +// 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.UI +{ + using System.Linq; + using WixBuildTools.TestSupport; + using WixToolset.Core.TestPackage; + using WixToolset.UI; + using Xunit; + + public class UIExtensionFixture + { + [Fact] + public void CanBuildUsingWixUIAdvanced() + { + var folder = TestData.Get(@"TestData\WixUI_Advanced"); + var bindFolder = TestData.Get(@"TestData\data"); + var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); + + var results = build.BuildAndQuery(Build, "Property"); + Assert.Equal(new[] + { + "Property:WixUI_Mode\tAdvanced", + }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray()); + } + + [Fact] + public void CanBuildUsingWixUIFeatureTree() + { + var folder = TestData.Get(@"TestData\WixUI_FeatureTree"); + var bindFolder = TestData.Get(@"TestData\data"); + var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); + + var results = build.BuildAndQuery(Build, "Property"); + Assert.Equal(new[] + { + "Property:WixUI_Mode\tFeatureTree", + }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray()); + } + + [Fact] + public void CanBuildUsingWixUIInstallDir() + { + var folder = TestData.Get(@"TestData\WixUI_InstallDir"); + var bindFolder = TestData.Get(@"TestData\data"); + var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); + + var results = build.BuildAndQuery(Build, "Property"); + Assert.Equal(new[] + { + "Property:WixUI_Mode\tInstallDir", + }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray()); + } + + [Fact] + public void CanBuildUsingWixUIMinimal() + { + var folder = TestData.Get(@"TestData\WixUI_Minimal"); + var bindFolder = TestData.Get(@"TestData\data"); + var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); + + var results = build.BuildAndQuery(Build, "Property"); + Assert.Equal(new[] + { + "Property:WixUI_Mode\tMinimal", + }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray()); + } + + [Fact] + public void CanBuildUsingWixUIMondo() + { + var folder = TestData.Get(@"TestData\WixUI_Mondo"); + var bindFolder = TestData.Get(@"TestData\data"); + var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); + + var results = build.BuildAndQuery(Build, "Property"); + Assert.Equal(new[] + { + "Property:WixUI_Mode\tMondo", + }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray()); + } + + [Fact] + public void CanBuildUsingWixUIMondoLocalized() + { + var folder = TestData.Get(@"TestData\WixUI_Mondo"); + var bindFolder = TestData.Get(@"TestData\data"); + var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); + + var results = build.BuildAndQuery(BuildInGerman, "Control"); + Assert.Equal(new[] + { + "&Ja", + }, results.Where(s => s.StartsWith("Control:ErrorDlg\tY")).Select(s => s.Split('\t')[9]).ToArray()); + } + + private static void Build(string[] args) + { + var result = WixRunner.Execute(args) + .AssertSuccess(); + } + + private static void BuildInGerman(string[] args) + { + var localizedArgs = args.Append("-culture").Append("de-DE").ToArray(); + + var result = WixRunner.Execute(localizedArgs) + .AssertSuccess(); + } + } +} -- cgit v1.2.3-55-g6feb