aboutsummaryrefslogtreecommitdiff
path: root/src/ext
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2023-02-21 14:20:55 -0500
committerBob Arnson <github@bobs.org>2023-02-21 15:21:35 -0500
commit168bd779a1994d390ee862ff3bd2de1e7d7ea031 (patch)
tree2bcf00399697791c1011aa7334491618e4ed2b03 /src/ext
parent149a4220e8246c037c9c26a4bca817fd5d6968df (diff)
downloadwix-168bd779a1994d390ee862ff3bd2de1e7d7ea031.tar.gz
wix-168bd779a1994d390ee862ff3bd2de1e7d7ea031.tar.bz2
wix-168bd779a1994d390ee862ff3bd2de1e7d7ea031.zip
Fix RemoveFoldersEx query.
Fixes https://github.com/wixtoolset/issues/issues/7236.
Diffstat (limited to 'src/ext')
-rw-r--r--src/ext/Util/ca/RemoveFoldersEx.cpp4
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs12
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl9
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs19
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs11
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt1
-rw-r--r--src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs15
7 files changed, 63 insertions, 8 deletions
diff --git a/src/ext/Util/ca/RemoveFoldersEx.cpp b/src/ext/Util/ca/RemoveFoldersEx.cpp
index 266594fd..10345de7 100644
--- a/src/ext/Util/ca/RemoveFoldersEx.cpp
+++ b/src/ext/Util/ca/RemoveFoldersEx.cpp
@@ -3,8 +3,8 @@
3#include "precomp.h" 3#include "precomp.h"
4 4
5LPCWSTR vcsRemoveFolderExQuery = 5LPCWSTR vcsRemoveFolderExQuery =
6 L"SELECT `Wix4RemoveFolderEx`, `Component_`, `Property`, `InstallMode`, `Wix4RemoveFolderEx`.`Condition`, `Component`.`Attributes`" 6 L"SELECT `RemoveFolderEx`, `Component_`, `Property`, `InstallMode`, `Wix4RemoveFolderEx`.`Condition`, `Component`.`Attributes` "
7 L"FROM `Wix4RemoveFolderEx``,`Component` " 7 L"FROM `Wix4RemoveFolderEx`,`Component` "
8 L"WHERE `Wix4RemoveFolderEx`.`Component_`=`Component`.`Component`"; 8 L"WHERE `Wix4RemoveFolderEx`.`Component_`=`Component`.`Component`";
9enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, rfqMode, rfqCondition, rfqComponentAttributes }; 9enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, rfqMode, rfqCondition, rfqComponentAttributes };
10 10
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs
index 2c2be584..ee295cdb 100644
--- a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs
+++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs
@@ -1,13 +1,13 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Module Language="1033" Version="1.0.0.0" Id="InternetShortcutModule" Guid="047730a5-30fe-4a62-a520-da9381b8226a"> 2 <Module Language="1033" Version="1.0.0.0" Id="RemoveFolderExModule" Guid="047730a5-30fe-4a62-a520-da9381b8226a">
3 <SummaryInformation Manufacturer="Example Corporation" /> 3 <SummaryInformation Manufacturer="Example Corporation" />
4 4
5 <ComponentGroupRef Id="ModuleComponents" /> 5 <ComponentGroupRef Id="ModuleComponents" />
6 </Module> 6 </Module>
7 7
8 <Fragment> 8 <Fragment>
9 <StandardDirectory Id="ProgramFilesFolder"> 9 <StandardDirectory Id="ProgramFilesFolder">
10 <Directory Id="INSTALLFOLDER" Name="MergeModule" /> 10 <Directory Id="INSTALLFOLDER" Name="MergeModule" />
11 </StandardDirectory> 11 </StandardDirectory>
12 </Fragment> 12 </Fragment>
13</Wix> 13</Wix>
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl
new file mode 100644
index 00000000..f1df1234
--- /dev/null
+++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl
@@ -0,0 +1,9 @@
1<!--
2This file contains the declaration of all the localizable strings.
3-->
4<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
5
6 <String Id="DowngradeError" Value="A newer version of [ProductName] is already installed." />
7 <String Id="FeatureTitle" Value="MsiPackage" />
8
9</WixLocalization>
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs
new file mode 100644
index 00000000..09f131e7
--- /dev/null
+++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs
@@ -0,0 +1,19 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
4
5 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
6 <ComponentGroupRef Id="ProductComponents" />
7 </Feature>
8
9 <Property Id="REMOVEPROP">
10 <RegistrySearch Id="GetInstallFolderForNukingPurposes" Root="HKLM" Key="SOFTWARE\[Manufacturer]\[ProductName]" Name="InstallFolder" Type="directory" />
11 </Property>
12 </Package>
13
14 <Fragment>
15 <StandardDirectory Id="ProgramFilesFolder">
16 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
17 </StandardDirectory>
18 </Fragment>
19</Wix>
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs
new file mode 100644
index 00000000..0e277546
--- /dev/null
+++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs
@@ -0,0 +1,11 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
4 <Component>
5 <File Source="example.txt" />
6 <RegistryValue Root="HKLM" Key="SOFTWARE\[Manufacturer]\[ProductName]" Name="InstallFolder" Value="[INSTALLFOLDER]" />
7 <util:RemoveFolderEx On="both" Property="REMOVEPROP" />
8 </Component>
9 </ComponentGroup>
10 </Fragment>
11</Wix>
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt
new file mode 100644
index 00000000..1b4ffe8a
--- /dev/null
+++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt
@@ -0,0 +1 @@
This is example.txt. \ No newline at end of file
diff --git a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs
index a9b37870..f90b87f6 100644
--- a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs
+++ b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs
@@ -183,6 +183,21 @@ namespace WixToolsetTest.Util
183 } 183 }
184 184
185 [Fact] 185 [Fact]
186 public void CanBuildRemoveFolderExInPackage()
187 {
188 var folder = TestData.Get(@"TestData\RemoveFolderExPackage");
189 var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
190
191 var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "RemoveFile", "Wix4RemoveFolderEx");
192 WixAssert.CompareLineByLine(new[]
193 {
194 "Binary:Wix4UtilCA_X64\t[Binary data]",
195 "CustomAction:Wix4RemoveFoldersEx_X64\t65\tWix4UtilCA_X64\tWixRemoveFoldersEx\t",
196 "Wix4RemoveFolderEx:wrfRwBJnGq1p9zdOKI6qUQ.p.wHFtE\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tREMOVEPROP\t3\t",
197 }, results.OrderBy(s => s).ToArray());
198 }
199
200 [Fact]
186 public void CanBuildServiceConfig() 201 public void CanBuildServiceConfig()
187 { 202 {
188 var folder = TestData.Get(@"TestData", "ServiceConfig"); 203 var folder = TestData.Get(@"TestData", "ServiceConfig");