From 44fb31d655bc5860d45e3acd4cd0cbfaaf5f12eb Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 14 May 2019 14:19:34 -0400 Subject: Add Component/@Shared and fix UninstallWhenSuperseded --- .../WixToolsetTest.CoreIntegration/MsiFixture.cs | 39 +++++++++++++++++++++- .../TestData/SingleFile/PackageComponents.wxs | 17 ++++++---- .../WixiplFixture.cs | 2 +- .../WixlibFixture.cs | 2 +- 4 files changed, 50 insertions(+), 10 deletions(-) (limited to 'src/test/WixToolsetTest.CoreIntegration') diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs index 3e66ad0a..0aabc5a9 100644 --- a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs @@ -43,7 +43,7 @@ namespace WixToolsetTest.CoreIntegration var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir")); var section = intermediate.Sections.Single(); - var wixFile = section.Tuples.OfType().Single(); + var wixFile = section.Tuples.OfType().First(); Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); } @@ -539,6 +539,43 @@ namespace WixToolsetTest.CoreIntegration } } + [Fact] + public void CanBuildSharedComponent() + { + var folder = TestData.Get(@"TestData\SingleFile"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + + var result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "Package.wxs"), + Path.Combine(folder, "PackageComponents.wxs"), + "-loc", Path.Combine(folder, "Package.en-us.wxl"), + "-bindpath", Path.Combine(folder, "data"), + "-intermediateFolder", intermediateFolder, + "-arch", "x64", + "-o", Path.Combine(baseFolder, @"bin\test.msi") + }); + + result.AssertSuccess(); + + var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir")); + var section = intermediate.Sections.Single(); + + // Only one component is shared. + var sharedComponentTuples = section.Tuples.OfType(); + Assert.Equal(1, sharedComponentTuples.Sum(t => t.Shared ? 1 : 0)); + + // And it is this one. + var sharedComponentTuple = sharedComponentTuples.Single(t => t.Id.Id == "Shared.dll"); + Assert.True(sharedComponentTuple.Shared); + } + } + [Fact] public void CanBuildSetProperty() { diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs index e26c4509..b8e9f59c 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SingleFile/PackageComponents.wxs @@ -1,10 +1,13 @@ - - - - - - - + + + + + + + + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs index c52fa68f..391b7021 100644 --- a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs @@ -50,7 +50,7 @@ namespace WixToolsetTest.CoreIntegration var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"obj\test.wir")); var section = intermediate.Sections.Single(); - var wixFile = section.Tuples.OfType().Single(); + var wixFile = section.Tuples.OfType().First(); Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); } diff --git a/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs index 532f158d..07044a1f 100644 --- a/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs @@ -50,7 +50,7 @@ namespace WixToolsetTest.CoreIntegration var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"obj\test.wir")); var section = intermediate.Sections.Single(); - var wixFile = section.Tuples.OfType().Single(); + var wixFile = section.Tuples.OfType().First(); Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path); Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path); } -- cgit v1.2.3-55-g6feb