diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-06-03 02:19:16 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-06-03 02:23:16 -0700 |
| commit | 9317f7c8ea709da55e4602eaaba06952bbf315b7 (patch) | |
| tree | 51e8348f891041dcc160a6b79e8965ca6a908b9d /src/test | |
| parent | d529525a1e331f3ef9ec2707791c99bd78fdd82f (diff) | |
| download | wix-9317f7c8ea709da55e4602eaaba06952bbf315b7.tar.gz wix-9317f7c8ea709da55e4602eaaba06952bbf315b7.tar.bz2 wix-9317f7c8ea709da55e4602eaaba06952bbf315b7.zip | |
Redesign CustomTable tuples to support resolving binary columns
Diffstat (limited to 'src/test')
9 files changed, 175 insertions, 1 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs index 53036919..80c00ef1 100644 --- a/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/BundleManifestFixture.cs | |||
| @@ -46,7 +46,7 @@ namespace WixToolsetTest.CoreIntegration | |||
| 46 | var customElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:BundleCustomTable"); | 46 | var customElements = extractResult.SelectBADataNodes("/ba:BootstrapperApplicationData/ba:BundleCustomTable"); |
| 47 | Assert.Equal(3, customElements.Count); | 47 | Assert.Equal(3, customElements.Count); |
| 48 | Assert.Equal("<BundleCustomTable Id='one' Column2='two' />", customElements[0].GetTestXml()); | 48 | Assert.Equal("<BundleCustomTable Id='one' Column2='two' />", customElements[0].GetTestXml()); |
| 49 | Assert.Equal("<BundleCustomTable Column2='<' Id='>' />", customElements[1].GetTestXml()); | 49 | Assert.Equal("<BundleCustomTable Id='>' Column2='<' />", customElements[1].GetTestXml()); |
| 50 | Assert.Equal("<BundleCustomTable Id='1' Column2='2' />", customElements[2].GetTestXml()); | 50 | Assert.Equal("<BundleCustomTable Id='1' Column2='2' />", customElements[2].GetTestXml()); |
| 51 | } | 51 | } |
| 52 | } | 52 | } |
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs index aa8a0a0d..78a8f0a4 100644 --- a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs | |||
| @@ -473,6 +473,121 @@ namespace WixToolsetTest.CoreIntegration | |||
| 473 | } | 473 | } |
| 474 | 474 | ||
| 475 | [Fact] | 475 | [Fact] |
| 476 | public void PopulatesCustomTableWithLocalization() | ||
| 477 | { | ||
| 478 | var folder = TestData.Get(@"TestData"); | ||
| 479 | |||
| 480 | using (var fs = new DisposableFileSystem()) | ||
| 481 | { | ||
| 482 | var baseFolder = fs.GetFolder(); | ||
| 483 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 484 | var msiPath = Path.Combine(baseFolder, @"bin\test.msi"); | ||
| 485 | |||
| 486 | var result = WixRunner.Execute(new[] | ||
| 487 | { | ||
| 488 | "build", | ||
| 489 | Path.Combine(folder, "CustomTable", "LocalizedCustomTable.wxs"), | ||
| 490 | Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"), | ||
| 491 | Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), | ||
| 492 | "-loc", Path.Combine(folder, "CustomTable", "LocalizedCustomTable.en-us.wxl"), | ||
| 493 | "-bindpath", Path.Combine(folder, "SingleFile", "data"), | ||
| 494 | "-intermediateFolder", intermediateFolder, | ||
| 495 | "-o", msiPath | ||
| 496 | }); | ||
| 497 | |||
| 498 | result.AssertSuccess(); | ||
| 499 | |||
| 500 | Assert.True(File.Exists(msiPath)); | ||
| 501 | var results = Query.QueryDatabase(msiPath, new[] { "CustomTableLocalized" }); | ||
| 502 | Assert.Equal(new[] | ||
| 503 | { | ||
| 504 | "CustomTableLocalized:Row1\tThis is row one", | ||
| 505 | "CustomTableLocalized:Row2\tThis is row two", | ||
| 506 | }, results); | ||
| 507 | } | ||
| 508 | } | ||
| 509 | |||
| 510 | [Fact] | ||
| 511 | public void PopulatesCustomTableWithFilePath() | ||
| 512 | { | ||
| 513 | var folder = TestData.Get(@"TestData"); | ||
| 514 | |||
| 515 | using (var fs = new DisposableFileSystem()) | ||
| 516 | { | ||
| 517 | var baseFolder = fs.GetFolder(); | ||
| 518 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 519 | var msiPath = Path.Combine(baseFolder, @"bin\test.msi"); | ||
| 520 | |||
| 521 | var result = WixRunner.Execute(new[] | ||
| 522 | { | ||
| 523 | "build", | ||
| 524 | Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"), | ||
| 525 | Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"), | ||
| 526 | Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), | ||
| 527 | "-bindpath", Path.Combine(folder, "CustomTable", "data"), | ||
| 528 | "-intermediateFolder", intermediateFolder, | ||
| 529 | "-o", msiPath | ||
| 530 | }); | ||
| 531 | |||
| 532 | result.AssertSuccess(); | ||
| 533 | |||
| 534 | Assert.True(File.Exists(msiPath)); | ||
| 535 | var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" }); | ||
| 536 | Assert.Equal(new[] | ||
| 537 | { | ||
| 538 | "CustomTableWithFile:Row1\t[Binary data]", | ||
| 539 | "CustomTableWithFile:Row2\t[Binary data]", | ||
| 540 | }, results); | ||
| 541 | } | ||
| 542 | } | ||
| 543 | |||
| 544 | [Fact] | ||
| 545 | public void PopulatesCustomTableWithFilePathSerialized() | ||
| 546 | { | ||
| 547 | var folder = TestData.Get(@"TestData"); | ||
| 548 | |||
| 549 | using (var fs = new DisposableFileSystem()) | ||
| 550 | { | ||
| 551 | var baseFolder = fs.GetFolder(); | ||
| 552 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 553 | var wixlibPath = Path.Combine(baseFolder, @"bin\test.wixlib"); | ||
| 554 | var msiPath = Path.Combine(baseFolder, @"bin\test.msi"); | ||
| 555 | |||
| 556 | var result = WixRunner.Execute(new[] | ||
| 557 | { | ||
| 558 | "build", | ||
| 559 | Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"), | ||
| 560 | "-bindpath", Path.Combine(folder, "CustomTable", "data"), | ||
| 561 | "-intermediateFolder", intermediateFolder, | ||
| 562 | "-o", wixlibPath | ||
| 563 | }); | ||
| 564 | |||
| 565 | result.AssertSuccess(); | ||
| 566 | |||
| 567 | result = WixRunner.Execute(new[] | ||
| 568 | { | ||
| 569 | "build", | ||
| 570 | Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"), | ||
| 571 | Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"), | ||
| 572 | "-lib", wixlibPath, | ||
| 573 | "-bindpath", Path.Combine(folder, "CustomTable", "data"), | ||
| 574 | "-intermediateFolder", intermediateFolder, | ||
| 575 | "-o", msiPath | ||
| 576 | }); | ||
| 577 | |||
| 578 | result.AssertSuccess(); | ||
| 579 | |||
| 580 | Assert.True(File.Exists(msiPath)); | ||
| 581 | var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" }); | ||
| 582 | Assert.Equal(new[] | ||
| 583 | { | ||
| 584 | "CustomTableWithFile:Row1\t[Binary data]", | ||
| 585 | "CustomTableWithFile:Row2\t[Binary data]", | ||
| 586 | }, results); | ||
| 587 | } | ||
| 588 | } | ||
| 589 | |||
| 590 | [Fact] | ||
| 476 | public void UnrealCustomTableIsNotPresentInMsi() | 591 | public void UnrealCustomTableIsNotPresentInMsi() |
| 477 | { | 592 | { |
| 478 | var folder = TestData.Get(@"TestData"); | 593 | var folder = TestData.Get(@"TestData"); |
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs new file mode 100644 index 00000000..ad5ed233 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTableWithFile.wxs | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8" ?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
| 3 | <Fragment> | ||
| 4 | <ComponentGroup Id="ProductComponents"> | ||
| 5 | <ComponentGroupRef Id="MinimalComponentGroup" /> | ||
| 6 | </ComponentGroup> | ||
| 7 | |||
| 8 | <CustomTable Id="CustomTableWithFile"> | ||
| 9 | <Column Id="Column1" Type="string" PrimaryKey="yes" /> | ||
| 10 | <Column Id="Source" Type="binary" Width="0" /> | ||
| 11 | <Row> | ||
| 12 | <Data Column="Column1">Row1</Data> | ||
| 13 | <Data Column="Source">file1.txt</Data> | ||
| 14 | </Row> | ||
| 15 | <Row> | ||
| 16 | <Data Column="Source">SourceDir\file2.txt</Data> | ||
| 17 | <Data Column="Column1">Row2</Data> | ||
| 18 | </Row> | ||
| 19 | </CustomTable> | ||
| 20 | |||
| 21 | </Fragment> | ||
| 22 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl new file mode 100644 index 00000000..bc2ccf04 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.en-us.wxl | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US"> | ||
| 3 | |||
| 4 | <String Id="Loc1">This is row one</String> | ||
| 5 | <String Id="Loc2">This is row two</String> | ||
| 6 | |||
| 7 | </WixLocalization> | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs new file mode 100644 index 00000000..e1da74f8 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/LocalizedCustomTable.wxs | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8" ?> | ||
| 2 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
| 3 | <Fragment> | ||
| 4 | <ComponentGroup Id="ProductComponents"> | ||
| 5 | <ComponentGroupRef Id="MinimalComponentGroup" /> | ||
| 6 | </ComponentGroup> | ||
| 7 | |||
| 8 | <CustomTable Id="CustomTableLocalized"> | ||
| 9 | <Column Id="Column1" Type="string" PrimaryKey="yes" /> | ||
| 10 | <Column Id="DataColumn" Type="string" Localizable="yes" Width="255" /> | ||
| 11 | <Row> | ||
| 12 | <Data Column="Column1" Value="Row1" /> | ||
| 13 | <Data Column="DataColumn" Value="!(loc.Loc1)" /> | ||
| 14 | </Row> | ||
| 15 | <Row> | ||
| 16 | <Data Column="Column1" Value="Row2" /> | ||
| 17 | <Data Column="DataColumn" Value="!(loc.Loc2)" /> | ||
| 18 | </Row> | ||
| 19 | </CustomTable> | ||
| 20 | </Fragment> | ||
| 21 | </Wix> | ||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt new file mode 100644 index 00000000..97f701ce --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file1.txt | |||
| @@ -0,0 +1 @@ | |||
| This is file1.txt \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt new file mode 100644 index 00000000..46493186 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/file2.txt | |||
| @@ -0,0 +1 @@ | |||
| This is file2.txt \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt new file mode 100644 index 00000000..cd0db0e1 --- /dev/null +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/data/test.txt | |||
| @@ -0,0 +1 @@ | |||
| This is test.txt. \ No newline at end of file | |||
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj index f9f1ba44..51775cd0 100644 --- a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj +++ b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj | |||
| @@ -34,7 +34,13 @@ | |||
| 34 | <Content Include="TestData\Class\IconIndex0.wxs" CopyToOutputDirectory="PreserveNewest" /> | 34 | <Content Include="TestData\Class\IconIndex0.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 35 | <Content Include="TestData\Class\OldClassTableDef.msi" CopyToOutputDirectory="PreserveNewest" /> | 35 | <Content Include="TestData\Class\OldClassTableDef.msi" CopyToOutputDirectory="PreserveNewest" /> |
| 36 | <Content Include="TestData\CustomAction\UnscheduledCustomAction.wxs" CopyToOutputDirectory="PreserveNewest" /> | 36 | <Content Include="TestData\CustomAction\UnscheduledCustomAction.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 37 | <Content Include="TestData\CustomTable\CustomTableWithFile.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 38 | <Content Include="TestData\CustomTable\data\file1.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 39 | <Content Include="TestData\CustomTable\data\test.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 40 | <Content Include="TestData\CustomTable\data\file2.txt" CopyToOutputDirectory="PreserveNewest" /> | ||
| 41 | <Content Include="TestData\CustomTable\LocalizedCustomTable.wxs" CopyToOutputDirectory="PreserveNewest" /> | ||
| 37 | <Content Include="TestData\CustomTable\CustomTable.wxs" CopyToOutputDirectory="PreserveNewest" /> | 42 | <Content Include="TestData\CustomTable\CustomTable.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 43 | <Content Include="TestData\CustomTable\LocalizedCustomTable.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> | ||
| 38 | <Content Include="TestData\DefaultDir\DefaultDir.wxs" CopyToOutputDirectory="PreserveNewest" /> | 44 | <Content Include="TestData\DefaultDir\DefaultDir.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 39 | <Content Include="TestData\DialogsInInstallUISequence\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> | 45 | <Content Include="TestData\DialogsInInstallUISequence\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> |
| 40 | <Content Include="TestData\EnsureTable\EnsureTable.wxs" CopyToOutputDirectory="PreserveNewest" /> | 46 | <Content Include="TestData\EnsureTable\EnsureTable.wxs" CopyToOutputDirectory="PreserveNewest" /> |
