diff options
author | chris_bednarski <Chris.Bednarski@minfos.com.au> | 2023-08-26 08:31:28 +1000 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2023-08-26 17:58:25 -0400 |
commit | b3deb46def7d303a79f4a5eba6a921e45d5f16ef (patch) | |
tree | 3327ffd8525f793a511832172129c904ba062904 /src/ext/Firewall/test | |
parent | 537e79d3c8b99e1576db48b19c8071c0922342f2 (diff) | |
download | wix-b3deb46def7d303a79f4a5eba6a921e45d5f16ef.tar.gz wix-b3deb46def7d303a79f4a5eba6a921e45d5f16ef.tar.bz2 wix-b3deb46def7d303a79f4a5eba6a921e45d5f16ef.zip |
add firewall extension decompiler
Diffstat (limited to 'src/ext/Firewall/test')
-rw-r--r-- | src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs b/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs index b89afaf7..06a877f6 100644 --- a/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs +++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs | |||
@@ -2,9 +2,11 @@ | |||
2 | 2 | ||
3 | namespace WixToolsetTest.Firewall | 3 | namespace WixToolsetTest.Firewall |
4 | { | 4 | { |
5 | using System.IO; | ||
5 | using System.Linq; | 6 | using System.Linq; |
6 | using WixInternal.TestSupport; | 7 | using System.Xml.Linq; |
7 | using WixInternal.Core.TestPackage; | 8 | using WixInternal.Core.TestPackage; |
9 | using WixInternal.TestSupport; | ||
8 | using WixToolset.Firewall; | 10 | using WixToolset.Firewall; |
9 | using Xunit; | 11 | using Xunit; |
10 | 12 | ||
@@ -50,6 +52,55 @@ namespace WixToolsetTest.Firewall | |||
50 | }, results); | 52 | }, results); |
51 | } | 53 | } |
52 | 54 | ||
55 | [Fact] | ||
56 | public void CanRoundtripFirewallExceptions() | ||
57 | { | ||
58 | var folder = TestData.Get(@"TestData", "UsingFirewall"); | ||
59 | var build = new Builder(folder, typeof(FirewallExtensionFactory), new[] { folder }); | ||
60 | var output = Path.Combine(folder, "FirewallExceptionDecompile.xml"); | ||
61 | |||
62 | build.BuildAndDecompileAndBuild(Build, Decompile, output); | ||
63 | |||
64 | var doc = XDocument.Load(output); | ||
65 | var actual = doc.Descendants() | ||
66 | .Where(e => e.Name.Namespace == "http://wixtoolset.org/schemas/v4/wxs/firewall") | ||
67 | .Select(fe => new { Name = fe.Name.LocalName, Attributes = fe.Attributes().Select(a => $"{a.Name.LocalName}={a.Value}").ToArray() }) | ||
68 | .ToArray(); | ||
69 | |||
70 | WixAssert.CompareLineByLine(new[] | ||
71 | { | ||
72 | "FirewallException", | ||
73 | "FirewallException", | ||
74 | }, actual.Select(a => a.Name).ToArray()); | ||
75 | |||
76 | WixAssert.CompareLineByLine(new[] | ||
77 | { | ||
78 | "Id=ExampleFirewall", | ||
79 | "Name=ExampleApp", | ||
80 | "Scope=any", | ||
81 | "Port=42", | ||
82 | "Protocol=tcp", | ||
83 | "Program=[#filNdJBJmq3UCUIwmXS8x21aAsvqzk]", | ||
84 | "Profile=all", | ||
85 | "Description=An app-based firewall exception", | ||
86 | "Outbound=no", | ||
87 | "xmlns=http://wixtoolset.org/schemas/v4/wxs/firewall", | ||
88 | }, actual[0].Attributes); | ||
89 | |||
90 | WixAssert.CompareLineByLine(new[] | ||
91 | { | ||
92 | "Id=fex70IVsYNnbwiHQrEepmdTPKH8XYs", | ||
93 | "Name=ExamplePort", | ||
94 | "Scope=localSubnet", | ||
95 | "Port=42", | ||
96 | "Protocol=tcp", | ||
97 | "Profile=all", | ||
98 | "Description=A port-based firewall exception", | ||
99 | "Outbound=yes", | ||
100 | "xmlns=http://wixtoolset.org/schemas/v4/wxs/firewall", | ||
101 | }, actual[1].Attributes); | ||
102 | } | ||
103 | |||
53 | private static void Build(string[] args) | 104 | private static void Build(string[] args) |
54 | { | 105 | { |
55 | var result = WixRunner.Execute(args); | 106 | var result = WixRunner.Execute(args); |
@@ -65,5 +116,11 @@ namespace WixToolsetTest.Firewall | |||
65 | var result = WixRunner.Execute(newArgs.ToArray()); | 116 | var result = WixRunner.Execute(newArgs.ToArray()); |
66 | result.AssertSuccess(); | 117 | result.AssertSuccess(); |
67 | } | 118 | } |
119 | |||
120 | private static void Decompile(string[] args) | ||
121 | { | ||
122 | var result = WixRunner.Execute(args); | ||
123 | result.AssertSuccess(); | ||
124 | } | ||
68 | } | 125 | } |
69 | } | 126 | } |