diff options
Diffstat (limited to 'src/test')
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 | <!-- | ||
4 | This 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 & 2 < 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 | ||
3 | namespace WixToolsetTest.Util | 3 | namespace 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" /> |