@joebigelow / wix / commits / a8e31958

Add failing test for issues exposed by UIExtension.

Sean Hall committed Jan 12, 2019 at 16:33 UTC a8e31958d7e1b0ef10ea8035abf1e3bf07170eb8
6 files changed +118
src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
+41
@@ -206,6 +206,47 @@ namespace WixToolsetTest.CoreIntegration
206 }
207 }
208
209 + [Fact(Skip = "Currently fails")]
210 + public void CanBuildDialogsInInstallUISequence()
211 + {
212 + var folder = TestData.Get(@"TestData\DialogsInInstallUISequence");
213 +
214 + using (var fs = new DisposableFileSystem())
215 + {
216 + var baseFolder = fs.GetFolder();
217 + var intermediateFolder = Path.Combine(baseFolder, "obj");
218 +
219 + var result = WixRunner.Execute(new[]
220 + {
221 + "build",
222 + Path.Combine(folder, "Package.wxs"),
223 + Path.Combine(folder, "PackageComponents.wxs"),
224 + "-loc", Path.Combine(folder, "Package.en-us.wxl"),
225 + "-bindpath", Path.Combine(folder, "data"),
226 + "-intermediateFolder", intermediateFolder,
227 + "-o", Path.Combine(baseFolder, @"bin\test.msi")
228 + });
229 +
230 + result.AssertSuccess();
231 +
232 + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
233 + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
234 + Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\MsiPackage\test.txt")));
235 +
236 + var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wir"));
237 + var section = intermediate.Sections.Single();
238 +
239 + var textStyle = section.Tuples.OfType<TextStyleTuple>().Single();
240 + Assert.Equal("Tahoma", textStyle.FaceName);
241 + Assert.Equal(8, textStyle.Size);
242 +
243 + var installUIActions = section.Tuples.OfType<WixActionTuple>()
244 + .Where(t => t.SequenceTable == SequenceTable.InstallUISequence)
245 + .ToList();
246 + Assert.Equal(10, installUIActions.Count);
247 + }
248 + }
249 +
250 [Fact]
251 public void CanLoadPdbGeneratedByBuild()
252 {
src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/Package.en-us.wxl new
+13
@@ -0,0 +1,13 @@
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="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 + <String Id="FeatureTitle">MsiPackage</String>
10 + <String Id="CustomFontName"><!-- NameComment -->Tahoma</String>
11 + <String Id="CustomFontSize"><!-- SizeComment -->8</String>
12 +
13 +</WixLocalization>
src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/Package.wxs new
+21
@@ -0,0 +1,21 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 + <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
4 + <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
5 +
6 + <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
7 + <MediaTemplate />
8 +
9 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
10 + <ComponentGroupRef Id="ProductComponents" />
11 + </Feature>
12 + </Product>
13 +
14 + <Fragment>
15 + <Directory Id="TARGETDIR" Name="SourceDir">
16 + <Directory Id="ProgramFilesFolder">
17 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
18 + </Directory>
19 + </Directory>
20 + </Fragment>
21 +</Wix>
src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/PackageComponents.wxs new
+38
@@ -0,0 +1,38 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 + <Fragment>
4 + <UI Id="CustomDialog">
5 + <!-- TODO: compiler can't handle loc strings for number fields -->
6 + <TextStyle Id="CustomFont" FaceName="!(loc.CustomFontName)" Size="!(loc.CustomFontSize)" />
7 + <Dialog Id="FirstDialog" Width="100" Height="100">
8 + <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="FirstDialogTitle" />
9 + </Dialog>
10 + <Dialog Id="SecondDialog" Width="100" Height="100">
11 + <Control Id="Title" Type="Text" X="0" Y="0" Width="90" Height="13" TabSkip="no" Text="SecondDialogTitle" />
12 + </Dialog>
13 +
14 + <InstallUISequence>
15 + <!-- TODO: overriding this currently causes a duplicate symbol error -->
16 + <Show Dialog="SecondDialog" Before="FirstDialog" Overridable="yes">NOT Installed</Show>
17 + </InstallUISequence>
18 + </UI>
19 + </Fragment>
20 + <Fragment>
21 + <UI Id="CustomUI">
22 + <DialogRef Id="FirstDialog" />
23 + <DialogRef Id="SecondDialog" />
24 +
25 + <Publish Dialog="FirstDialog" Control="Next" Event="NewDialog" Value="SecondDialog">Installed AND PATCH</Publish>
26 +
27 + <InstallUISequence>
28 + <Show Dialog="FirstDialog" Before="SecondDialog">Installed AND PATCH</Show>
29 + <Show Dialog="SecondDialog" Before="ExecuteAction">NOT Installed</Show>
30 + </InstallUISequence>
31 + </UI>
32 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
33 + <Component>
34 + <File Source="test.txt" />
35 + </Component>
36 + </ComponentGroup>
37 + </Fragment>
38 +</Wix>
src/test/WixToolsetTest.CoreIntegration/TestData/DialogsInInstallUISequence/data/test.txt new
+1
@@ -0,0 +1 @@
1 +This is test.txt.
\ No newline at end of file
src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+4
@@ -13,6 +13,10 @@
13 </PropertyGroup>
14
15 <ItemGroup>
16 + <Content Include="TestData\DialogsInInstallUISequence\data\test.txt" CopyToOutputDirectory="PreserveNewest" />
17 + <Content Include="TestData\DialogsInInstallUISequence\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
18 + <Content Include="TestData\DialogsInInstallUISequence\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
19 + <Content Include="TestData\DialogsInInstallUISequence\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
20 <Content Include="TestData\SimpleModule\data\test.txt" CopyToOutputDirectory="PreserveNewest" />
21 <Content Include="TestData\SimpleModule\Module.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
22 <Content Include="TestData\SimpleModule\Module.wxs" CopyToOutputDirectory="PreserveNewest" />