aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs')
-rw-r--r--src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs33
1 files changed, 33 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);