aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.Util/TestData/.Data/burn.exebin0 -> 463360 bytes
-rw-r--r--src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.en-us.wxl10
-rw-r--r--src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs35
-rw-r--r--src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/Shared.dll1
-rw-r--r--src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/test.txt1
-rw-r--r--src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/fakeba.dll1
-rw-r--r--src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/test.msibin0 -> 32768 bytes
-rw-r--r--src/test/WixToolsetTest.Util/UtilExtensionFixture.cs67
-rw-r--r--src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj7
9 files changed, 122 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.Util/TestData/.Data/burn.exe b/src/test/WixToolsetTest.Util/TestData/.Data/burn.exe
new file mode 100644
index 00000000..2a4f423f
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/.Data/burn.exe
Binary files differ
diff --git a/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.en-us.wxl b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.en-us.wxl
new file mode 100644
index 00000000..bc1dee83
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.en-us.wxl
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
4This file contains the declaration of all the localizable strings.
5-->
6<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7
8 <String Id="BundleName">~TestBundle</String>
9
10</WixLocalization>
diff --git a/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs
new file mode 100644
index 00000000..cafd4255
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 <Bundle Name="!(loc.BundleName)" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
5 <BootstrapperApplication SourceFile="fakeba.dll" />
6
7 <util:RegistrySearchRef Id="RegistrySearchId" />
8 <util:ProductSearchRef Id="ProductSearchId" />
9 <util:FileSearchRef Id="FileSearchId" />
10
11 <Chain>
12 <MsiPackage SourceFile="test.msi">
13 <MsiProperty Name="TEST" Value="1" />
14 </MsiPackage>
15 </Chain>
16 </Bundle>
17
18 <Fragment>
19 <util:RegistrySearch
20 Id="RegistrySearchId"
21 Variable="RegistrySearchVariable"
22 Root="HKLM"
23 Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
24 Value="Release"
25 Result="value" />
26 </Fragment>
27
28 <Fragment>
29 <util:ProductSearch Id="ProductSearchId" Variable="ProductSearchVariable" UpgradeCode="738D02BF-E231-4370-8209-E9FD4E1BE2A1" Condition="1 &amp; 2 &lt; 3" Result="version" />
30 </Fragment>
31
32 <Fragment>
33 <util:FileSearch Id="FileSearchId" Variable="FileSearchVariable" Path="%windir%\System32\mscoree.dll" Result="exists" />
34 </Fragment>
35</Wix>
diff --git a/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/Shared.dll b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/Shared.dll
new file mode 100644
index 00000000..0e461ba8
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/Shared.dll
@@ -0,0 +1 @@
This is Shared.dll. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/test.txt b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/test.txt
new file mode 100644
index 00000000..8b986220
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/MsiPackage/test.txt
@@ -0,0 +1 @@
This is test.txt \ No newline at end of file
diff --git a/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/fakeba.dll b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/fakeba.dll
new file mode 100644
index 00000000..970efdf0
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/fakeba.dll
@@ -0,0 +1 @@
This is a fakeba.dll \ No newline at end of file
diff --git a/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/test.msi b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/test.msi
new file mode 100644
index 00000000..0722d60e
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/BundleWithSearches/data/test.msi
Binary files differ
diff --git a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
index 74cf9769..f2f06af8 100644
--- a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
+++ b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
@@ -2,9 +2,12 @@
2 2
3namespace WixToolsetTest.Util 3namespace WixToolsetTest.Util
4{ 4{
5 using System.IO;
5 using System.Linq; 6 using System.Linq;
6 using WixBuildTools.TestSupport; 7 using WixBuildTools.TestSupport;
7 using WixToolset.Core.TestPackage; 8 using WixToolset.Core.TestPackage;
9 using WixToolset.Data;
10 using WixToolset.Data.Tuples;
8 using WixToolset.Util; 11 using WixToolset.Util;
9 using Xunit; 12 using Xunit;
10 13
@@ -24,6 +27,70 @@ namespace WixToolsetTest.Util
24 }, results.OrderBy(s => s).ToArray()); 27 }, results.OrderBy(s => s).ToArray());
25 } 28 }
26 29
30 [Fact]
31 public void CanBuildBundleWithSearches()
32 {
33 var burnStubPath = TestData.Get(@"TestData\.Data\burn.exe");
34 var folder = TestData.Get(@"TestData\BundleWithSearches");
35 var rootFolder = TestData.Get();
36 var wixext = Path.Combine(rootFolder, "WixToolset.Util.wixext.dll");
37
38 using (var fs = new DisposableFileSystem())
39 {
40 var baseFolder = fs.GetFolder();
41 var intermediateFolder = Path.Combine(baseFolder, "obj");
42
43 var result = WixRunner.Execute(new[]
44 {
45 "build",
46 Path.Combine(folder, "Bundle.wxs"),
47 "-ext", wixext,
48 "-loc", Path.Combine(folder, "Bundle.en-us.wxl"),
49 "-bindpath", Path.Combine(folder, "data"),
50 "-intermediateFolder", intermediateFolder,
51 "-burnStub", burnStubPath,
52 "-o", Path.Combine(baseFolder, @"bin\test.exe")
53 });
54
55 result.AssertSuccess();
56
57 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.exe")));
58#if TODO
59 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
60#endif
61
62 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir"));
63 var section = intermediate.Sections.Single();
64
65 var searchTuples = section.Tuples.OfType<WixSearchTuple>().OrderBy(t => t.Id.Id).ToList();
66 Assert.Equal(3, searchTuples.Count);
67 Assert.Equal("FileSearchId", searchTuples[0].Id.Id);
68 Assert.Equal("FileSearchVariable", searchTuples[0].Variable);
69 Assert.Equal("ProductSearchId", searchTuples[1].Id.Id);
70 Assert.Equal("ProductSearchVariable", searchTuples[1].Variable);
71 Assert.Equal("1 & 2 < 3", searchTuples[1].Condition);
72 Assert.Equal("RegistrySearchId", searchTuples[2].Id.Id);
73 Assert.Equal("RegistrySearchVariable", searchTuples[2].Variable);
74
75 var fileSearchTuple = section.Tuples.OfType<WixFileSearchTuple>().Single();
76 Assert.Equal("FileSearchId", fileSearchTuple.Id.Id);
77 Assert.Equal(@"%windir%\System32\mscoree.dll", fileSearchTuple.Path);
78 Assert.Equal(WixFileSearchAttributes.Default | WixFileSearchAttributes.WantExists, fileSearchTuple.Attributes);
79
80 var productSearchTuple = section.Tuples.OfType<WixProductSearchTuple>().Single();
81 Assert.Equal("ProductSearchId", productSearchTuple.Id.Id);
82 Assert.Equal("{738D02BF-E231-4370-8209-E9FD4E1BE2A1}", productSearchTuple.Guid);
83 Assert.Equal(WixProductSearchAttributes.Version | WixProductSearchAttributes.UpgradeCode, productSearchTuple.Attributes);
84
85 var registrySearchTuple = section.Tuples.OfType<WixRegistrySearchTuple>().Single();
86 Assert.Equal("RegistrySearchId", registrySearchTuple.Id.Id);
87 Assert.Equal(RegistryRootType.LocalMachine, registrySearchTuple.Root);
88 Assert.Equal(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full", registrySearchTuple.Key);
89 Assert.Equal("Release", registrySearchTuple.Value);
90 Assert.Equal(WixRegistrySearchAttributes.WantValue | WixRegistrySearchAttributes.Raw, registrySearchTuple.Attributes);
91 }
92 }
93
27 private static void Build(string[] args) 94 private static void Build(string[] args)
28 { 95 {
29 var result = WixRunner.Execute(args) 96 var result = WixRunner.Execute(args)
diff --git a/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj b/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
index 294844ac..6cf001a2 100644
--- a/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
+++ b/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
@@ -12,6 +12,13 @@
12 </PropertyGroup> 12 </PropertyGroup>
13 13
14 <ItemGroup> 14 <ItemGroup>
15 <Content Include="TestData\.Data\burn.exe" CopyToOutputDirectory="PreserveNewest" />
16 <Content Include="TestData\BundleWithSearches\data\fakeba.dll" CopyToOutputDirectory="PreserveNewest" />
17 <Content Include="TestData\BundleWithSearches\data\MsiPackage\Shared.dll" CopyToOutputDirectory="PreserveNewest" />
18 <Content Include="TestData\BundleWithSearches\data\MsiPackage\test.txt" CopyToOutputDirectory="PreserveNewest" />
19 <Content Include="TestData\BundleWithSearches\data\test.msi" CopyToOutputDirectory="PreserveNewest" />
20 <Content Include="TestData\BundleWithSearches\Bundle.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
21 <Content Include="TestData\BundleWithSearches\Bundle.wxs" CopyToOutputDirectory="PreserveNewest" />
15 <Content Include="TestData\UsingFileShare\example.txt" CopyToOutputDirectory="PreserveNewest" /> 22 <Content Include="TestData\UsingFileShare\example.txt" CopyToOutputDirectory="PreserveNewest" />
16 <Content Include="TestData\UsingFileShare\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> 23 <Content Include="TestData\UsingFileShare\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
17 <Content Include="TestData\UsingFileShare\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> 24 <Content Include="TestData\UsingFileShare\Package.wxs" CopyToOutputDirectory="PreserveNewest" />