aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Firewall/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/Firewall/test')
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs33
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msibin0 -> 196608 bytes
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj6
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs36
4 files changed, 75 insertions, 0 deletions
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs b/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
index 4b9aecd7..9b4cb2b1 100644
--- a/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
@@ -621,6 +621,39 @@ namespace WixToolsetTest.Firewall
621 }, locals.ToArray()); 621 }, locals.ToArray());
622 } 622 }
623 623
624 [TestMethod]
625 public void CanDecompileWix4FirewallPackage()
626 {
627 var folder = TestData.Get(@"TestData\DecompileWix4Firewall");
628 var output = Path.Combine(folder, "DecompiledWix4Firewall.xml");
629
630 var result = WixRunner.Execute(
631 "msi",
632 "decompile",
633 "-ext", Path.GetFullPath(typeof(FirewallExtensionFactory).Assembly.Location),
634 Path.Combine(folder, "Firewall4.msi"),
635 "-o", output
636 );
637 result.AssertSuccess();
638
639 var doc = XDocument.Load(output);
640 var actual = doc.Descendants()
641 .Where(e => e.Name.Namespace == "http://wixtoolset.org/schemas/v4/wxs/firewall")
642 .Select(fe => new { Name = fe.Name.LocalName, Attributes = fe.Attributes().Select(a => $"{a.Name.LocalName}={a.Value}").ToArray() })
643 .ToArray();
644
645 WixAssert.CompareLineByLine(new[]
646 {
647 "FirewallException",
648 "RemoteAddress",
649 "RemoteAddress",
650 "RemoteAddress",
651 "RemoteAddress",
652 "RemoteAddress",
653 "FirewallException",
654 }, actual.Select(a => a.Name).ToArray());
655 }
656
624 private static void Build(string[] args) 657 private static void Build(string[] args)
625 { 658 {
626 var result = WixRunner.Execute(args); 659 var result = WixRunner.Execute(args);
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msi b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msi
new file mode 100644
index 00000000..1dde5df4
--- /dev/null
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/Firewall4.msi
Binary files differ
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj
new file mode 100644
index 00000000..0098d7ac
--- /dev/null
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wixproj
@@ -0,0 +1,6 @@
1<Project Sdk="WixToolset.Sdk/4.0.6">
2 <ItemGroup>
3 <PackageVersion Update="WixToolset.Firewall.wixext" Version="4.0.6" />
4 <PackageReference Include="WixToolset.Firewall.wixext" />
5 </ItemGroup>
6</Project> \ No newline at end of file
diff --git a/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs
new file mode 100644
index 00000000..8a89ad6c
--- /dev/null
+++ b/src/ext/Firewall/test/WixToolsetTest.Firewall/TestData/DecompileWix4Firewall/ReferenceSource/Firewall4.wxs
@@ -0,0 +1,36 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
2 xmlns:fw="http://wixtoolset.org/schemas/v4/wxs/firewall">
3 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 <MajorUpgrade DowngradeErrorMessage="(DowngradeError)" />
5 <MediaTemplate EmbedCab="yes" />
6
7 <Feature Id="FAll">
8 <ComponentGroupRef Id="ProductComponents" />
9 </Feature>
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
15 </StandardDirectory>
16 </Fragment>
17
18 <Fragment>
19 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
20 <Component>
21 <File Name="fw.exe" Source="$(sys.SOURCEFILEPATH)">
22 <Shortcut Id="FwShortcut" Directory="INSTALLFOLDER" Name="Firewall" />
23 <fw:FirewallException Id="ExampleFirewall" Description="An app-based firewall exception" Name="ExampleApp" Port="42">
24 <fw:RemoteAddress Value="Defaultgateway" />
25 <fw:RemoteAddress Value="DHCP" />
26 <fw:RemoteAddress Value="DNS" />
27 <fw:RemoteAddress Value="255.255.255.0" />
28 <fw:RemoteAddress Value="1.1.1.1-2.2.2.2" />
29 </fw:FirewallException>
30 </File>
31
32 <fw:FirewallException Description="A port-based firewall exception" Name="ExamplePort" Port="42" Outbound="yes" Scope="localSubnet" />
33 </Component>
34 </ComponentGroup>
35 </Fragment>
36</Wix>