From 537e79d3c8b99e1576db48b19c8071c0922342f2 Mon Sep 17 00:00:00 2001 From: chris_bednarski Date: Sun, 20 Aug 2023 19:49:21 +1000 Subject: use WcaGetRecordFormattedString to get firewall rule description --- .../DynamicFirewallRules.wixproj | 13 ++++ .../DynamicFirewallRules/product.wxs | 50 ++++++++++++++ .../FirewallExtensionTests.cs | 77 ++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/DynamicFirewallRules.wixproj create mode 100644 src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/product.wxs (limited to 'src/test/msi') diff --git a/src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/DynamicFirewallRules.wixproj b/src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/DynamicFirewallRules.wixproj new file mode 100644 index 00000000..b39f7387 --- /dev/null +++ b/src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/DynamicFirewallRules.wixproj @@ -0,0 +1,13 @@ + + + + {C587F355-26FF-4D17-801F-50505C348D99} + true + + + + + + + + \ No newline at end of file diff --git a/src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/product.wxs b/src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/product.wxs new file mode 100644 index 00000000..6bc45c10 --- /dev/null +++ b/src/test/msi/TestData/FirewallExtensionTests/DynamicFirewallRules/product.wxs @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs b/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs index fce95845..3e605d7a 100644 --- a/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs +++ b/src/test/msi/WixToolsetTest.MsiE2E/FirewallExtensionTests.cs @@ -200,5 +200,82 @@ namespace WixToolsetTest.MsiE2E Verifier.VerifyFirewallRule("WiXToolset401 Test - 0001", expected); } + + [RuntimeFact] + public void FirewallRulesUseFormattedStringProperties() + { + var product = this.CreatePackageInstaller("DynamicFirewallRules"); + product.InstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); + + var expected1 = new RuleDetails("WiXToolset401 Test - 0003") + { + Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW, + ApplicationName = this.TestContext.GetTestInstallFolder(false, Path.Combine("DynamicFirewallRules", "product.wxs")), + Description = "WiX Toolset firewall exception rule integration test - dynamic app description 9999", + Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN, + EdgeTraversal = true, + EdgeTraversalOptions = 1, + Enabled = true, + InterfaceTypes = "All", + LocalAddresses = "*", + Profiles = Int32.MaxValue, + Protocol = 6, + RemoteAddresses = "LocalSubnet", + SecureFlags = 0, + LocalPorts = "9999", + RemotePorts = "*", + }; + + Verifier.VerifyFirewallRule("WiXToolset401 Test - 0003", expected1); + + var expected2 = new RuleDetails("WiXToolset401 Test - 0004") + { + Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW, + Description = "WiX Toolset firewall exception rule integration test - dynamic port description 9999", + Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN, + EdgeTraversal = false, + EdgeTraversalOptions = 0, + Enabled = true, + InterfaceTypes = "All", + LocalAddresses = "*", + Profiles = Int32.MaxValue, + Protocol = 6, + RemoteAddresses = "*", + SecureFlags = 0, + LocalPorts = "9999", + RemotePorts = "*", + }; + + Verifier.VerifyFirewallRule("WiXToolset401 Test - 0004", expected2); + + + var expected3 = new RuleDetails("WiXToolset401 Test - 0005 - 9999") + { + Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW, + ApplicationName = Path.Combine(Environment.GetEnvironmentVariable("windir"), "system32", "9999.exe"), + Description = "WiX Toolset firewall exception rule integration test - dynamic Name 9999", + Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN, + EdgeTraversal = true, + EdgeTraversalOptions = 1, + Enabled = true, + InterfaceTypes = "All", + LocalAddresses = "*", + Profiles = 2, + Protocol = 17, + RemoteAddresses = "127.0.0.1/255.255.255.255,192.168.1.1/255.255.255.255", + SecureFlags = 0, + LocalPorts = "9999", + RemotePorts = "*", + }; + + Verifier.VerifyFirewallRule("WiXToolset401 Test - 0005 - 9999", expected3); + + product.UninstallProduct(MSIExec.MSIExecReturnCode.SUCCESS); + + // verify the firewall exceptions have been removed. + Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0003")); + Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0004")); + Assert.False(Verifier.FirewallRuleExists("WiXToolset401 Test - 0005 - 9999")); + } } } -- cgit v1.2.3-55-g6feb