From 722ffb41bb83879d3e086b6faffd45ee38c5a5b6 Mon Sep 17 00:00:00 2001 From: Andrij Abyzov Date: Thu, 4 Mar 2021 00:43:32 +0100 Subject: Create unit test for WixVariable resolution issue #6376 --- .../TestData/WixVariableOverride/Package.en-us.wxl | 11 +++++ .../TestData/WixVariableOverride/Package.wxs | 21 ++++++++ .../WixVariableOverride/PackageComponents.wxs | 14 ++++++ .../TestData/WixVariableOverride/data/test.txt | 1 + .../TestData/WixVariableOverride/data/test2.txt | 1 + .../WixlibFixture.cs | 57 ++++++++++++++++++++++ 6 files changed, 105 insertions(+) create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt create mode 100644 src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt (limited to 'src') diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl new file mode 100644 index 00000000..38c12ac1 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.en-us.wxl @@ -0,0 +1,11 @@ + + + + + + A newer version of [ProductName] is already installed. + MsiPackage + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs new file mode 100644 index 00000000..e1cf7394 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/Package.wxs @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs new file mode 100644 index 00000000..df867923 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/PackageComponents.wxs @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt new file mode 100644 index 00000000..cd0db0e1 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test.txt @@ -0,0 +1 @@ +This is test.txt. \ No newline at end of file diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt new file mode 100644 index 00000000..eab3a9b5 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/WixVariableOverride/data/test2.txt @@ -0,0 +1 @@ +This is test2.txt. \ No newline at end of file diff --git a/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs index 6ae2c0b8..52460843 100644 --- a/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs @@ -144,6 +144,63 @@ namespace WixToolsetTest.CoreIntegration } } + [Fact(Skip = "https://github.com/wixtoolset/issues/issues/6376")] + public void CanOverridePathWixVariable() + { + var folder = TestData.Get(@"TestData\WixVariableOverride"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib"); + + var result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "PackageComponents.wxs"), + "-bf", + "-bindpath", Path.Combine(folder, "data"), + "-intermediateFolder", intermediateFolder, + "-o", wixlibPath, + }); + + result.AssertSuccess(); + + var wixlib = Intermediate.Load(wixlibPath); + + Assert.True(wixlib.HasLevel(IntermediateLevels.Compiled)); + Assert.True(wixlib.HasLevel(IntermediateLevels.Combined)); + Assert.False(wixlib.HasLevel(IntermediateLevels.Linked)); + Assert.False(wixlib.HasLevel(IntermediateLevels.Resolved)); + + result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "Package.wxs"), + "-loc", Path.Combine(folder, "Package.en-us.wxl"), + "-lib", Path.Combine(intermediateFolder, @"test.wixlib"), + "-bindpath", Path.Combine(folder, "data"), + "-intermediateFolder", intermediateFolder, + "-o", Path.Combine(baseFolder, @"bin\test.msi") + }); + + result.AssertSuccess(); + + var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); + + Assert.False(intermediate.HasLevel(IntermediateLevels.Compiled)); + Assert.False(intermediate.HasLevel(IntermediateLevels.Combined)); + Assert.True(intermediate.HasLevel(IntermediateLevels.Linked)); + Assert.True(intermediate.HasLevel(IntermediateLevels.Resolved)); + + var section = intermediate.Sections.Single(); + + var wixFile = section.Symbols.OfType().First(); + Assert.Equal(Path.Combine(folder, @"data\test2.txt"), wixFile.Data.Path); + } + } + [Fact] public void CanBuildWithExtensionUsingWixlib() { -- cgit v1.2.3-55-g6feb