From 860f77f7c9d522074dc7e44cfe11281efd20687f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 5 Apr 2021 12:55:26 -0700 Subject: Introduce "Subdirectory" which simplifies inline directory syntax Completes wixtoolset/issues#4727 --- .../DirectoryFixture.cs | 35 ++++++++++++---------- .../ExtensionFixture.cs | 2 +- .../LanguageFixture.cs | 19 ++++++++++++ .../LinkerFixture.cs | 2 +- .../WixToolsetTest.CoreIntegration/MsiFixture.cs | 12 ++++---- .../TestData/CopyFile/CopyFile.wxs | 4 ++- .../TestData/DuplicateDir/DuplicateDir.wxs | 4 +-- .../TestData/Language/Package.wxs | 4 ++- .../TestData/Media/MultiMedia.wxs | 8 ++--- .../TestData/PatchNoFileChanges/Package.wxs | 4 ++- .../ProductWithComponentGroupRef/Product.wxs | 6 ++-- .../TestData/SameFileFolders/TestComponents.wxs | 8 ++--- .../TestData/UsingProvides/Package.wxs | 4 ++- 13 files changed, 72 insertions(+), 40 deletions(-) (limited to 'src/test') diff --git a/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs index 2d6e4802..56f8ba82 100644 --- a/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs @@ -7,6 +7,7 @@ namespace WixToolsetTest.CoreIntegration using WixBuildTools.TestSupport; using WixToolset.Core.TestPackage; using WixToolset.Data; + using WixToolset.Data.WindowsInstaller; using Xunit; public class DirectoryFixture @@ -40,11 +41,11 @@ namespace WixToolsetTest.CoreIntegration var dirSymbols = section.Symbols.OfType().ToList(); Assert.Equal(new[] { - "INSTALLFOLDER", - "ProgramFiles6432Folder", - "ProgramFilesFolder", - "TARGETDIR" - }, dirSymbols.Select(d => d.Id.Id).ToArray()); + "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage", + "ProgramFiles6432Folder:ProgramFilesFolder:.", + "ProgramFilesFolder:TARGETDIR:PFiles", + "TARGETDIR::SourceDir" + }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray()); } } @@ -78,11 +79,11 @@ namespace WixToolsetTest.CoreIntegration var dirSymbols = section.Symbols.OfType().ToList(); Assert.Equal(new[] { - "INSTALLFOLDER", - "ProgramFiles6432Folder", - "ProgramFiles64Folder", - "TARGETDIR" - }, dirSymbols.Select(d => d.Id.Id).ToArray()); + "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage", + "ProgramFiles6432Folder:ProgramFiles64Folder:.", + "ProgramFiles64Folder:TARGETDIR:PFiles64", + "TARGETDIR::SourceDir" + }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray()); } } @@ -116,12 +117,14 @@ namespace WixToolsetTest.CoreIntegration var dirSymbols = section.Symbols.OfType().ToList(); Assert.Equal(new[] { - "dirZsSsu81KcG46xXTwc4mTSZO5Zx4", - "INSTALLFOLDER", - "ProgramFiles6432Folder", - "ProgramFiles64Folder", - "TARGETDIR" - }, dirSymbols.Select(d => d.Id.Id).ToArray()); + "dZsSsu81KcG46xXTwc4mTSZO5Zx4:INSTALLFOLDER:dupe", + "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage", + "ProgramFiles6432Folder:ProgramFiles64Folder:.", + "ProgramFiles64Folder:TARGETDIR:PFiles64", + "TARGETDIR::SourceDir" + }, dirSymbols.OrderBy(d => d.Id.Id).Select(d => d.Id.Id + ":" + d.ParentDirectoryRef + ":" + d.Name).ToArray()); + } + } } } } diff --git a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs index ff0c3258..089658e6 100644 --- a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs @@ -53,7 +53,7 @@ namespace WixToolsetTest.CoreIntegration Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.msi"))); Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.wixpdb"))); - Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\example.txt"))); + Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\PFiles\MsiPackage\example.txt"))); var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\extest.wixpdb")); var section = intermediate.Sections.Single(); diff --git a/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs b/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs index 319b0788..610e44b8 100644 --- a/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/LanguageFixture.cs @@ -8,6 +8,7 @@ namespace WixToolsetTest.CoreIntegration using WixToolset.Core.TestPackage; using WixToolset.Data; using WixToolset.Data.Symbols; + using WixToolset.Data.WindowsInstaller; using Xunit; public class LanguageFixture @@ -36,6 +37,14 @@ namespace WixToolsetTest.CoreIntegration var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); var section = intermediate.Sections.Single(); + var directorySymbols = section.Symbols.OfType(); + Assert.Equal(new[] + { + "INSTALLFOLDER:Example Corporation\\MsiPackage", + "ProgramFilesFolder:PFiles", + "TARGETDIR:SourceDir" + }, directorySymbols.OrderBy(s => s.Id.Id).Select(s => s.Id.Id + ":" + s.Name).ToArray()); + var propertySymbol = section.Symbols.OfType().Single(p => p.Id.Id == "ProductLanguage"); Assert.Equal("0", propertySymbol.Value); @@ -44,6 +53,16 @@ namespace WixToolsetTest.CoreIntegration var summaryCodepage = section.Symbols.OfType().Single(s => s.PropertyId == SummaryInformationType.Codepage); Assert.Equal("1252", summaryCodepage.Value); + + var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); + var directoryRows = data.Tables["Directory"].Rows; + Assert.Equal(new[] + { + "d4EceYatXTyy8HXPt5B6DT9Rj.wE:u7-b4gch|Example Corporation", + "INSTALLFOLDER:oekcr5lq|MsiPackage", + "ProgramFilesFolder:PFiles", + "TARGETDIR:SourceDir" + }, directoryRows.Select(r => r.FieldAsString(0) + ":" + r.FieldAsString(2)).ToArray()); } } diff --git a/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs b/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs index f73a57d0..676d7d87 100644 --- a/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/LinkerFixture.cs @@ -68,7 +68,7 @@ namespace WixToolsetTest.CoreIntegration 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\test.txt"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt"))); var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); var section = intermediate.Sections.Single(); diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs index a8ea0a18..3bdfa0ef 100644 --- a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs @@ -40,7 +40,7 @@ namespace WixToolsetTest.CoreIntegration 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\test.txt"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt"))); var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); @@ -240,7 +240,7 @@ namespace WixToolsetTest.CoreIntegration 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\test.txt"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt"))); var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); var section = intermediate.Sections.Single(); @@ -351,7 +351,7 @@ namespace WixToolsetTest.CoreIntegration var pdbPath = Path.Combine(intermediateFolder, @"bin\test.wixpdb"); Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi"))); Assert.True(File.Exists(pdbPath)); - Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\MsiPackage\test.txt"))); + Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\PFiles\MsiPackage\test.txt"))); var intermediate = Intermediate.Load(pdbPath); var section = intermediate.Sections.Single(); @@ -527,7 +527,7 @@ namespace WixToolsetTest.CoreIntegration 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\test.txt"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\test.txt"))); var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); var section = intermediate.Sections.Single(); @@ -563,7 +563,7 @@ namespace WixToolsetTest.CoreIntegration 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\AssemblyMsiPackage\candle.exe"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\AssemblyMsiPackage\candle.exe"))); var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); var section = intermediate.Sections.Single(); @@ -721,7 +721,7 @@ namespace WixToolsetTest.CoreIntegration 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"))); + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\PFiles\MsiPackage\Foo.exe"))); var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wixpdb")); var section = intermediate.Sections.Single(); diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs index 66208806..90d66cc3 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CopyFile/CopyFile.wxs @@ -10,6 +10,8 @@ - + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs index ffee969d..a58b68c8 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/DuplicateDir/DuplicateDir.wxs @@ -8,7 +8,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs index 2bbc14f9..db15796d 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Language/Package.wxs @@ -11,6 +11,8 @@ - + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs index 8a555bda..e7492db4 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Media/MultiMedia.wxs @@ -8,19 +8,19 @@ - + - + - + - + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs index 9d530376..5ad21a75 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/PatchNoFileChanges/Package.wxs @@ -4,7 +4,9 @@ - + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs index f297c9e9..5a4e2c07 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs @@ -1,4 +1,4 @@ - + @@ -9,6 +9,8 @@ - + + + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs index 765e6778..bbad63e6 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/SameFileFolders/TestComponents.wxs @@ -1,14 +1,14 @@ - - + + - + - + diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs index 9ddcdc90..70fdbb46 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/UsingProvides/Package.wxs @@ -9,6 +9,8 @@ - + + + -- cgit v1.2.3-55-g6feb