Consolidate Custom Action tests in CustomActionFixture
Rob Mensching committed
Jul 1, 2020 at 10:21 UTC
19a9744adcf70d75d4a7e9c4e426f6e379d3b7b3
2 files changed
+101
-99
src/test/WixToolsetTest.CoreIntegration/CustomActionFixture.cs
+101
-1
@@ -12,7 +12,7 @@ namespace WixToolsetTest.CoreIntegration
12
public class CustomActionFixture
13
{
14
[Fact(Skip = "Test demonstrates failure")]
15
- public void PopulatesCustomActionTable()
15
+ public void CanDetectCustomActionCycle()
16
{
17
var folder = TestData.Get(@"TestData");
18
@@ -37,5 +37,105 @@ namespace WixToolsetTest.CoreIntegration
37
Assert.False(result.ExitCode == 0 && warnings.Length == 0);
38
}
39
}
40
+
41
+ [Fact]
42
+ public void PopulatesCustomActionTable()
43
+ {
44
+ var folder = TestData.Get(@"TestData");
45
+
46
+ using (var fs = new DisposableFileSystem())
47
+ {
48
+ var baseFolder = fs.GetFolder();
49
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
50
+ var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
51
+
52
+ var result = WixRunner.Execute(new[]
53
+ {
54
+ "build",
55
+ Path.Combine(folder, "CustomAction", "UnscheduledCustomAction.wxs"),
56
+ Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
57
+ Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
58
+ "-bindpath", Path.Combine(folder, "SingleFile", "data"),
59
+ "-intermediateFolder", intermediateFolder,
60
+ "-o", msiPath
61
+ });
62
+
63
+ result.AssertSuccess();
64
+
65
+ Assert.True(File.Exists(msiPath));
66
+ var results = Query.QueryDatabase(msiPath, new[] {
67
+ "ActionText",
68
+ "AdminExecuteSequence",
69
+ "AdminUISequence",
70
+ "AdvtExecuteSequence",
71
+ "Binary",
72
+ "CustomAction",
73
+ "InstallExecuteSequence",
74
+ "InstallUISequence",
75
+ "Property",
76
+ }).Where(x => !x.StartsWith("Property:") || x.StartsWith("Property:MsiHiddenProperties\t")).ToArray();
77
+ Assert.Equal(new[]
78
+ {
79
+ "ActionText:CustomAction2\tProgess2Text\t",
80
+ "AdminExecuteSequence:CostFinalize\t\t1000",
81
+ "AdminExecuteSequence:CostInitialize\t\t800",
82
+ "AdminExecuteSequence:CustomAction2\t\t801",
83
+ "AdminExecuteSequence:FileCost\t\t900",
84
+ "AdminExecuteSequence:InstallAdminPackage\t\t3900",
85
+ "AdminExecuteSequence:InstallFiles\t\t4000",
86
+ "AdminExecuteSequence:InstallFinalize\t\t6600",
87
+ "AdminExecuteSequence:InstallInitialize\t\t1500",
88
+ "AdminExecuteSequence:InstallValidate\t\t1400",
89
+ "AdminUISequence:CostFinalize\t\t1000",
90
+ "AdminUISequence:CostInitialize\t\t800",
91
+ "AdminUISequence:CustomAction2\t\t801",
92
+ "AdminUISequence:ExecuteAction\t\t1300",
93
+ "AdminUISequence:FileCost\t\t900",
94
+ "AdvtExecuteSequence:CostFinalize\t\t1000",
95
+ "AdvtExecuteSequence:CostInitialize\t\t800",
96
+ "AdvtExecuteSequence:CustomAction2\t\t801",
97
+ "AdvtExecuteSequence:InstallFinalize\t\t6600",
98
+ "AdvtExecuteSequence:InstallInitialize\t\t1500",
99
+ "AdvtExecuteSequence:InstallValidate\t\t1400",
100
+ "AdvtExecuteSequence:PublishFeatures\t\t6300",
101
+ "AdvtExecuteSequence:PublishProduct\t\t6400",
102
+ "Binary:Binary1\t[Binary data]",
103
+ "CustomAction:CustomAction1\t1\tBinary1\tInvalidEntryPoint\t",
104
+ "CustomAction:CustomAction2\t51\tTestAdvtExecuteSequenceProperty\t1\t",
105
+ "CustomAction:CustomActionWithHiddenTarget\t9217\tBinary1\tInvalidEntryPoint\t",
106
+ "CustomAction:DiscardOptimismAllBeingsWhoProceed\t19\t\tAbandon hope all ye who enter here.\t",
107
+ "InstallExecuteSequence:CostFinalize\t\t1000",
108
+ "InstallExecuteSequence:CostInitialize\t\t800",
109
+ "InstallExecuteSequence:CustomAction2\t\t801",
110
+ "InstallExecuteSequence:FileCost\t\t900",
111
+ "InstallExecuteSequence:FindRelatedProducts\t\t25",
112
+ "InstallExecuteSequence:InstallFiles\t\t4000",
113
+ "InstallExecuteSequence:InstallFinalize\t\t6600",
114
+ "InstallExecuteSequence:InstallInitialize\t\t1500",
115
+ "InstallExecuteSequence:InstallValidate\t\t1400",
116
+ "InstallExecuteSequence:LaunchConditions\t\t100",
117
+ "InstallExecuteSequence:MigrateFeatureStates\t\t1200",
118
+ "InstallExecuteSequence:ProcessComponents\t\t1600",
119
+ "InstallExecuteSequence:PublishFeatures\t\t6300",
120
+ "InstallExecuteSequence:PublishProduct\t\t6400",
121
+ "InstallExecuteSequence:RegisterProduct\t\t6100",
122
+ "InstallExecuteSequence:RegisterUser\t\t6000",
123
+ "InstallExecuteSequence:RemoveExistingProducts\t\t1401",
124
+ "InstallExecuteSequence:RemoveFiles\t\t3500",
125
+ "InstallExecuteSequence:UnpublishFeatures\t\t1800",
126
+ "InstallExecuteSequence:ValidateProductID\t\t700",
127
+ "InstallUISequence:CostFinalize\t\t1000",
128
+ "InstallUISequence:CostInitialize\t\t800",
129
+ "InstallUISequence:CustomAction2\t\t801",
130
+ "InstallUISequence:ExecuteAction\t\t1300",
131
+ "InstallUISequence:FileCost\t\t900",
132
+ "InstallUISequence:FindRelatedProducts\t\t25",
133
+ "InstallUISequence:LaunchConditions\t\t100",
134
+ "InstallUISequence:MigrateFeatureStates\t\t1200",
135
+ "InstallUISequence:ValidateProductID\t\t700",
136
+ "Property:MsiHiddenProperties\tCustomActionWithHiddenTarget",
137
+ }, results);
138
+ }
139
+ }
140
}
141
}
src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
-98
@@ -338,105 +338,7 @@ namespace WixToolsetTest.CoreIntegration
338
}
339
}
340
341
- [Fact]
342
- public void PopulatesCustomActionTable()
343
- {
344
- var folder = TestData.Get(@"TestData");
345
-
346
- using (var fs = new DisposableFileSystem())
347
- {
348
- var baseFolder = fs.GetFolder();
349
- var intermediateFolder = Path.Combine(baseFolder, "obj");
350
- var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
341
352
- var result = WixRunner.Execute(new[]
353
- {
354
- "build",
355
- Path.Combine(folder, "CustomAction", "UnscheduledCustomAction.wxs"),
356
- Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
357
- Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
358
- "-bindpath", Path.Combine(folder, "SingleFile", "data"),
359
- "-intermediateFolder", intermediateFolder,
360
- "-o", msiPath
361
- });
362
-
363
- result.AssertSuccess();
364
-
365
- Assert.True(File.Exists(msiPath));
366
- var results = Query.QueryDatabase(msiPath, new[] {
367
- "ActionText",
368
- "AdminExecuteSequence",
369
- "AdminUISequence",
370
- "AdvtExecuteSequence",
371
- "Binary",
372
- "CustomAction",
373
- "InstallExecuteSequence",
374
- "InstallUISequence",
375
- "Property",
376
- }).Where(x => !x.StartsWith("Property:") || x.StartsWith("Property:MsiHiddenProperties\t")).ToArray();
377
- Assert.Equal(new[]
378
- {
379
- "ActionText:CustomAction2\tProgess2Text\t",
380
- "AdminExecuteSequence:CostFinalize\t\t1000",
381
- "AdminExecuteSequence:CostInitialize\t\t800",
382
- "AdminExecuteSequence:CustomAction2\t\t801",
383
- "AdminExecuteSequence:FileCost\t\t900",
384
- "AdminExecuteSequence:InstallAdminPackage\t\t3900",
385
- "AdminExecuteSequence:InstallFiles\t\t4000",
386
- "AdminExecuteSequence:InstallFinalize\t\t6600",
387
- "AdminExecuteSequence:InstallInitialize\t\t1500",
388
- "AdminExecuteSequence:InstallValidate\t\t1400",
389
- "AdminUISequence:CostFinalize\t\t1000",
390
- "AdminUISequence:CostInitialize\t\t800",
391
- "AdminUISequence:CustomAction2\t\t801",
392
- "AdminUISequence:ExecuteAction\t\t1300",
393
- "AdminUISequence:FileCost\t\t900",
394
- "AdvtExecuteSequence:CostFinalize\t\t1000",
395
- "AdvtExecuteSequence:CostInitialize\t\t800",
396
- "AdvtExecuteSequence:CustomAction2\t\t801",
397
- "AdvtExecuteSequence:InstallFinalize\t\t6600",
398
- "AdvtExecuteSequence:InstallInitialize\t\t1500",
399
- "AdvtExecuteSequence:InstallValidate\t\t1400",
400
- "AdvtExecuteSequence:PublishFeatures\t\t6300",
401
- "AdvtExecuteSequence:PublishProduct\t\t6400",
402
- "Binary:Binary1\t[Binary data]",
403
- "CustomAction:CustomAction1\t1\tBinary1\tInvalidEntryPoint\t",
404
- "CustomAction:CustomAction2\t51\tTestAdvtExecuteSequenceProperty\t1\t",
405
- "CustomAction:CustomActionWithHiddenTarget\t9217\tBinary1\tInvalidEntryPoint\t",
406
- "CustomAction:DiscardOptimismAllBeingsWhoProceed\t19\t\tAbandon hope all ye who enter here.\t",
407
- "InstallExecuteSequence:CostFinalize\t\t1000",
408
- "InstallExecuteSequence:CostInitialize\t\t800",
409
- "InstallExecuteSequence:CustomAction2\t\t801",
410
- "InstallExecuteSequence:FileCost\t\t900",
411
- "InstallExecuteSequence:FindRelatedProducts\t\t25",
412
- "InstallExecuteSequence:InstallFiles\t\t4000",
413
- "InstallExecuteSequence:InstallFinalize\t\t6600",
414
- "InstallExecuteSequence:InstallInitialize\t\t1500",
415
- "InstallExecuteSequence:InstallValidate\t\t1400",
416
- "InstallExecuteSequence:LaunchConditions\t\t100",
417
- "InstallExecuteSequence:MigrateFeatureStates\t\t1200",
418
- "InstallExecuteSequence:ProcessComponents\t\t1600",
419
- "InstallExecuteSequence:PublishFeatures\t\t6300",
420
- "InstallExecuteSequence:PublishProduct\t\t6400",
421
- "InstallExecuteSequence:RegisterProduct\t\t6100",
422
- "InstallExecuteSequence:RegisterUser\t\t6000",
423
- "InstallExecuteSequence:RemoveExistingProducts\t\t1401",
424
- "InstallExecuteSequence:RemoveFiles\t\t3500",
425
- "InstallExecuteSequence:UnpublishFeatures\t\t1800",
426
- "InstallExecuteSequence:ValidateProductID\t\t700",
427
- "InstallUISequence:CostFinalize\t\t1000",
428
- "InstallUISequence:CostInitialize\t\t800",
429
- "InstallUISequence:CustomAction2\t\t801",
430
- "InstallUISequence:ExecuteAction\t\t1300",
431
- "InstallUISequence:FileCost\t\t900",
432
- "InstallUISequence:FindRelatedProducts\t\t25",
433
- "InstallUISequence:LaunchConditions\t\t100",
434
- "InstallUISequence:MigrateFeatureStates\t\t1200",
435
- "InstallUISequence:ValidateProductID\t\t700",
436
- "Property:MsiHiddenProperties\tCustomActionWithHiddenTarget",
437
- }, results);
438
- }
439
- }
342
343
[Fact]
344
public void PopulatesDirectoryTableWithValidDefaultDir()