diff options
| -rw-r--r-- | src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/BundleUsingBuiltinVariableNames.wxs | 57 | ||||
| -rw-r--r-- | src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs | 39 |
2 files changed, 96 insertions, 0 deletions
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/BundleUsingBuiltinVariableNames.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/BundleUsingBuiltinVariableNames.wxs new file mode 100644 index 00000000..e0dfc1b8 --- /dev/null +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/BundleUsingBuiltinVariableNames.wxs | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
| 2 | <Bundle Name="!(loc.BundleName)" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | ||
| 3 | <BootstrapperApplication> | ||
| 4 | <BootstrapperApplicationDll SourceFile="fakeba.dll" /> | ||
| 5 | </BootstrapperApplication> | ||
| 6 | |||
| 7 | <util:RegistrySearchRef Id="RegistrySearchId" /> | ||
| 8 | <util:RegistrySearchRef Id="RegistrySearchId64" /> | ||
| 9 | <util:ProductSearchRef Id="ProductSearchId" /> | ||
| 10 | <util:DirectorySearchRef Id="DirectorySearchId" /> | ||
| 11 | <util:FileSearchRef Id="FileSearchId" /> | ||
| 12 | <util:WindowsFeatureSearchRef Id="DetectSHA2SupportId" /> | ||
| 13 | |||
| 14 | <Chain> | ||
| 15 | <MsiPackage SourceFile="test.msi"> | ||
| 16 | <MsiProperty Name="TEST" Value="1" /> | ||
| 17 | </MsiPackage> | ||
| 18 | </Chain> | ||
| 19 | </Bundle> | ||
| 20 | |||
| 21 | <Fragment> | ||
| 22 | <util:RegistrySearch | ||
| 23 | Id="RegistrySearchId" | ||
| 24 | Variable="VersionNT64" | ||
| 25 | Root="HKLM" | ||
| 26 | Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | ||
| 27 | Value="Release" | ||
| 28 | Result="value" /> | ||
| 29 | </Fragment> | ||
| 30 | |||
| 31 | <Fragment> | ||
| 32 | <util:RegistrySearch | ||
| 33 | Id="RegistrySearchId64" | ||
| 34 | Variable="WixBundleAction" | ||
| 35 | Root="HKLM" | ||
| 36 | Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | ||
| 37 | Value="Release" | ||
| 38 | Result="value" | ||
| 39 | Bitness="always64" /> | ||
| 40 | </Fragment> | ||
| 41 | |||
| 42 | <Fragment> | ||
| 43 | <util:ProductSearch Id="ProductSearchId" Variable="Date" UpgradeCode="738D02BF-E231-4370-8209-E9FD4E1BE2A1" Condition="1 & 2 < 3" Result="version" /> | ||
| 44 | </Fragment> | ||
| 45 | |||
| 46 | <Fragment> | ||
| 47 | <util:DirectorySearch Id="DirectorySearchId" Variable="InstallerName" Path="%windir%\System32" Result="exists" DisableFileRedirection="yes" /> | ||
| 48 | </Fragment> | ||
| 49 | |||
| 50 | <Fragment> | ||
| 51 | <util:FileSearch Id="FileSearchId" Variable="NativeMachine" Path="%windir%\System32\mscoree.dll" Result="exists" /> | ||
| 52 | </Fragment> | ||
| 53 | |||
| 54 | <Fragment> | ||
| 55 | <util:WindowsFeatureSearch Id="DetectSHA2SupportId" Variable="NTProductType" Feature="sha2CodeSigning" /> | ||
| 56 | </Fragment> | ||
| 57 | </Wix> | ||
diff --git a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs index c7b7efb1..9cb94b61 100644 --- a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs +++ b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs | |||
| @@ -296,6 +296,45 @@ namespace WixToolsetTest.Util | |||
| 296 | } | 296 | } |
| 297 | } | 297 | } |
| 298 | 298 | ||
| 299 | [Fact] | ||
| 300 | public void CannotBuildBundleWithSearchesUsingBuiltinVariableNames() | ||
| 301 | { | ||
| 302 | var folder = TestData.Get("TestData", "BundleWithSearches"); | ||
| 303 | var rootFolder = TestData.Get(); | ||
| 304 | var wixext = Path.Combine(rootFolder, "WixToolset.Util.wixext.dll"); | ||
| 305 | |||
| 306 | using (var fs = new DisposableFileSystem()) | ||
| 307 | { | ||
| 308 | var baseFolder = fs.GetFolder(); | ||
| 309 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 310 | var bundlePath = Path.Combine(baseFolder, "bin", "test.exe"); | ||
| 311 | |||
| 312 | var result = WixRunner.Execute(new[] | ||
| 313 | { | ||
| 314 | "build", | ||
| 315 | Path.Combine(folder, "BundleUsingBuiltinVariableNames.wxs"), | ||
| 316 | "-ext", wixext, | ||
| 317 | "-loc", Path.Combine(folder, "Bundle.en-us.wxl"), | ||
| 318 | "-bindpath", Path.Combine(folder, "data"), | ||
| 319 | "-intermediateFolder", intermediateFolder, | ||
| 320 | "-o", bundlePath | ||
| 321 | }); | ||
| 322 | |||
| 323 | var messages = result.Messages.Select(m => m.ToString()).ToList(); | ||
| 324 | messages.Sort(); | ||
| 325 | |||
| 326 | WixAssert.CompareLineByLine(new[] | ||
| 327 | { | ||
| 328 | "The DirectorySearch/@Variable attribute's value, 'InstallerName', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFiles64Folder', 'CommonFilesFolder', 'CompatibilityMode', 'Date', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'InstallerName', 'InstallerVersion', 'LocalAppDataFolder', 'LogonUser', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFiles64Folder', 'ProgramFiles6432Folder', 'ProgramFilesFolder', 'ProgramMenuFolder', 'RebootPending', 'SendToFolder', 'ServicePackLevel', 'StartMenuFolder', 'StartupFolder', 'System64Folder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'TerminalServer', 'UserLanguageID', 'UserUILanguageID', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', 'WindowsVolume', 'WixBundleAction', 'WixBundleCommandLineAction', 'WixBundleForcedRestartPackage', 'WixBundleElevated', 'WixBundleInstalled', 'WixBundleProviderKey', 'WixBundleTag', or 'WixBundleVersion'.", | ||
| 329 | "The FileSearch/@Variable attribute's value, 'NativeMachine', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFiles64Folder', 'CommonFilesFolder', 'CompatibilityMode', 'Date', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'InstallerName', 'InstallerVersion', 'LocalAppDataFolder', 'LogonUser', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFiles64Folder', 'ProgramFiles6432Folder', 'ProgramFilesFolder', 'ProgramMenuFolder', 'RebootPending', 'SendToFolder', 'ServicePackLevel', 'StartMenuFolder', 'StartupFolder', 'System64Folder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'TerminalServer', 'UserLanguageID', 'UserUILanguageID', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', 'WindowsVolume', 'WixBundleAction', 'WixBundleCommandLineAction', 'WixBundleForcedRestartPackage', 'WixBundleElevated', 'WixBundleInstalled', 'WixBundleProviderKey', 'WixBundleTag', or 'WixBundleVersion'.", | ||
| 330 | "The ProductSearch/@Variable attribute's value, 'Date', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFiles64Folder', 'CommonFilesFolder', 'CompatibilityMode', 'Date', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'InstallerName', 'InstallerVersion', 'LocalAppDataFolder', 'LogonUser', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFiles64Folder', 'ProgramFiles6432Folder', 'ProgramFilesFolder', 'ProgramMenuFolder', 'RebootPending', 'SendToFolder', 'ServicePackLevel', 'StartMenuFolder', 'StartupFolder', 'System64Folder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'TerminalServer', 'UserLanguageID', 'UserUILanguageID', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', 'WindowsVolume', 'WixBundleAction', 'WixBundleCommandLineAction', 'WixBundleForcedRestartPackage', 'WixBundleElevated', 'WixBundleInstalled', 'WixBundleProviderKey', 'WixBundleTag', or 'WixBundleVersion'.", | ||
| 331 | "The RegistrySearch/@Variable attribute's value, 'VersionNT64', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFiles64Folder', 'CommonFilesFolder', 'CompatibilityMode', 'Date', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'InstallerName', 'InstallerVersion', 'LocalAppDataFolder', 'LogonUser', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFiles64Folder', 'ProgramFiles6432Folder', 'ProgramFilesFolder', 'ProgramMenuFolder', 'RebootPending', 'SendToFolder', 'ServicePackLevel', 'StartMenuFolder', 'StartupFolder', 'System64Folder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'TerminalServer', 'UserLanguageID', 'UserUILanguageID', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', 'WindowsVolume', 'WixBundleAction', 'WixBundleCommandLineAction', 'WixBundleForcedRestartPackage', 'WixBundleElevated', 'WixBundleInstalled', 'WixBundleProviderKey', 'WixBundleTag', or 'WixBundleVersion'.", | ||
| 332 | "The RegistrySearch/@Variable attribute's value, 'WixBundleAction', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFiles64Folder', 'CommonFilesFolder', 'CompatibilityMode', 'Date', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'InstallerName', 'InstallerVersion', 'LocalAppDataFolder', 'LogonUser', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFiles64Folder', 'ProgramFiles6432Folder', 'ProgramFilesFolder', 'ProgramMenuFolder', 'RebootPending', 'SendToFolder', 'ServicePackLevel', 'StartMenuFolder', 'StartupFolder', 'System64Folder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'TerminalServer', 'UserLanguageID', 'UserUILanguageID', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', 'WindowsVolume', 'WixBundleAction', 'WixBundleCommandLineAction', 'WixBundleForcedRestartPackage', 'WixBundleElevated', 'WixBundleInstalled', 'WixBundleProviderKey', 'WixBundleTag', or 'WixBundleVersion'.", | ||
| 333 | "The WindowsFeatureSearch/@Variable attribute's value, 'NTProductType', is one of the illegal options: 'AdminToolsFolder', 'AppDataFolder', 'CommonAppDataFolder', 'CommonFiles64Folder', 'CommonFilesFolder', 'CompatibilityMode', 'Date', 'DesktopFolder', 'FavoritesFolder', 'FontsFolder', 'InstallerName', 'InstallerVersion', 'LocalAppDataFolder', 'LogonUser', 'MyPicturesFolder', 'NativeMachine', 'NTProductType', 'NTSuiteBackOffice', 'NTSuiteDataCenter', 'NTSuiteEnterprise', 'NTSuitePersonal', 'NTSuiteSmallBusiness', 'NTSuiteSmallBusinessRestricted', 'NTSuiteWebServer', 'PersonalFolder', 'Privileged', 'ProgramFiles64Folder', 'ProgramFiles6432Folder', 'ProgramFilesFolder', 'ProgramMenuFolder', 'RebootPending', 'SendToFolder', 'ServicePackLevel', 'StartMenuFolder', 'StartupFolder', 'System64Folder', 'SystemFolder', 'TempFolder', 'TemplateFolder', 'TerminalServer', 'UserLanguageID', 'UserUILanguageID', 'VersionMsi', 'VersionNT', 'VersionNT64', 'WindowsFolder', 'WindowsVolume', 'WixBundleAction', 'WixBundleCommandLineAction', 'WixBundleForcedRestartPackage', 'WixBundleElevated', 'WixBundleInstalled', 'WixBundleProviderKey', 'WixBundleTag', or 'WixBundleVersion'.", | ||
| 334 | }, messages.ToArray()); | ||
| 335 | } | ||
| 336 | } | ||
| 337 | |||
| 299 | private static void Build(string[] args) | 338 | private static void Build(string[] args) |
| 300 | { | 339 | { |
| 301 | var result = WixRunner.Execute(args); | 340 | var result = WixRunner.Execute(args); |
