aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-17 12:10:28 -0700
committerRob Mensching <rob@firegiant.com>2020-06-23 02:10:31 -0700
commit457c144720964a7f50b1d184e6b19faa930e970e (patch)
tree1ec77949cafae525204a381de2145362f1c1b59b /src/test
parent461350c09839f1e59fb3dafe1a67e74bf152f803 (diff)
downloadwix-457c144720964a7f50b1d184e6b19faa930e970e.tar.gz
wix-457c144720964a7f50b1d184e6b19faa930e970e.tar.bz2
wix-457c144720964a7f50b1d184e6b19faa930e970e.zip
Introduce Value attribute on MultiString/MultiStringValue elements
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs65
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs114
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs15
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj1
4 files changed, 130 insertions, 65 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
index 70d6612e..c78b0c29 100644
--- a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
@@ -805,71 +805,6 @@ namespace WixToolsetTest.CoreIntegration
805 } 805 }
806 806
807 [Fact] 807 [Fact]
808 public void PopulatesRegistryTableFromRegistryValue()
809 {
810 var folder = TestData.Get(@"TestData");
811
812 using (var fs = new DisposableFileSystem())
813 {
814 var baseFolder = fs.GetFolder();
815 var intermediateFolder = Path.Combine(baseFolder, "obj");
816 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
817
818 var result = WixRunner.Execute(new[]
819 {
820 "build",
821 Path.Combine(folder, "Registry", "RegistryValue.wxs"),
822 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
823 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
824 "-intermediateFolder", intermediateFolder,
825 "-o", msiPath
826 });
827
828 result.AssertSuccess();
829
830 Assert.True(File.Exists(msiPath));
831 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
832 Assert.Equal(new[]
833 {
834 "Registry:reg04OIwIchl.9ZTjisTT6NzGSsQSM\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMiscComponent",
835 "Registry:regEblTuusqFNSUQNy88zaP_UA5kIY\t2\tPath\\To\\Key\t\t1.0.1234.123\tMiscComponent",
836 }, results);
837 }
838 }
839
840 [Fact]
841 public void PopulatesRegistryTableFromRemoveRegistryKey()
842 {
843 var folder = TestData.Get(@"TestData");
844
845 using (var fs = new DisposableFileSystem())
846 {
847 var baseFolder = fs.GetFolder();
848 var intermediateFolder = Path.Combine(baseFolder, "obj");
849 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
850
851 var result = WixRunner.Execute(new[]
852 {
853 "build",
854 Path.Combine(folder, "Registry", "RemoveRegistryKey.wxs"),
855 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
856 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
857 "-intermediateFolder", intermediateFolder,
858 "-o", msiPath
859 });
860
861 result.AssertSuccess();
862
863 Assert.True(File.Exists(msiPath));
864 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
865 Assert.Equal(new[]
866 {
867 "Registry:RemoveAKeyName\t2\tAKeyName\t-\t\tRemoveRegistryKeyComp",
868 }, results);
869 }
870 }
871
872 [Fact]
873 public void PopulatesReserveCostTable() 808 public void PopulatesReserveCostTable()
874 { 809 {
875 var folder = TestData.Get(@"TestData"); 810 var folder = TestData.Get(@"TestData");
diff --git a/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
new file mode 100644
index 00000000..2a1e2a49
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/RegistryFixture.cs
@@ -0,0 +1,114 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.CoreIntegration
4{
5 using System;
6 using System.Collections.Generic;
7 using System.IO;
8 using System.Linq;
9 using System.Text;
10 using WixBuildTools.TestSupport;
11 using WixToolset.Core.TestPackage;
12 using WixToolset.Data;
13 using Xunit;
14
15 public class RegistryFixture
16 {
17 [Fact]
18 public void PopulatesRegistryTableFromRegistryValue()
19 {
20 var folder = TestData.Get(@"TestData");
21
22 using (var fs = new DisposableFileSystem())
23 {
24 var baseFolder = fs.GetFolder();
25 var intermediateFolder = Path.Combine(baseFolder, "obj");
26 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
27
28 var result = WixRunner.Execute(new[]
29 {
30 "build",
31 Path.Combine(folder, "Registry", "RegistryValue.wxs"),
32 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
33 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
34 "-intermediateFolder", intermediateFolder,
35 "-o", msiPath
36 });
37
38 result.AssertSuccess();
39
40 Assert.True(File.Exists(msiPath));
41 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
42 Assert.Equal(new[]
43 {
44 "Registry:reg04OIwIchl.9ZTjisTT6NzGSsQSM\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMiscComponent",
45 "Registry:regEblTuusqFNSUQNy88zaP_UA5kIY\t2\tPath\\To\\Key\t\t1.0.1234.123\tMiscComponent",
46 }, results);
47 }
48 }
49
50 [Fact]
51 public void PopulatesRegistryTableFromRegistryValueMultiString()
52 {
53 var folder = TestData.Get(@"TestData");
54
55 using (var fs = new DisposableFileSystem())
56 {
57 var baseFolder = fs.GetFolder();
58 var intermediateFolder = Path.Combine(baseFolder, "obj");
59 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
60
61 var result = WixRunner.Execute(new[]
62 {
63 "build",
64 Path.Combine(folder, "Registry", "RegistryValueMultiString.wxs"),
65 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
66 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
67 "-intermediateFolder", intermediateFolder,
68 "-o", msiPath
69 });
70
71 result.AssertSuccess();
72
73 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
74 Assert.Equal(new[]
75 {
76 "Registry:regitq_Wx9LfvJuNSc2un6gIHAzr4A\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMultiStringComponent",
77 "Registry:regmeTJMpOD41igfxhTcUVZ7kNG1Mo\t2\tPath\\To\\Key\t\ta[~]b[~]c\tMultiStringComponent",
78 }, results);
79 }
80 }
81
82 [Fact]
83 public void PopulatesRegistryTableFromRemoveRegistryKey()
84 {
85 var folder = TestData.Get(@"TestData");
86
87 using (var fs = new DisposableFileSystem())
88 {
89 var baseFolder = fs.GetFolder();
90 var intermediateFolder = Path.Combine(baseFolder, "obj");
91 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
92
93 var result = WixRunner.Execute(new[]
94 {
95 "build",
96 Path.Combine(folder, "Registry", "RemoveRegistryKey.wxs"),
97 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
98 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
99 "-intermediateFolder", intermediateFolder,
100 "-o", msiPath
101 });
102
103 result.AssertSuccess();
104
105 Assert.True(File.Exists(msiPath));
106 var results = Query.QueryDatabase(msiPath, new[] { "Registry" });
107 Assert.Equal(new[]
108 {
109 "Registry:RemoveAKeyName\t2\tAKeyName\t-\t\tRemoveRegistryKeyComp",
110 }, results);
111 }
112 }
113 }
114}
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
new file mode 100644
index 00000000..d5c680ee
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValueMultiString.wxs
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Fragment>
4 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
5 <Component Id="MultiStringComponent" Guid="7C40C257-AB36-4B8C-8FD1-C56E0AC4AAEF">
6 <RegistryValue Root="HKLM" Key="Path\To\Key" Type="multiString" KeyPath="yes">
7 <MultiString Value="a" />
8 <MultiStringValue Value="b" />
9 <MultiString Value="c" />
10 </RegistryValue>
11 <RegistryValue Root="HKLM" Key="Path\To\AnotherKey" Name="Secret" Type="binary" />
12 </Component>
13 </ComponentGroup>
14 </Fragment>
15</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
index 7ede6655..c86a691f 100644
--- a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+++ b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
@@ -74,6 +74,7 @@
74 <Content Include="TestData\ProductWithComponentGroupRef\MinimalComponentGroup.wxs" CopyToOutputDirectory="PreserveNewest" /> 74 <Content Include="TestData\ProductWithComponentGroupRef\MinimalComponentGroup.wxs" CopyToOutputDirectory="PreserveNewest" />
75 <Content Include="TestData\ProductWithComponentGroupRef\Product.wxs" CopyToOutputDirectory="PreserveNewest" /> 75 <Content Include="TestData\ProductWithComponentGroupRef\Product.wxs" CopyToOutputDirectory="PreserveNewest" />
76 <Content Include="TestData\Registry\RegistryValue.wxs" CopyToOutputDirectory="PreserveNewest" /> 76 <Content Include="TestData\Registry\RegistryValue.wxs" CopyToOutputDirectory="PreserveNewest" />
77 <Content Include="TestData\Registry\RegistryValueMultiString.wxs" CopyToOutputDirectory="PreserveNewest" />
77 <Content Include="TestData\Registry\RemoveRegistryKey.wxs" CopyToOutputDirectory="PreserveNewest" /> 78 <Content Include="TestData\Registry\RemoveRegistryKey.wxs" CopyToOutputDirectory="PreserveNewest" />
78 <Content Include="TestData\ReserveCost\ReserveCost.wxs" CopyToOutputDirectory="PreserveNewest" /> 79 <Content Include="TestData\ReserveCost\ReserveCost.wxs" CopyToOutputDirectory="PreserveNewest" />
79 <Content Include="TestData\SequenceTables\DecompiledSequenceTables.wxs" CopyToOutputDirectory="PreserveNewest" /> 80 <Content Include="TestData\SequenceTables\DecompiledSequenceTables.wxs" CopyToOutputDirectory="PreserveNewest" />