diff options
Diffstat (limited to 'src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs')
-rw-r--r-- | src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs | 33 |
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); |