@joebigelow / wix-1 / commits / 19a9744a

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()