diff options
| author | chris_bednarski <Chris.Bednarski@minfos.com.au> | 2023-08-21 11:34:51 +1000 |
|---|---|---|
| committer | Bob Arnson <github@bobs.org> | 2023-08-26 19:09:59 -0400 |
| commit | e29b4aacf89ce060509b20a5f81df200f7d2fbc1 (patch) | |
| tree | 974188334fce21c60396400075579060ce2df62d /src/test | |
| parent | b3deb46def7d303a79f4a5eba6a921e45d5f16ef (diff) | |
| download | wix-e29b4aacf89ce060509b20a5f81df200f7d2fbc1.tar.gz wix-e29b4aacf89ce060509b20a5f81df200f7d2fbc1.tar.bz2 wix-e29b4aacf89ce060509b20a5f81df200f7d2fbc1.zip | |
remove windows xp specific code from firewall extension
Diffstat (limited to 'src/test')
4 files changed, 95 insertions, 3 deletions
diff --git a/src/test/burn/WixTestTools/Firewall/Verifier.cs b/src/test/burn/WixTestTools/Firewall/Verifier.cs index c1bf3219..2c273e7a 100644 --- a/src/test/burn/WixTestTools/Firewall/Verifier.cs +++ b/src/test/burn/WixTestTools/Firewall/Verifier.cs | |||
| @@ -254,7 +254,13 @@ namespace WixTestTools.Firewall | |||
| 254 | rule.Enabled = false; | 254 | rule.Enabled = false; |
| 255 | } | 255 | } |
| 256 | 256 | ||
| 257 | public static void RemoveFirewallRulesByName(string name) | 257 | /// <summary> |
| 258 | /// Removes a firewall rule by name. If multiple rules with the same name exist, only one of them is removed.<br/> | ||
| 259 | /// This behavior is different from <b>netsh advfirewall firewall delete rule</b> where all matching rules are deleted if multiple matches are found.<br/> | ||
| 260 | /// The firewall rule name cannot be null or an empty string. | ||
| 261 | /// </summary> | ||
| 262 | /// <param name="name">Name of the firewall rule to be removed.</param> | ||
| 263 | public static void RemoveFirewallRuleByName(string name) | ||
| 258 | { | 264 | { |
| 259 | var rules = GetINetFwRules(); | 265 | var rules = GetINetFwRules(); |
| 260 | rules.Remove(name); | 266 | rules.Remove(name); |
diff --git a/src/test/msi/TestData/FirewallExtensionTests/IgnoreFailedFirewallRules/IgnoreFailedFirewallRules.wixproj b/src/test/msi/TestData/FirewallExtensionTests/IgnoreFailedFirewallRules/IgnoreFailedFirewallRules.wixproj new file mode 100644 index 00000000..b1770b0f --- /dev/null +++ b/src/test/msi/TestData/FirewallExtensionTests/IgnoreFailedFirewallRules/IgnoreFailedFirewallRules.wixproj | |||
| @@ -0,0 +1,13 @@ | |||
| 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 | <Project Sdk="WixToolset.Sdk"> | ||
| 3 | <PropertyGroup> | ||
| 4 | <UpgradeCode>{4D188568-1CCF-4EEE-BC27-17C3DCC83E58}</UpgradeCode> | ||
| 5 | <ProductComponentsRef>true</ProductComponentsRef> | ||
| 6 | </PropertyGroup> | ||
| 7 | <ItemGroup> | ||
| 8 | <Compile Include="..\..\Templates\Product.wxs" Link="Product.wxs" /> | ||
| 9 | </ItemGroup> | ||
| 10 | <ItemGroup> | ||
| 11 | <PackageReference Include="WixToolset.Firewall.wixext" /> | ||
| 12 | </ItemGroup> | ||
| 13 | </Project> \ No newline at end of file | ||
diff --git a/src/test/msi/TestData/FirewallExtensionTests/IgnoreFailedFirewallRules/product.wxs b/src/test/msi/TestData/FirewallExtensionTests/IgnoreFailedFirewallRules/product.wxs new file mode 100644 index 00000000..d615f0c6 --- /dev/null +++ b/src/test/msi/TestData/FirewallExtensionTests/IgnoreFailedFirewallRules/product.wxs | |||
| @@ -0,0 +1,35 @@ | |||
| 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 | |||
| 3 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:fw="http://wixtoolset.org/schemas/v4/wxs/firewall"> | ||
| 4 | <Fragment> | ||
| 5 | <ComponentGroup Id="ProductComponents"> | ||
| 6 | <ComponentRef Id="FirewallComponent3"/> | ||
| 7 | </ComponentGroup> | ||
| 8 | |||
| 9 | <Property Id="RULENAME" Secure="yes" /> | ||
| 10 | <CustomAction Id="SetRuleNameDefaultValue" Property="RULENAME" Value="WiXToolset401 Test - 0008 removal" Execute="firstSequence" /> | ||
| 11 | |||
| 12 | <InstallExecuteSequence> | ||
| 13 | <Custom Action="SetRuleNameDefaultValue" After="AppSearch" Condition="NOT NORULENAME" /> | ||
| 14 | </InstallExecuteSequence> | ||
| 15 | |||
| 16 | </Fragment> | ||
| 17 | |||
| 18 | <Fragment> | ||
| 19 | <Component Id="FirewallComponent3" Guid="AA693149-B39C-4012-9DDE-92AB0CEA2386" Directory="INSTALLFOLDER" Transitive="yes"> | ||
| 20 | <File Source="$(sys.SOURCEFILEPATH)" KeyPath="yes" > | ||
| 21 | <fw:FirewallException Id="FirewallException6" | ||
| 22 | Description="WiX Toolset firewall exception rule integration test | ignore failed app properties" | ||
| 23 | Name="WiXToolset401 Test - 0006 pipe" Scope="any" IgnoreFailure="yes" /> | ||
| 24 | </File> | ||
| 25 | <fw:FirewallException Id="FirewallException7" | ||
| 26 | Description="WiX Toolset firewall exception rule integration test | ignore failed port properties" | ||
| 27 | Name="WiXToolset401 Test - 0007 pipe" Scope="any" Port="65123" IgnoreFailure="yes" /> | ||
| 28 | |||
| 29 | <fw:FirewallException Id="FirewallException8" | ||
| 30 | Description="WiX Toolset firewall exception rule integration test - removal test" | ||
| 31 | Name="[RULENAME]" Scope="any" Port="52390" Program="test.exe" | ||
| 32 | IgnoreFailure="yes" /> | ||
| 33 | </Component> | ||
| 34 | </Fragment> | ||
| 35 | </Wix> | ||
diff --git a/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs b/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs index 3e605d7a..4106cd72 100644 --- a/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs +++ b/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs | |||
| @@ -144,7 +144,7 @@ namespace WixToolsetTest.MsiE2E | |||
| 144 | var product = this.CreatePackageInstaller("FirewallRules"); | 144 | var product = this.CreatePackageInstaller("FirewallRules"); |
| 145 | product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); | 145 | product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); |
| 146 | 146 | ||
| 147 | Verifier.RemoveFirewallRulesByName("WiXToolset401 Test - 0002"); | 147 | Verifier.RemoveFirewallRuleByName("WiXToolset401 Test - 0002"); |
| 148 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0002")); | 148 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0002")); |
| 149 | 149 | ||
| 150 | product.RepairProduct(MSIExec.MSIExecReturnCode.SUCCESS); | 150 | product.RepairProduct(MSIExec.MSIExecReturnCode.SUCCESS); |
| @@ -176,7 +176,7 @@ namespace WixToolsetTest.MsiE2E | |||
| 176 | var product = this.CreatePackageInstaller("FirewallRules"); | 176 | var product = this.CreatePackageInstaller("FirewallRules"); |
| 177 | product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); | 177 | product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); |
| 178 | 178 | ||
| 179 | Verifier.RemoveFirewallRulesByName("WiXToolset401 Test - 0001"); | 179 | Verifier.RemoveFirewallRuleByName("WiXToolset401 Test - 0001"); |
| 180 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0001")); | 180 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0001")); |
| 181 | 181 | ||
| 182 | product.RepairProduct(MSIExec.MSIExecReturnCode.SUCCESS); | 182 | product.RepairProduct(MSIExec.MSIExecReturnCode.SUCCESS); |
| @@ -277,5 +277,43 @@ namespace WixToolsetTest.MsiE2E | |||
| 277 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0004")); | 277 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0004")); |
| 278 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0005 - 9999")); | 278 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0005 - 9999")); |
| 279 | } | 279 | } |
| 280 | |||
| 281 | [RuntimeFact] | ||
| 282 | public void SucceedWhenIgnoreOnFailureIsSet() | ||
| 283 | { | ||
| 284 | var product = this.CreatePackageInstaller("IgnoreFailedFirewallRules"); | ||
| 285 | var log1 = product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); | ||
| 286 | |||
| 287 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0006 pipe")); | ||
| 288 | Assert.True(LogVerifier.MessageInLogFile(log1, "failed to add app to the authorized apps list")); | ||
| 289 | |||
| 290 | Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0007 pipe")); | ||
| 291 | Assert.True(LogVerifier.MessageInLogFile(log1, "failed to add app to the authorized ports list")); | ||
| 292 | |||
| 293 | var expected = new RuleDetails("WiXToolset401 Test - 0008 removal") | ||
| 294 | { | ||
| 295 | Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW, | ||
| 296 | ApplicationName = "test.exe", | ||
| 297 | Description = "WiX Toolset firewall exception rule integration test - removal test", | ||
| 298 | Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN, | ||
| 299 | EdgeTraversal = true, | ||
| 300 | EdgeTraversalOptions = 1, | ||
| 301 | Enabled = true, | ||
| 302 | InterfaceTypes = "All", | ||
| 303 | LocalPorts = "52390", | ||
| 304 | LocalAddresses = "*", | ||
| 305 | Profiles = Int32.MaxValue, | ||
| 306 | Protocol = 6, | ||
| 307 | RemoteAddresses = "*", | ||
| 308 | RemotePorts = "*", | ||
| 309 | SecureFlags = 0, | ||
| 310 | }; | ||
| 311 | |||
| 312 | Verifier.VerifyFirewallRule("WiXToolset401 Test - 0008 removal", expected); | ||
| 313 | Verifier.RemoveFirewallRuleByName("WiXToolset401 Test - 0008 removal"); | ||
| 314 | |||
| 315 | var log2 = product.UninstallProduct(MSIExec.MSIExecReturnCode.SUCCESS, "NORULENAME=1"); | ||
| 316 | Assert.True(LogVerifier.MessageInLogFile(log2, "failed to remove firewall rule")); | ||
| 317 | } | ||
| 280 | } | 318 | } |
| 281 | } | 319 | } |
