From d1dbe29f3856d012acf5f96e8e66c43b74ab490d Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 2 Apr 2019 19:23:16 -0400 Subject: Add failing test to demonstrate ProgId bug. When a parent ProgId has Advertise="yes" and a child ProgId omits Advertise, the compiler assumes it's a non-advertised ProgId. It should be advertised instead. --- .../WixToolsetTest.CoreIntegration/MsiFixture.cs | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs') diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs index b5e1ec3d..c70d276d 100644 --- a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs @@ -539,6 +539,45 @@ namespace WixToolsetTest.CoreIntegration } } + [Fact] + public void CanBuildVersionIndependentProgId() + { + var folder = TestData.Get(@"TestData\ProgId"); + + 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, + "-o", Path.Combine(baseFolder, @"bin\test.msi") + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\MsiPackage\Foo.exe"))); + + var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir")); + var section = intermediate.Sections.Single(); + + var progids = section.Tuples.OfType().OrderBy(tuple => tuple.ProgId).ToList(); + Assert.Equal(2, progids.Count); + Assert.Equal("Foo.File.hol", progids[0].ProgId); + Assert.Equal("Foo.File.hol.15", progids[0].ProgId_Parent); + Assert.Equal("Foo.File.hol.15", progids[1].ProgId); + Assert.Null(progids[1].ProgId_Parent); + } + } + [Fact(Skip = "Not implemented yet.")] public void CanBuildInstanceTransform() { -- cgit v1.2.3-55-g6feb