From 54c6cf7e151b4e816cedc393e9c520eb818524de Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 23 Jan 2020 14:46:40 -0500 Subject: Fix CustomTable/@Unreal="yes" binding. --- .../Bind/LoadTableDefinitionsCommand.cs | 26 +++++++++---------- .../MsiQueryFixture.cs | 30 ++++++++++++++++++++++ .../TestData/CustomTable/CustomTable.wxs | 13 ++++++++++ 3 files changed, 56 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs index 05f865fa..92ddad6f 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs @@ -32,19 +32,19 @@ namespace WixToolset.Core.WindowsInstaller.Bind return this.TableDefinitions; } - private TableDefinition CreateCustomTable(WixCustomTableTuple row) + private TableDefinition CreateCustomTable(WixCustomTableTuple tuple) { - var columnNames = row.ColumnNames.Split('\t'); - var columnTypes = row.ColumnTypes.Split('\t'); - var primaryKeys = row.PrimaryKeys.Split('\t'); - var minValues = row.MinValues?.Split('\t'); - var maxValues = row.MaxValues?.Split('\t'); - var keyTables = row.KeyTables?.Split('\t'); - var keyColumns = row.KeyColumns?.Split('\t'); - var categories = row.Categories?.Split('\t'); - var sets = row.Sets?.Split('\t'); - var descriptions = row.Descriptions?.Split('\t'); - var modularizations = row.Modularizations?.Split('\t'); + var columnNames = tuple.ColumnNames.Split('\t'); + var columnTypes = tuple.ColumnTypes.Split('\t'); + var primaryKeys = tuple.PrimaryKeys.Split('\t'); + var minValues = tuple.MinValues?.Split('\t'); + var maxValues = tuple.MaxValues?.Split('\t'); + var keyTables = tuple.KeyTables?.Split('\t'); + var keyColumns = tuple.KeyColumns?.Split('\t'); + var categories = tuple.Categories?.Split('\t'); + var sets = tuple.Sets?.Split('\t'); + var descriptions = tuple.Descriptions?.Split('\t'); + var modularizations = tuple.Modularizations?.Split('\t'); var currentPrimaryKey = 0; @@ -206,7 +206,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind columns.Add(columnDefinition); } - var customTable = new TableDefinition(row.Id.Id, columns/*, unreal: bootstrapperApplicationData, bootstrapperApplicationData*/); + var customTable = new TableDefinition(tuple.Id.Id, columns, tuple.Unreal); return customTable; } } diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs index 18380417..38ef2e2e 100644 --- a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs @@ -384,6 +384,36 @@ namespace WixToolsetTest.CoreIntegration } } + [Fact] + public void UnrealCustomTableIsNotPresentInMsi() + { + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var msiPath = Path.Combine(baseFolder, @"bin\test.msi"); + + var result = WixRunner.Execute(new[] + { + "build", + Path.Combine(folder, "CustomTable", "CustomTable.wxs"), + Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"), + Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), + "-bindpath", Path.Combine(folder, "SingleFile", "data"), + "-intermediateFolder", intermediateFolder, + "-o", msiPath + }); + + result.AssertSuccess(); + + Assert.True(File.Exists(msiPath)); + var results = Query.QueryDatabase(msiPath, new[] { "CustomTable2" }); + Assert.Empty(results); + } + } + [Fact] public void PopulatesDirectoryTableWithValidDefaultDir() { diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs index 649b29b6..8eb4fbf9 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs @@ -17,5 +17,18 @@ test.txt + + + + + + RowA + test.txt + + + RowB + test.txt + + -- cgit v1.2.3-55-g6feb