Add tests demonstrating linker error.
Bob Arnson committed
Mar 7, 2024 at 20:48 UTC
d8c4f61e080a3950faf8fb46b0a5c849988fec8e
2 files changed
+50
-18
src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
+49
-17
@@ -19,7 +19,7 @@ namespace WixToolsetTest.UI
19
var bindFolder = TestData.Get(@"TestData", "data");
20
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
21
22
- var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
22
+ var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
23
Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t"));
24
WixAssert.CompareLineByLine(new[]
25
{
@@ -46,6 +46,11 @@ namespace WixToolsetTest.UI
46
"ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t1",
47
"ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2",
48
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
49
+ WixAssert.CompareLineByLine(new[]
50
+ {
51
+ "InstallUISequence:AdvancedWelcomeEulaDlg\tNOT Installed\t1296",
52
+ "InstallUISequence:WelcomeDlg\tInstalled AND PATCH\t1295",
53
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
54
}
55
56
[Fact]
@@ -55,7 +60,7 @@ namespace WixToolsetTest.UI
60
var bindFolder = TestData.Get(@"TestData", "data");
61
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
62
58
- var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent");
63
+ var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
64
Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t"));
65
WixAssert.CompareLineByLine(new[]
66
{
@@ -91,7 +96,7 @@ namespace WixToolsetTest.UI
96
var bindFolder = TestData.Get(@"TestData", "data");
97
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
98
94
- var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent");
99
+ var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
100
Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t"));
101
WixAssert.CompareLineByLine(new[]
102
{
@@ -120,14 +125,14 @@ namespace WixToolsetTest.UI
125
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
126
}
127
123
- [Fact]
128
+ [Fact(Skip = "Linker problem")]
129
public void CanBuildUsingWixUIFeatureTree()
130
{
131
var folder = TestData.Get(@"TestData", "WixUI_FeatureTree");
132
var bindFolder = TestData.Get(@"TestData", "data");
133
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
134
130
- var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent");
135
+ var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
136
Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t"));
137
Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t"));
138
Assert.Empty(results.Where(result => result.StartsWith("Dialog:SetupTypeDlg\t")));
@@ -150,17 +155,22 @@ namespace WixToolsetTest.UI
155
{
156
"ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X64\t1\t1",
157
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
158
+ WixAssert.CompareLineByLine(new[]
159
+ {
160
+ "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
161
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
162
}
163
155
- [Fact]
156
- public void CanBuildUsingWixUIInstallDirWithCustomizedEula()
164
+ [Fact(Skip = "Linker problem")]
165
+ public void CanBuildWithWixUIInstallDirWithCustomizedEula()
166
{
167
var folder = TestData.Get(@"TestData", "WixUI_InstallDir");
168
var bindFolder = TestData.Get(@"TestData", "data");
169
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
170
162
- var results = build.BuildAndQuery(BuildEula, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent");
171
+ var results = build.BuildAndQuery(BuildEula, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent", "InstallUISequence");
172
Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t"));
173
+ Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t"));
174
WixAssert.CompareLineByLine(new[]
175
{
176
"Binary:WixUI_Bmp_Banner\t[Binary data]",
@@ -186,6 +196,10 @@ namespace WixToolsetTest.UI
196
"ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2",
197
"ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1",
198
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
199
+ WixAssert.CompareLineByLine(new[]
200
+ {
201
+ "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
202
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
203
}
204
205
[Fact]
@@ -195,7 +209,7 @@ namespace WixToolsetTest.UI
209
var bindFolder = TestData.Get(@"TestData", "data");
210
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
211
198
- var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
212
+ var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
213
Assert.Single(results, result => result.StartsWith("Dialog:WelcomeEulaDlg\t"));
214
WixAssert.CompareLineByLine(new[]
215
{
@@ -215,6 +229,11 @@ namespace WixToolsetTest.UI
229
{
230
"ControlEvent:WelcomeEulaDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1",
231
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
232
+ WixAssert.CompareLineByLine(new[]
233
+ {
234
+ "InstallUISequence:WelcomeDlg\tInstalled AND PATCH\t1295",
235
+ "InstallUISequence:WelcomeEulaDlg\tNOT Installed\t1296",
236
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
237
}
238
239
[Fact]
@@ -255,14 +274,14 @@ namespace WixToolsetTest.UI
274
}
275
}
276
258
- [Fact]
277
+ [Fact(Skip = "Linker problem")]
278
public void CanBuildUsingWixUIMondo()
279
{
280
var folder = TestData.Get(@"TestData", "WixUI_Mondo");
281
var bindFolder = TestData.Get(@"TestData", "data");
282
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
283
265
- var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
284
+ var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent", "InstallUISequence");
285
Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t"));
286
Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t"));
287
Assert.Single(results, result => result.StartsWith("Dialog:SetupTypeDlg\t"));
@@ -286,6 +305,10 @@ namespace WixToolsetTest.UI
305
"ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t3",
306
"ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1",
307
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray());
308
+ WixAssert.CompareLineByLine(new[]
309
+ {
310
+ "InstallUISequence:WelcomeDlg\tInstalled AND PATCH\t1295",
311
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
312
}
313
314
[Fact]
@@ -302,14 +325,14 @@ namespace WixToolsetTest.UI
325
}, results.Where(s => s.StartsWith("Control:ErrorDlg\tY")).Select(s => s.Split('\t')[9]).ToArray());
326
}
327
305
- [Fact]
306
- public void CanBuildUsingWithInstallDirAndRemovedDialog()
328
+ [Fact(Skip = "Linker problem")]
329
+ public void CanBuildWithInstallDirAndRemovedDialog()
330
{
331
var folder = TestData.Get(@"TestData", "InstallDir_NoLicense");
332
var bindFolder = TestData.Get(@"TestData", "data");
333
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
334
312
- var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent");
335
+ var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent", "InstallUISequence");
336
Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t"));
337
WixAssert.CompareLineByLine(new[]
338
{
@@ -336,16 +359,21 @@ namespace WixToolsetTest.UI
359
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
360
361
Assert.Empty(results.Where(result => result.Contains("LicenseAgreementDlg")).ToArray());
362
+
363
+ WixAssert.CompareLineByLine(new[]
364
+ {
365
+ "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
366
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
367
}
368
341
- [Fact]
342
- public void CanBuildUsingWithInstallDirAndAddedDialog()
369
+ [Fact(Skip = "Linker problem")]
370
+ public void CanBuildWithInstallDirAndAddedDialog()
371
{
372
var folder = TestData.Get(@"TestData", "InstallDir_SpecialDlg");
373
var bindFolder = TestData.Get(@"TestData", "data");
374
var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
375
348
- var results = build.BuildAndQuery(BuildX64, "Binary", "Control", "Dialog", "CustomAction", "Property", "ControlEvent");
376
+ var results = build.BuildAndQuery(BuildX64, "Binary", "Control", "Dialog", "CustomAction", "Property", "ControlEvent", "InstallUISequence");
377
Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t"));
378
WixAssert.CompareLineByLine(new[]
379
{
@@ -372,6 +400,10 @@ namespace WixToolsetTest.UI
400
"ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X64\tNOT WIXUI_DONTVALIDATEPATH\t2",
401
"ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X64\t1\t1",
402
}, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray());
403
+ WixAssert.CompareLineByLine(new[]
404
+ {
405
+ "InstallUISequence:WelcomeDlg\tNOT Installed OR PATCH\t1297",
406
+ }, results.Where(r => r.StartsWith("InstallUISequence:AdvancedWelcome") || r.StartsWith("InstallUISequence:Welcome")).ToArray());
407
408
Assert.Equal(8, results.Where(result => result.StartsWith("Control:") && result.Contains("SpecialDlg")).Count());
409
Assert.Equal(5, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("SpecialDlg")).Count());
src/ext/UI/ui.cmd
+1
-1
@@ -23,7 +23,7 @@
23
msbuild -Restore -p:Configuration=%_C% -tl -nologo -warnaserror -bl:%_L%\ext_ui_build.binlog || exit /b
24
25
:: Test
26
-:: dotnet test -c %_C% --no-build test\WixToolsetTest.UI || exit /b
26
+dotnet test -c %_C% --no-build test\WixToolsetTest.UI || exit /b
27
28
:: Pack
29
msbuild -t:Pack -p:Configuration=%_C% -tl -nologo -warnaserror -p:NoBuild=true wixext\WixToolset.UI.wixext.csproj || exit /b