@joebigelow / wix-1 / commits / 38d85261

Update PopulatesCustomActionTable to verify scheduling of a custom action.

Sean Hall committed Nov 7, 2019 at 15:27 UTC 38d85261d5a64f97d6260b5bf07d101711ca9ed9
2 files changed +80 -5
src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+64 -5
@@ -252,7 +252,7 @@ namespace WixToolsetTest.CoreIntegration
252 }
253 }
254
255 - [Fact]
255 + [Fact(Skip = "Test demonstrates failure")]
256 public void PopulatesCustomActionTable()
257 {
258 var folder = TestData.Get(@"TestData");
@@ -277,17 +277,76 @@ namespace WixToolsetTest.CoreIntegration
277 result.AssertSuccess();
278
279 Assert.True(File.Exists(msiPath));
280 - var results = Query.QueryDatabase(msiPath, new[] { "Binary", "CustomAction" });
280 + var results = Query.QueryDatabase(msiPath, new[] {
281 + "AdminExecuteSequence",
282 + "AdminUISequence",
283 + "AdvtExecuteSequence",
284 + "Binary",
285 + "CustomAction",
286 + "InstallExecuteSequence",
287 + "InstallUISequence",
288 + "Property",
289 + }).Where(x => !x.StartsWith("Property:") || x.StartsWith("Property:MsiHiddenProperties\t")).ToArray();
290 Assert.Equal(new[]
291 {
292 + "AdminExecuteSequence:CostFinalize\t\t1000",
293 + "AdminExecuteSequence:CostInitialize\t\t800",
294 + "AdminExecuteSequence:CustomAction2\t\t801",
295 + "AdminExecuteSequence:FileCost\t\t900",
296 + "AdminExecuteSequence:InstallAdminPackage\t\t3900",
297 + "AdminExecuteSequence:InstallFiles\t\t4000",
298 + "AdminExecuteSequence:InstallFinalize\t\t6600",
299 + "AdminExecuteSequence:InstallInitialize\t\t1500",
300 + "AdminExecuteSequence:InstallValidate\t\t1400",
301 + "AdminUISequence:CostFinalize\t\t1000",
302 + "AdminUISequence:CostInitialize\t\t800",
303 + "AdminUISequence:CustomAction2\t\t801",
304 + "AdminUISequence:ExecuteAction\t\t1300",
305 + "AdminUISequence:FileCost\t\t900",
306 + "AdvtExecuteSequence:CostFinalize\t\t1000",
307 + "AdvtExecuteSequence:CostInitialize\t\t800",
308 + "AdvtExecuteSequence:CustomAction2\t\t801",
309 + "AdvtExecuteSequence:InstallFinalize\t\t6600",
310 + "AdvtExecuteSequence:InstallInitialize\t\t1500",
311 + "AdvtExecuteSequence:InstallValidate\t\t1400",
312 + "AdvtExecuteSequence:PublishFeatures\t\t6300",
313 + "AdvtExecuteSequence:PublishProduct\t\t6400",
314 "Binary:Binary1\t[Binary data]",
315 "CustomAction:CustomAction1\t1\tBinary1\tInvalidEntryPoint\t",
316 + "CustomAction:CustomAction2\t51\tTestAdvtExecuteSequenceProperty\t1\t",
317 "CustomAction:CustomActionWithHiddenTarget\t9217\tBinary1\tInvalidEntryPoint\t",
318 "CustomAction:DiscardOptimismAllBeingsWhoProceed\t19\t\tAbandon hope all ye who enter here.\t",
319 + "InstallExecuteSequence:CostFinalize\t\t1000",
320 + "InstallExecuteSequence:CostInitialize\t\t800",
321 + "InstallExecuteSequence:CustomAction2\t\t801",
322 + "InstallExecuteSequence:FileCost\t\t900",
323 + "InstallExecuteSequence:FindRelatedProducts\t\t25",
324 + "InstallExecuteSequence:InstallFiles\t\t4000",
325 + "InstallExecuteSequence:InstallFinalize\t\t6600",
326 + "InstallExecuteSequence:InstallInitialize\t\t1500",
327 + "InstallExecuteSequence:InstallValidate\t\t1400",
328 + "InstallExecuteSequence:LaunchConditions\t\t100",
329 + "InstallExecuteSequence:MigrateFeatureStates\t\t1200",
330 + "InstallExecuteSequence:ProcessComponents\t\t1600",
331 + "InstallExecuteSequence:PublishFeatures\t\t6300",
332 + "InstallExecuteSequence:PublishProduct\t\t6400",
333 + "InstallExecuteSequence:RegisterProduct\t\t6100",
334 + "InstallExecuteSequence:RegisterUser\t\t6000",
335 + "InstallExecuteSequence:RemoveExistingProducts\t\t1401",
336 + "InstallExecuteSequence:RemoveFiles\t\t3500",
337 + "InstallExecuteSequence:UnpublishFeatures\t\t1800",
338 + "InstallExecuteSequence:ValidateProductID\t\t700",
339 + "InstallUISequence:CostFinalize\t\t1000",
340 + "InstallUISequence:CostInitialize\t\t800",
341 + "InstallUISequence:CustomAction2\t\t801",
342 + "InstallUISequence:ExecuteAction\t\t1300",
343 + "InstallUISequence:FileCost\t\t900",
344 + "InstallUISequence:FindRelatedProducts\t\t25",
345 + "InstallUISequence:LaunchConditions\t\t100",
346 + "InstallUISequence:MigrateFeatureStates\t\t1200",
347 + "InstallUISequence:ValidateProductID\t\t700",
348 + "Property:MsiHiddenProperties\tCustomActionWithHiddenTarget",
349 }, results);
288 - var properties = Query.QueryDatabase(msiPath, new[] { "Property" });
289 - var hiddenProperties = properties.Where(q => q.StartsWith("Property:MsiHiddenProperties")).Single();
290 - Assert.Equal("Property:MsiHiddenProperties\tCustomActionWithHiddenTarget", hiddenProperties);
350 }
351 }
352
src/test/WixToolsetTest.CoreIntegration/TestData/CustomAction/UnscheduledCustomAction.wxs
+16
@@ -9,5 +9,21 @@
9 <CustomAction Id="CustomAction1" BinaryKey="Binary1" DllEntry="InvalidEntryPoint" />
10 <CustomAction Id="DiscardOptimismAllBeingsWhoProceed" Error="Abandon hope all ye who enter here." />
11 <CustomAction Id="CustomActionWithHiddenTarget" BinaryKey="Binary1" DllEntry="InvalidEntryPoint" Execute="deferred" HideTarget="yes" />
12 + <CustomAction Id="CustomAction2" Property="TestAdvtExecuteSequenceProperty" Value="1" />
13 + <AdminExecuteSequence>
14 + <Custom Action="CustomAction2" After="CostInitialize" />
15 + </AdminExecuteSequence>
16 + <AdminUISequence>
17 + <Custom Action="CustomAction2" After="CostInitialize" />
18 + </AdminUISequence>
19 + <AdvertiseExecuteSequence>
20 + <Custom Action="CustomAction2" After="CostInitialize" />
21 + </AdvertiseExecuteSequence>
22 + <InstallExecuteSequence>
23 + <Custom Action="CustomAction2" After="CostInitialize" />
24 + </InstallExecuteSequence>
25 + <InstallUISequence>
26 + <Custom Action="CustomAction2" After="CostInitialize" />
27 + </InstallUISequence>
28 </Fragment>
29 </Wix>