aboutsummaryrefslogtreecommitdiff
path: root/src/burn/test
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2026-02-04 20:47:04 -0500
committerBob Arnson <bob@firegiant.com>2026-02-04 20:47:04 -0500
commitedccb203c421d2bd820062024088c6698424d9ee (patch)
tree6b47c3eb5ca53bd9f79f3d032dc1a596d411bf38 /src/burn/test
parenta3d3963f806117ce123d95e8b77e73e1c1545b25 (diff)
downloadwix-edccb203c421d2bd820062024088c6698424d9ee.tar.gz
wix-edccb203c421d2bd820062024088c6698424d9ee.tar.bz2
wix-edccb203c421d2bd820062024088c6698424d9ee.zip
Support dual-purpose packages in Burn.bob/ConfigurableScopeBundles
Fixes https://github.com/wixtoolset/issues/issues/8958
Diffstat (limited to 'src/burn/test')
-rw-r--r--src/burn/test/BurnUnitTest/ApprovedExeTest.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/BurnTestException.h14
-rw-r--r--src/burn/test/BurnUnitTest/BurnTestFixture.h8
-rw-r--r--src/burn/test/BurnUnitTest/BurnUnitTest.h8
-rw-r--r--src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj19
-rw-r--r--src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj.filters18
-rw-r--r--src/burn/test/BurnUnitTest/CacheTest.cpp10
-rw-r--r--src/burn/test/BurnUnitTest/ElevationTest.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/EmbeddedTest.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/ExitCodeTest.cpp12
-rw-r--r--src/burn/test/BurnUnitTest/LoggingTest.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/ManifestHelpers.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/ManifestHelpers.h8
-rw-r--r--src/burn/test/BurnUnitTest/ManifestTest.cpp10
-rw-r--r--src/burn/test/BurnUnitTest/PlanTest.cpp393
-rw-r--r--src/burn/test/BurnUnitTest/RegistrationTest.cpp56
-rw-r--r--src/burn/test/BurnUnitTest/RelatedBundleTest.cpp14
-rw-r--r--src/burn/test/BurnUnitTest/SearchTest.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/AllPmouBundle_manifest.xml46
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/AllPuomBundle_manifest.xml46
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/BasicFunctionality_BundleA_manifest.xml4
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/BundlePackage_Multiple_manifest.xml8
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/ExePackage_PerUserArpEntry_manifest.xml6
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/Failure_BundleD_manifest.xml6
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/MsiTransaction_BundleAv1_manifest.xml8
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/MsuPackageFixture_manifest.xml4
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PerMachineBundle_manifest.xml33
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PerUserBundle_manifest.xml33
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PmPmouBundle_manifest.xml59
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPmouBundle_manifest.xml72
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPuomBundle_manifest.xml72
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuomBundle_manifest.xml59
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PuPmouBundle_manifest.xml59
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PuPuomBundle_manifest.xml59
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/PuomBundlePackage_manifest.xml26
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_manifest.xml8
-rw-r--r--src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_modified_manifest.xml6
-rw-r--r--src/burn/test/BurnUnitTest/VariableHelpers.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/VariableHelpers.h8
-rw-r--r--src/burn/test/BurnUnitTest/VariableTest.cpp8
-rw-r--r--src/burn/test/BurnUnitTest/VariantTest.cpp8
41 files changed, 1041 insertions, 223 deletions
diff --git a/src/burn/test/BurnUnitTest/ApprovedExeTest.cpp b/src/burn/test/BurnUnitTest/ApprovedExeTest.cpp
index da51f1f8..6798d3cb 100644
--- a/src/burn/test/BurnUnitTest/ApprovedExeTest.cpp
+++ b/src/burn/test/BurnUnitTest/ApprovedExeTest.cpp
@@ -2,11 +2,7 @@
2 2
3#include "precomp.h" 3#include "precomp.h"
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -308,5 +304,3 @@ namespace Bootstrapper
308} 304}
309} 305}
310} 306}
311}
312}
diff --git a/src/burn/test/BurnUnitTest/BurnTestException.h b/src/burn/test/BurnUnitTest/BurnTestException.h
index b9467926..b6055041 100644
--- a/src/burn/test/BurnUnitTest/BurnTestException.h
+++ b/src/burn/test/BurnUnitTest/BurnTestException.h
@@ -2,11 +2,7 @@
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 3
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -35,8 +31,6 @@ namespace Bootstrapper
35} 31}
36} 32}
37} 33}
38}
39}
40 34
41// this class is used by __TestThrowOnFailure_Format() below to deallocate 35// this class is used by __TestThrowOnFailure_Format() below to deallocate
42// the string created after the function call has returned 36// the string created after the function call has returned
@@ -83,6 +77,6 @@ LExit:
83} 77}
84#pragma warning (pop) 78#pragma warning (pop)
85 79
86#define TestThrowOnFailure(hr, s) if (FAILED(hr)) { throw gcnew Microsoft::Tools::WindowsInstallerXml::Test::Bootstrapper::BurnTestException(hr, gcnew System::String(s)); } 80#define TestThrowOnFailure(hr, s) if (FAILED(hr)) { throw gcnew WixToolset::Test::Bootstrapper::BurnTestException(hr, gcnew System::String(s)); }
87#define TestThrowOnFailure1(hr, s, p) if (FAILED(hr)) { throw gcnew Microsoft::Tools::WindowsInstallerXml::Test::Bootstrapper::BurnTestException(hr, gcnew System::String(__TestThrowOnFailure_Format(s, p))); } 81#define TestThrowOnFailure1(hr, s, p) if (FAILED(hr)) { throw gcnew WixToolset::Test::Bootstrapper::BurnTestException(hr, gcnew System::String(__TestThrowOnFailure_Format(s, p))); }
88#define TestThrowOnFailure2(hr, s, p1, p2) if (FAILED(hr)) { throw gcnew Microsoft::Tools::WindowsInstallerXml::Test::Bootstrapper::BurnTestException(hr, gcnew System::String(__TestThrowOnFailure_Format(s, p1, p2))); } 82#define TestThrowOnFailure2(hr, s, p1, p2) if (FAILED(hr)) { throw gcnew WixToolset::Test::Bootstrapper::BurnTestException(hr, gcnew System::String(__TestThrowOnFailure_Format(s, p1, p2))); }
diff --git a/src/burn/test/BurnUnitTest/BurnTestFixture.h b/src/burn/test/BurnUnitTest/BurnTestFixture.h
index 35acba67..95fd6fe5 100644
--- a/src/burn/test/BurnUnitTest/BurnTestFixture.h
+++ b/src/burn/test/BurnUnitTest/BurnTestFixture.h
@@ -2,11 +2,7 @@
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 3
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -71,5 +67,3 @@ namespace Bootstrapper
71} 67}
72} 68}
73} 69}
74}
75}
diff --git a/src/burn/test/BurnUnitTest/BurnUnitTest.h b/src/burn/test/BurnUnitTest/BurnUnitTest.h
index ed1d2956..33cfe46d 100644
--- a/src/burn/test/BurnUnitTest/BurnUnitTest.h
+++ b/src/burn/test/BurnUnitTest/BurnUnitTest.h
@@ -2,11 +2,7 @@
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 3
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -44,5 +40,3 @@ namespace Bootstrapper
44} 40}
45} 41}
46} 42}
47}
48}
diff --git a/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj b/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj
index 9704efa5..c741789e 100644
--- a/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj
+++ b/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj
@@ -22,7 +22,6 @@
22 <Platform>x64</Platform> 22 <Platform>x64</Platform>
23 </ProjectConfiguration> 23 </ProjectConfiguration>
24 </ItemGroup> 24 </ItemGroup>
25
26 <PropertyGroup Label="Globals"> 25 <PropertyGroup Label="Globals">
27 <ProjectTypes>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</ProjectTypes> 26 <ProjectTypes>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</ProjectTypes>
28 <ProjectGuid>{9D1F1BA3-9393-4833-87A3-D5F1FC08EF67}</ProjectGuid> 27 <ProjectGuid>{9D1F1BA3-9393-4833-87A3-D5F1FC08EF67}</ProjectGuid>
@@ -34,15 +33,12 @@
34 <SignOutput>false</SignOutput> 33 <SignOutput>false</SignOutput>
35 <IsWixTestProject>true</IsWixTestProject> 34 <IsWixTestProject>true</IsWixTestProject>
36 </PropertyGroup> 35 </PropertyGroup>
37
38 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 36 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
39 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 37 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
40
41 <PropertyGroup> 38 <PropertyGroup>
42 <ProjectAdditionalIncludeDirectories>$(ProjectAdditionalIncludeDirectories);$(BurnGeneratedHeaderDirectory);..\..\engine;..\..\..\api\burn\inc;..\..\..\libs\dutil\WixToolset.Dutil\inc</ProjectAdditionalIncludeDirectories> 39 <ProjectAdditionalIncludeDirectories>$(ProjectAdditionalIncludeDirectories);$(BurnGeneratedHeaderDirectory);..\..\engine;..\..\..\api\burn\inc;..\..\..\libs\dutil\WixToolset.Dutil\inc</ProjectAdditionalIncludeDirectories>
43 <ProjectAdditionalLinkLibraries>cabinet.lib;crypt32.lib;msi.lib;rpcrt4.lib;shlwapi.lib;userenv.lib;wininet.lib;wintrust.lib;$(RootBuildFolder)libs\$(Configuration)\$(WixNativeSdkLibraryToolset)\$(PlatformTarget)\dutil.lib;engine.res</ProjectAdditionalLinkLibraries> 40 <ProjectAdditionalLinkLibraries>cabinet.lib;crypt32.lib;msi.lib;rpcrt4.lib;shlwapi.lib;userenv.lib;wininet.lib;wintrust.lib;$(RootBuildFolder)libs\$(Configuration)\$(WixNativeSdkLibraryToolset)\$(PlatformTarget)\dutil.lib;engine.res</ProjectAdditionalLinkLibraries>
44 </PropertyGroup> 41 </PropertyGroup>
45
46 <ItemGroup> 42 <ItemGroup>
47 <ClCompile Include="AssemblyInfo.cpp" /> 43 <ClCompile Include="AssemblyInfo.cpp" />
48 <ClCompile Include="ApprovedExeTest.cpp" /> 44 <ClCompile Include="ApprovedExeTest.cpp" />
@@ -76,11 +72,9 @@
76 <ClInclude Include="TestRegistryFixture.h" /> 72 <ClInclude Include="TestRegistryFixture.h" />
77 <ClInclude Include="VariableHelpers.h" /> 73 <ClInclude Include="VariableHelpers.h" />
78 </ItemGroup> 74 </ItemGroup>
79
80 <ItemGroup> 75 <ItemGroup>
81 <ResourceCompile Include="BurnUnitTest.rc" /> 76 <ResourceCompile Include="BurnUnitTest.rc" />
82 </ItemGroup> 77 </ItemGroup>
83
84 <ItemGroup> 78 <ItemGroup>
85 <None Include="TestData\CacheTest\CacheSignatureTest.File" CopyToOutputDirectory="PreserveNewest" /> 79 <None Include="TestData\CacheTest\CacheSignatureTest.File" CopyToOutputDirectory="PreserveNewest" />
86 <None Include="TestData\PlanTest\BasicFunctionality_BundleA_manifest.xml" CopyToOutputDirectory="PreserveNewest" /> 80 <None Include="TestData\PlanTest\BasicFunctionality_BundleA_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
@@ -91,14 +85,23 @@
91 <None Include="TestData\PlanTest\MsuPackageFixture_manifest.xml" CopyToOutputDirectory="PreserveNewest" /> 85 <None Include="TestData\PlanTest\MsuPackageFixture_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
92 <None Include="TestData\PlanTest\Slipstream_BundleA_manifest.xml" CopyToOutputDirectory="PreserveNewest" /> 86 <None Include="TestData\PlanTest\Slipstream_BundleA_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
93 <None Include="TestData\PlanTest\Slipstream_BundleA_modified_manifest.xml" CopyToOutputDirectory="PreserveNewest" /> 87 <None Include="TestData\PlanTest\Slipstream_BundleA_modified_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
88 <None Include="TestData\PlanTest\AllPmouBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
89 <None Include="TestData\PlanTest\AllPuomBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
90 <None Include="TestData\PlanTest\PerUserBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
91 <None Include="TestData\PlanTest\PerMachineBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
92 <None Include="TestData\PlanTest\PuPmouBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
93 <None Include="TestData\PlanTest\PuPuomBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
94 <None Include="TestData\PlanTest\PmPuomBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
95 <None Include="TestData\PlanTest\PmPmouBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
96 <None Include="TestData\PlanTest\PmPuPmouBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
97 <None Include="TestData\PlanTest\PmPuPuomBundle_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
98 <None Include="TestData\PlanTest\PuomBundlePackage_manifest.xml" CopyToOutputDirectory="PreserveNewest" />
94 </ItemGroup> 99 </ItemGroup>
95
96 <ItemGroup> 100 <ItemGroup>
97 <ProjectReference Include="..\..\engine\engine.vcxproj"> 101 <ProjectReference Include="..\..\engine\engine.vcxproj">
98 <Project>{8119537D-E1D9-6591-D51A-49770A2F9C37}</Project> 102 <Project>{8119537D-E1D9-6591-D51A-49770A2F9C37}</Project>
99 </ProjectReference> 103 </ProjectReference>
100 </ItemGroup> 104 </ItemGroup>
101
102 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 105 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
103 <Import Project="..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.targets" /> 106 <Import Project="..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.targets" />
104</Project> 107</Project>
diff --git a/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj.filters b/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj.filters
index aac5ab8b..0c458f48 100644
--- a/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj.filters
+++ b/src/burn/test/BurnUnitTest/BurnUnitTest.vcxproj.filters
@@ -98,4 +98,20 @@
98 <Filter>Resource Files</Filter> 98 <Filter>Resource Files</Filter>
99 </ResourceCompile> 99 </ResourceCompile>
100 </ItemGroup> 100 </ItemGroup>
101</Project> 101 <ItemGroup>
102 <None Include="$(MSBuildThisFileDirectory)xunit.runner.visualstudio.testadapter.dll" />
103 <None Include="$(MSBuildThisFileDirectory)xunit.abstractions.dll" />
104 <None Include="$(MSBuildThisFileDirectory)xunit.runner.reporters.net452.dll" />
105 <None Include="$(MSBuildThisFileDirectory)xunit.runner.utility.net452.dll" />
106 <None Include="TestData\CacheTest\CacheSignatureTest.File" />
107 <None Include="TestData\PlanTest\BasicFunctionality_BundleA_manifest.xml" />
108 <None Include="TestData\PlanTest\BundlePackage_Multiple_manifest.xml" />
109 <None Include="TestData\PlanTest\ExePackage_PerUserArpEntry_manifest.xml" />
110 <None Include="TestData\PlanTest\Failure_BundleD_manifest.xml" />
111 <None Include="TestData\PlanTest\PuomWithPerMachineBundle_manifest.xml" />
112 <None Include="TestData\PlanTest\MsiTransaction_BundleAv1_manifest.xml" />
113 <None Include="TestData\PlanTest\MsuPackageFixture_manifest.xml" />
114 <None Include="TestData\PlanTest\Slipstream_BundleA_manifest.xml" />
115 <None Include="TestData\PlanTest\Slipstream_BundleA_modified_manifest.xml" />
116 </ItemGroup>
117</Project> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/CacheTest.cpp b/src/burn/test/BurnUnitTest/CacheTest.cpp
index 8e3660b2..c142e673 100644
--- a/src/burn/test/BurnUnitTest/CacheTest.cpp
+++ b/src/burn/test/BurnUnitTest/CacheTest.cpp
@@ -23,11 +23,7 @@ typedef struct _CACHE_TEST_CONTEXT
23{ 23{
24} CACHE_TEST_CONTEXT; 24} CACHE_TEST_CONTEXT;
25 25
26namespace Microsoft 26namespace WixToolset
27{
28namespace Tools
29{
30namespace WindowsInstallerXml
31{ 27{
32namespace Test 28namespace Test
33{ 29{
@@ -158,7 +154,7 @@ namespace Bootstrapper
158 hr = StrAllocHexDecode(L"25e61cd83485062b70713aebddd3fe4992826cb121466fddc8de3eacb1e42f39d4bdd8455d95eec8c9529ced4c0296ab861931fe2c86df2f2b4e8d259a6d9223", &pb, &cb); 154 hr = StrAllocHexDecode(L"25e61cd83485062b70713aebddd3fe4992826cb121466fddc8de3eacb1e42f39d4bdd8455d95eec8c9529ced4c0296ab861931fe2c86df2f2b4e8d259a6d9223", &pb, &cb);
159 Assert::Equal(S_OK, hr); 155 Assert::Equal(S_OK, hr);
160 156
161 package.fPerMachine = FALSE; 157 package.scope = BOOTSTRAPPER_PACKAGE_SCOPE_PER_USER;
162 package.sczCacheId = L"Bootstrapper.CacheTest.CacheSignatureTest"; 158 package.sczCacheId = L"Bootstrapper.CacheTest.CacheSignatureTest";
163 payload.sczKey = L"CacheSignatureTest.PayloadKey"; 159 payload.sczKey = L"CacheSignatureTest.PayloadKey";
164 payload.sczFilePath = L"CacheSignatureTest.File"; 160 payload.sczFilePath = L"CacheSignatureTest.File";
@@ -192,8 +188,6 @@ namespace Bootstrapper
192} 188}
193} 189}
194} 190}
195}
196}
197 191
198static HRESULT CALLBACK CacheTestEventRoutine( 192static HRESULT CALLBACK CacheTestEventRoutine(
199 __in BURN_CACHE_MESSAGE* /*pMessage*/, 193 __in BURN_CACHE_MESSAGE* /*pMessage*/,
diff --git a/src/burn/test/BurnUnitTest/ElevationTest.cpp b/src/burn/test/BurnUnitTest/ElevationTest.cpp
index 81e9f93e..feacdb7c 100644
--- a/src/burn/test/BurnUnitTest/ElevationTest.cpp
+++ b/src/burn/test/BurnUnitTest/ElevationTest.cpp
@@ -25,11 +25,7 @@ static HRESULT ProcessChildMessages(
25 __out DWORD* pdwResult 25 __out DWORD* pdwResult
26 ); 26 );
27 27
28namespace Microsoft 28namespace WixToolset
29{
30namespace Tools
31{
32namespace WindowsInstallerXml
33{ 29{
34namespace Test 30namespace Test
35{ 31{
@@ -92,8 +88,6 @@ namespace Bootstrapper
92} 88}
93} 89}
94} 90}
95}
96}
97 91
98 92
99static BOOL STDAPICALLTYPE ElevateTest_ShellExecuteExW( 93static BOOL STDAPICALLTYPE ElevateTest_ShellExecuteExW(
diff --git a/src/burn/test/BurnUnitTest/EmbeddedTest.cpp b/src/burn/test/BurnUnitTest/EmbeddedTest.cpp
index a19790ad..33f03282 100644
--- a/src/burn/test/BurnUnitTest/EmbeddedTest.cpp
+++ b/src/burn/test/BurnUnitTest/EmbeddedTest.cpp
@@ -33,11 +33,7 @@ static int EmbeddedTest_GenericMessageHandler(
33 __in LPVOID pvContext 33 __in LPVOID pvContext
34 ); 34 );
35 35
36namespace Microsoft 36namespace WixToolset
37{
38namespace Tools
39{
40namespace WindowsInstallerXml
41{ 37{
42namespace Test 38namespace Test
43{ 39{
@@ -84,8 +80,6 @@ namespace Bootstrapper
84} 80}
85} 81}
86} 82}
87}
88}
89 83
90 84
91static BOOL STDAPICALLTYPE EmbeddedTest_CreateProcessW( 85static BOOL STDAPICALLTYPE EmbeddedTest_CreateProcessW(
diff --git a/src/burn/test/BurnUnitTest/ExitCodeTest.cpp b/src/burn/test/BurnUnitTest/ExitCodeTest.cpp
index 9b66f4c0..0529fa45 100644
--- a/src/burn/test/BurnUnitTest/ExitCodeTest.cpp
+++ b/src/burn/test/BurnUnitTest/ExitCodeTest.cpp
@@ -2,11 +2,7 @@
2 2
3#include "precomp.h" 3#include "precomp.h"
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -328,7 +324,7 @@ static void LoadEngineState(
328 L"<BurnManifest>" 324 L"<BurnManifest>"
329 L" <Payload Id='test.exe' FilePath='test.exe' Packaging='external' SourcePath='test.exe' Hash='000000000000' FileSize='1' />" 325 L" <Payload Id='test.exe' FilePath='test.exe' Packaging='external' SourcePath='test.exe' Hash='000000000000' FileSize='1' />"
330 L" <Chain>" 326 L" <Chain>"
331 L" <ExePackage Id='Custom' Cache='remove' CacheId='test.exe' InstallSize='1' Size='1' PerMachine='no' Permanent='yes' Vital='yes' DetectCondition='' InstallArguments='[ExeExitCode]' UninstallArguments='' Uninstallable='no' RepairArguments='' Repairable='no' Protocol='none' DetectionType='condition'>" 327 L" <ExePackage Id='Custom' Cache='remove' CacheId='test.exe' InstallSize='1' Size='1' Scope='peruser' Permanent='yes' Vital='yes' DetectCondition='' InstallArguments='[ExeExitCode]' UninstallArguments='' Uninstallable='no' RepairArguments='' Repairable='no' Protocol='none' DetectionType='condition'>"
332 L" <ExitCode Code='0' Type='2' />" 328 L" <ExitCode Code='0' Type='2' />"
333 L" <ExitCode Code='3' Type='3' />" 329 L" <ExitCode Code='3' Type='3' />"
334 L" <ExitCode Code='4' Type='4' />" 330 L" <ExitCode Code='4' Type='4' />"
@@ -349,7 +345,7 @@ static void LoadEngineState(
349 L" <ExitCode Code='*' Type='1' />" 345 L" <ExitCode Code='*' Type='1' />"
350 L" <PayloadRef Id='test.exe' />" 346 L" <PayloadRef Id='test.exe' />"
351 L" </ExePackage>" 347 L" </ExePackage>"
352 L" <ExePackage Id='Standard' Cache='remove' CacheId='test.exe' InstallSize='1' Size='1' PerMachine='no' Permanent='yes' Vital='yes' DetectCondition='' InstallArguments='[ExeExitCode]' UninstallArguments='' Uninstallable='no' RepairArguments='' Repairable='no' Protocol='none' DetectionType='condition'>" 348 L" <ExePackage Id='Standard' Cache='remove' CacheId='test.exe' InstallSize='1' Size='1' Scope='peruser' Permanent='yes' Vital='yes' DetectCondition='' InstallArguments='[ExeExitCode]' UninstallArguments='' Uninstallable='no' RepairArguments='' Repairable='no' Protocol='none' DetectionType='condition'>"
353 L" <PayloadRef Id='test.exe' />" 349 L" <PayloadRef Id='test.exe' />"
354 L" </ExePackage>" 350 L" </ExePackage>"
355 L" </Chain>" 351 L" </Chain>"
@@ -376,5 +372,3 @@ static void LoadEngineState(
376} 372}
377} 373}
378} 374}
379}
380}
diff --git a/src/burn/test/BurnUnitTest/LoggingTest.cpp b/src/burn/test/BurnUnitTest/LoggingTest.cpp
index ed74c875..7619b913 100644
--- a/src/burn/test/BurnUnitTest/LoggingTest.cpp
+++ b/src/burn/test/BurnUnitTest/LoggingTest.cpp
@@ -2,11 +2,7 @@
2 2
3#include "precomp.h" 3#include "precomp.h"
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -64,5 +60,3 @@ namespace Bootstrapper
64} 60}
65} 61}
66} 62}
67}
68}
diff --git a/src/burn/test/BurnUnitTest/ManifestHelpers.cpp b/src/burn/test/BurnUnitTest/ManifestHelpers.cpp
index 96d5fab4..b68504aa 100644
--- a/src/burn/test/BurnUnitTest/ManifestHelpers.cpp
+++ b/src/burn/test/BurnUnitTest/ManifestHelpers.cpp
@@ -7,11 +7,7 @@ using namespace System;
7using namespace Xunit; 7using namespace Xunit;
8 8
9 9
10namespace Microsoft 10namespace WixToolset
11{
12namespace Tools
13{
14namespace WindowsInstallerXml
15{ 11{
16namespace Test 12namespace Test
17{ 13{
@@ -37,5 +33,3 @@ namespace Bootstrapper
37} 33}
38} 34}
39} 35}
40}
41}
diff --git a/src/burn/test/BurnUnitTest/ManifestHelpers.h b/src/burn/test/BurnUnitTest/ManifestHelpers.h
index e3e57555..e3c97c64 100644
--- a/src/burn/test/BurnUnitTest/ManifestHelpers.h
+++ b/src/burn/test/BurnUnitTest/ManifestHelpers.h
@@ -2,11 +2,7 @@
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 3
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -20,5 +16,3 @@ void LoadBundleXmlHelper(LPCWSTR wzDocument, IXMLDOMElement** ppixeBundle);
20} 16}
21} 17}
22} 18}
23}
24}
diff --git a/src/burn/test/BurnUnitTest/ManifestTest.cpp b/src/burn/test/BurnUnitTest/ManifestTest.cpp
index 4959cee0..4e6bac24 100644
--- a/src/burn/test/BurnUnitTest/ManifestTest.cpp
+++ b/src/burn/test/BurnUnitTest/ManifestTest.cpp
@@ -2,11 +2,7 @@
2 2
3#include "precomp.h" 3#include "precomp.h"
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -40,7 +36,7 @@ namespace Bootstrapper
40 " <UX PrimaryPayloadId='ux.exe'>" 36 " <UX PrimaryPayloadId='ux.exe'>"
41 " <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='u0' />" 37 " <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='u0' />"
42 " </UX>" 38 " </UX>"
43 " <Registration Code='{D54F896D-1952-43e6-9C67-B5652240618C}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no' />" 39 " <Registration Code='{D54F896D-1952-43e6-9C67-B5652240618C}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' Scope='peruser' />"
44 " <Variable Id='Variable1' Type='numeric' Value='1' Hidden='no' Persisted='no' />" 40 " <Variable Id='Variable1' Type='numeric' Value='1' Hidden='no' Persisted='no' />"
45 " <RegistrySearch Id='Search1' Type='exists' Root='HKLM' Key='SOFTWARE\\Microsoft' Variable='Variable1' Condition='0' />" 41 " <RegistrySearch Id='Search1' Type='exists' Root='HKLM' Key='SOFTWARE\\Microsoft' Variable='Variable1' Condition='0' />"
46 "</BurnManifest>"; 42 "</BurnManifest>";
@@ -67,5 +63,3 @@ namespace Bootstrapper
67} 63}
68} 64}
69} 65}
70}
71}
diff --git a/src/burn/test/BurnUnitTest/PlanTest.cpp b/src/burn/test/BurnUnitTest/PlanTest.cpp
index e2850a62..7e7d84cc 100644
--- a/src/burn/test/BurnUnitTest/PlanTest.cpp
+++ b/src/burn/test/BurnUnitTest/PlanTest.cpp
@@ -2,12 +2,20 @@
2 2
3#include "precomp.h" 3#include "precomp.h"
4 4
5#if TODO_REIMPLEMENT
5static HRESULT WINAPI PlanTestBAProc( 6static HRESULT WINAPI PlanTestBAProc(
6 __in BOOTSTRAPPER_APPLICATION_MESSAGE message, 7 __in BOOTSTRAPPER_APPLICATION_MESSAGE message,
7 __in const LPVOID pvArgs, 8 __in const LPVOID pvArgs,
8 __inout LPVOID pvResults, 9 __inout LPVOID pvResults,
9 __in_opt LPVOID pvContext 10 __in_opt LPVOID pvContext
10 ); 11 );
12#endif
13
14struct REDIRECTED_LOGGING_CONTEXT
15{
16 LPSTR pszBuffer;
17};
18
11 19
12static LPCWSTR wzArpEntryExeManifestFileName = L"ExePackage_PerUserArpEntry_manifest.xml"; 20static LPCWSTR wzArpEntryExeManifestFileName = L"ExePackage_PerUserArpEntry_manifest.xml";
13static LPCWSTR wzMsiTransactionManifestFileName = L"MsiTransaction_BundleAv1_manifest.xml"; 21static LPCWSTR wzMsiTransactionManifestFileName = L"MsiTransaction_BundleAv1_manifest.xml";
@@ -28,11 +36,7 @@ static BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE vRelatedBundlePlanType = BOOTSTRAPP
28static BURN_DEPENDENCY_ACTION registerActions1[] = { BURN_DEPENDENCY_ACTION_REGISTER }; 36static BURN_DEPENDENCY_ACTION registerActions1[] = { BURN_DEPENDENCY_ACTION_REGISTER };
29static BURN_DEPENDENCY_ACTION unregisterActions1[] = { BURN_DEPENDENCY_ACTION_UNREGISTER }; 37static BURN_DEPENDENCY_ACTION unregisterActions1[] = { BURN_DEPENDENCY_ACTION_UNREGISTER };
30 38
31namespace Microsoft 39namespace WixToolset
32{
33namespace Tools
34{
35namespace WindowsInstallerXml
36{ 40{
37namespace Test 41namespace Test
38{ 42{
@@ -43,12 +47,314 @@ namespace Bootstrapper
43 47
44 public ref class PlanTest : BurnUnitTest 48 public ref class PlanTest : BurnUnitTest
45 { 49 {
50 private:
51 void ScopeTest(
52 LPCWSTR wzManifestFileName,
53 BOOL fDefaultPlanPerMachine,
54 BOOL fDefaultRegistrationPerMachine,
55 BOOL fPerUserPlanPerMachine,
56 BOOL fPerUserRegistrationPerMachine,
57 BOOL fPerMachinePlanPerMachine,
58 BOOL fPerMachineRegistrationPerMachine
59 )
60 {
61 HRESULT hr = S_OK;
62 BURN_ENGINE_STATE engineState = { };
63 BURN_ENGINE_STATE* pEngineState = &engineState;
64 BURN_PLAN* pPlan = &engineState.plan;
65
66 InitializeEngineStateForCorePlan(wzManifestFileName, pEngineState);
67 DetectAttachedContainerAsAttached(pEngineState);
68 DetectPermanentPackagesAsPresentAndCached(pEngineState);
69
70 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
71 NativeAssert::Succeeded(hr, "CorePlan default failed");
72
73 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
74 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_DEFAULT, pPlan->plannedScope);
75 Assert::Equal<DWORD>(fDefaultPlanPerMachine, pPlan->fPerMachine);
76 Assert::Equal<DWORD>(fDefaultRegistrationPerMachine, engineState.registration.fPerMachine);
77
78 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_PER_USER);
79 NativeAssert::Succeeded(hr, "CorePlan per-user failed");
80
81 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
82 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_USER, pPlan->plannedScope);
83 Assert::Equal<DWORD>(fPerUserPlanPerMachine, pPlan->fPerMachine);
84 Assert::Equal<DWORD>(fPerUserRegistrationPerMachine, engineState.registration.fPerMachine);
85
86 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_PER_MACHINE);
87 NativeAssert::Succeeded(hr, "CorePlan per-machine failed");
88
89 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
90 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_MACHINE, pPlan->plannedScope);
91 Assert::Equal<DWORD>(fPerMachinePlanPerMachine, pPlan->fPerMachine);
92 Assert::Equal<DWORD>(fPerMachineRegistrationPerMachine, engineState.registration.fPerMachine);
93 }
94
46 public: 95 public:
47 PlanTest(BurnTestFixture^ fixture) : BurnUnitTest(fixture) 96 PlanTest(BurnTestFixture^ fixture) : BurnUnitTest(fixture)
48 { 97 {
49 } 98 }
50 99
51 [Fact] 100 [Fact]
101 void CommandLineScopeTestNoop()
102 {
103 HRESULT hr = S_OK;
104 BURN_ENGINE_STATE engineState = { };
105 BURN_ENGINE_STATE* pEngineState = &engineState;
106 BURN_PLAN* pPlan = &engineState.plan;
107
108 engineState.command.commandLineScope = BOOTSTRAPPER_SCOPE_PER_MACHINE;
109
110 InitializeEngineStateForCorePlan(L"AllPmouBundle_manifest.xml", pEngineState);
111 DetectAttachedContainerAsAttached(pEngineState);
112 DetectPermanentPackagesAsPresentAndCached(pEngineState);
113
114 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_PER_USER);
115 NativeAssert::Succeeded(hr, "CorePlan default failed");
116
117 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
118 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_USER, pPlan->plannedScope);
119 Assert::Equal<DWORD>(FALSE, pPlan->fPerMachine);
120 Assert::Equal<DWORD>(FALSE, engineState.registration.fPerMachine);
121 }
122
123 [Fact]
124 void CommandLineScopePerUserTest()
125 {
126 HRESULT hr = S_OK;
127 BURN_ENGINE_STATE engineState = { };
128 BURN_ENGINE_STATE* pEngineState = &engineState;
129 BURN_PLAN* pPlan = &engineState.plan;
130
131 engineState.command.commandLineScope = BOOTSTRAPPER_SCOPE_PER_USER;
132
133 InitializeEngineStateForCorePlan(L"AllPmouBundle_manifest.xml", pEngineState);
134 DetectAttachedContainerAsAttached(pEngineState);
135 DetectPermanentPackagesAsPresentAndCached(pEngineState);
136
137 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
138 NativeAssert::Succeeded(hr, "CorePlan default failed");
139
140 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
141 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_USER, pPlan->plannedScope);
142 Assert::Equal<DWORD>(FALSE, pPlan->fPerMachine);
143 Assert::Equal<DWORD>(FALSE, engineState.registration.fPerMachine);
144 }
145
146 [Fact]
147 void CommandLineScopePerMachineTest()
148 {
149 HRESULT hr = S_OK;
150 BURN_ENGINE_STATE engineState = { };
151 BURN_ENGINE_STATE* pEngineState = &engineState;
152 BURN_PLAN* pPlan = &engineState.plan;
153
154 engineState.command.commandLineScope = BOOTSTRAPPER_SCOPE_PER_MACHINE;
155
156 InitializeEngineStateForCorePlan(L"AllPmouBundle_manifest.xml", pEngineState);
157 DetectAttachedContainerAsAttached(pEngineState);
158 DetectPermanentPackagesAsPresentAndCached(pEngineState);
159
160 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
161 NativeAssert::Succeeded(hr, "CorePlan default failed");
162
163 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
164 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_MACHINE, pPlan->plannedScope);
165 Assert::Equal<DWORD>(TRUE, pPlan->fPerMachine);
166 Assert::Equal<DWORD>(TRUE, engineState.registration.fPerMachine);
167 }
168
169 [Fact]
170 void BundlePackageScopeTestNoop()
171 {
172 HRESULT hr = S_OK;
173 BURN_ENGINE_STATE engineState = { };
174 BURN_ENGINE_STATE* pEngineState = &engineState;
175 BURN_PLAN* pPlan = &engineState.plan;
176
177 engineState.command.commandLineScope = BOOTSTRAPPER_SCOPE_PER_MACHINE;
178
179 InitializeEngineStateForCorePlan(L"PuomBundlePackage_manifest.xml", pEngineState);
180 DetectAttachedContainerAsAttached(pEngineState);
181 DetectPermanentPackagesAsPresentAndCached(pEngineState);
182
183 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_PER_USER);
184 NativeAssert::Succeeded(hr, "CorePlan default failed");
185
186 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
187 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_USER, pPlan->plannedScope);
188 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_DEFAULT, engineState.packages.rgPackages[0].fPerMachine);
189 Assert::Equal<DWORD>(FALSE, pPlan->fPerMachine);
190 Assert::Equal<DWORD>(FALSE, engineState.registration.fPerMachine);
191 }
192
193 [Fact]
194 void BundlePackageScopeTestSucceeds()
195 {
196 HRESULT hr = S_OK;
197 BURN_ENGINE_STATE engineState = { };
198 BURN_ENGINE_STATE* pEngineState = &engineState;
199 BURN_PLAN* pPlan = &engineState.plan;
200
201 engineState.command.commandLineScope = BOOTSTRAPPER_SCOPE_PER_MACHINE;
202
203 InitializeEngineStateForCorePlan(L"PuomBundlePackage_manifest.xml", pEngineState);
204 DetectAttachedContainerAsAttached(pEngineState);
205 DetectPermanentPackagesAsPresentAndCached(pEngineState);
206
207 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
208 NativeAssert::Succeeded(hr, "CorePlan default failed");
209
210 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
211 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_MACHINE, pPlan->plannedScope);
212 Assert::Equal<DWORD>(BOOTSTRAPPER_SCOPE_PER_MACHINE, engineState.packages.rgPackages[0].fPerMachine);
213 Assert::Equal<DWORD>(TRUE, pPlan->fPerMachine);
214 Assert::Equal<DWORD>(TRUE, engineState.registration.fPerMachine);
215 }
216
217 [Fact]
218 void AllPerUserScopeTest()
219 {
220 ScopeTest(
221 L"PerUserBundle_manifest.xml",
222 FALSE /*fDefaultPlanPerMachine*/,
223 FALSE /*fDefaultRegistrationPerMachine*/,
224 FALSE /*fPerUserPlanPerMachine*/,
225 FALSE /*fPerUserRegistrationPerMachine*/,
226 FALSE /*fPerMachinePlanPerMachine*/,
227 FALSE /*fPerMachineRegistrationPerMachine*/
228 );
229 }
230
231 [Fact]
232 void AllPerMachineScopeTest()
233 {
234 ScopeTest(
235 L"PerMachineBundle_manifest.xml",
236 TRUE /*fDefaultPlanPerMachine*/,
237 TRUE /*fDefaultRegistrationPerMachine*/,
238 TRUE /*fPerUserPlanPerMachine*/,
239 TRUE /*fPerUserRegistrationPerMachine*/,
240 TRUE /*fPerMachinePlanPerMachine*/,
241 TRUE /*fPerMachineRegistrationPerMachine*/
242 );
243 }
244
245 [Fact]
246 void AllPerMachineOrUserPackagesScopeTest()
247 {
248 ScopeTest(
249 L"AllPmouBundle_manifest.xml",
250 TRUE /*fDefaultPlanPerMachine*/,
251 TRUE /*fDefaultRegistrationPerMachine*/,
252 FALSE /*fPerUserPlanPerMachine*/,
253 FALSE /*fPerUserRegistrationPerMachine*/,
254 TRUE /*fPerMachinePlanPerMachine*/,
255 TRUE /*fPerMachineRegistrationPerMachine*/
256 );
257 }
258
259 [Fact]
260 void AllPerUserOrMachinePackagesScopeTest()
261 {
262 ScopeTest(
263 L"AllPuomBundle_manifest.xml",
264 FALSE /*fDefaultPlanPerMachine*/,
265 FALSE /*fDefaultRegistrationPerMachine*/,
266 FALSE /*fPerUserPlanPerMachine*/,
267 FALSE /*fPerUserRegistrationPerMachine*/,
268 TRUE /*fPerMachinePlanPerMachine*/,
269 TRUE /*fPerMachineRegistrationPerMachine*/
270 );
271 }
272
273 [Fact]
274 void PerMachineAndPerMachineOrUserScopeTest()
275 {
276 ScopeTest(
277 L"PmPmouBundle_manifest.xml",
278 TRUE /*fDefaultPlanPerMachine*/,
279 TRUE /*fDefaultRegistrationPerMachine*/,
280 TRUE /*fPerUserPlanPerMachine*/,
281 FALSE /*fPerUserRegistrationPerMachine*/,
282 TRUE /*fPerMachinePlanPerMachine*/,
283 TRUE /*fPerMachineRegistrationPerMachine*/
284 );
285 }
286
287 [Fact]
288 void PerMachineAndPerUserOrMachineScopeTest()
289 {
290 ScopeTest(
291 L"PmPuomBundle_manifest.xml",
292 TRUE /*fDefaultPlanPerMachine*/,
293 FALSE /*fDefaultRegistrationPerMachine*/,
294 TRUE /*fPerUserPlanPerMachine*/,
295 FALSE /*fPerUserRegistrationPerMachine*/,
296 TRUE /*fPerMachinePlanPerMachine*/,
297 TRUE /*fPerMachineRegistrationPerMachine*/
298 );
299 }
300
301 [Fact]
302 void PerMachineAndPerUserAndPerMachineOrUserScopeTest()
303 {
304 ScopeTest(
305 L"PmPuPmouBundle_manifest.xml",
306 TRUE /*fDefaultPlanPerMachine*/,
307 FALSE /*fDefaultRegistrationPerMachine*/,
308 TRUE /*fPerUserPlanPerMachine*/,
309 FALSE /*fPerUserRegistrationPerMachine*/,
310 TRUE /*fPerMachinePlanPerMachine*/,
311 FALSE /*fPerMachineRegistrationPerMachine*/
312 );
313 }
314
315 [Fact]
316 void PerMachineAndPerUserAndPerUserOrMachineScopeTest()
317 {
318 ScopeTest(
319 L"PmPuPuomBundle_manifest.xml",
320 TRUE /*fDefaultPlanPerMachine*/,
321 FALSE /*fDefaultRegistrationPerMachine*/,
322 TRUE /*fPerUserPlanPerMachine*/,
323 FALSE /*fPerUserRegistrationPerMachine*/,
324 TRUE /*fPerMachinePlanPerMachine*/,
325 FALSE /*fPerMachineRegistrationPerMachine*/
326 );
327 }
328
329 [Fact]
330 void PerUserAndPerMachineOrUserScopeTest()
331 {
332 ScopeTest(
333 L"PuPmouBundle_manifest.xml",
334 TRUE /*fDefaultPlanPerMachine*/,
335 FALSE /*fDefaultRegistrationPerMachine*/,
336 FALSE /*fPerUserPlanPerMachine*/,
337 FALSE /*fPerUserRegistrationPerMachine*/,
338 TRUE /*fPerMachinePlanPerMachine*/,
339 FALSE /*fPerMachineRegistrationPerMachine*/
340 );
341 }
342
343 [Fact]
344 void PerUserAndPerUserOrMachineScopeTest()
345 {
346 ScopeTest(
347 L"PuPuomBundle_manifest.xml",
348 FALSE /*fDefaultPlanPerMachine*/,
349 FALSE /*fDefaultRegistrationPerMachine*/,
350 FALSE /*fPerUserPlanPerMachine*/,
351 FALSE /*fPerUserRegistrationPerMachine*/,
352 TRUE /*fPerMachinePlanPerMachine*/,
353 FALSE /*fPerMachineRegistrationPerMachine*/
354 );
355 }
356
357 [Fact]
52 void ArpEntryExeInstallTest() 358 void ArpEntryExeInstallTest()
53 { 359 {
54 HRESULT hr = S_OK; 360 HRESULT hr = S_OK;
@@ -60,7 +366,7 @@ namespace Bootstrapper
60 DetectAttachedContainerAsAttached(pEngineState); 366 DetectAttachedContainerAsAttached(pEngineState);
61 DetectPermanentPackagesAsPresentAndCached(pEngineState); 367 DetectPermanentPackagesAsPresentAndCached(pEngineState);
62 368
63 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 369 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
64 NativeAssert::Succeeded(hr, "CorePlan failed"); 370 NativeAssert::Succeeded(hr, "CorePlan failed");
65 371
66 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 372 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -154,12 +460,13 @@ namespace Bootstrapper
154 460
155 pEngineState->packages.rgPackages[1].currentState = BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE; 461 pEngineState->packages.rgPackages[1].currentState = BOOTSTRAPPER_PACKAGE_STATE_OBSOLETE;
156 462
157 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 463 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
158 NativeAssert::Succeeded(hr, "CorePlan failed"); 464 NativeAssert::Succeeded(hr, "CorePlan failed");
159 465
160 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 466 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
161 NativeAssert::StringEqual(L"{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}", pPlan->wzBundleCode); 467 NativeAssert::StringEqual(L"{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}", pPlan->wzBundleCode);
162 NativeAssert::StringEqual(L"{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}", pPlan->wzBundleProviderKey); 468 NativeAssert::StringEqual(L"{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}", pPlan->wzBundleProviderKey);
469
163 Assert::Equal<BOOL>(FALSE, pPlan->fEnabledForwardCompatibleBundle); 470 Assert::Equal<BOOL>(FALSE, pPlan->fEnabledForwardCompatibleBundle);
164 Assert::Equal<BOOL>(FALSE, pPlan->fPerMachine); 471 Assert::Equal<BOOL>(FALSE, pPlan->fPerMachine);
165 Assert::Equal<BOOL>(TRUE, pPlan->fCanAffectMachineState); 472 Assert::Equal<BOOL>(TRUE, pPlan->fCanAffectMachineState);
@@ -233,7 +540,7 @@ namespace Bootstrapper
233 InitializeEngineStateForCorePlan(wzArpEntryExeManifestFileName, pEngineState); 540 InitializeEngineStateForCorePlan(wzArpEntryExeManifestFileName, pEngineState);
234 DetectPackagesAsPresentAndCached(pEngineState); 541 DetectPackagesAsPresentAndCached(pEngineState);
235 542
236 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 543 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
237 NativeAssert::Succeeded(hr, "CorePlan failed"); 544 NativeAssert::Succeeded(hr, "CorePlan failed");
238 545
239 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 546 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -326,9 +633,11 @@ namespace Bootstrapper
326 DetectPackagesAsAbsent(pEngineState); 633 DetectPackagesAsAbsent(pEngineState);
327 DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"1.0.0.0", BOOTSTRAPPER_RELATION_UPGRADE); 634 DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"1.0.0.0", BOOTSTRAPPER_RELATION_UPGRADE);
328 635
329 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 636 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
330 NativeAssert::Succeeded(hr, "CorePlan failed"); 637 NativeAssert::Succeeded(hr, "CorePlan failed");
331 638
639 PlanDump(pPlan);
640
332 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 641 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
333 NativeAssert::StringEqual(L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", pPlan->wzBundleCode); 642 NativeAssert::StringEqual(L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", pPlan->wzBundleCode);
334 NativeAssert::StringEqual(L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", pPlan->wzBundleProviderKey); 643 NativeAssert::StringEqual(L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", pPlan->wzBundleProviderKey);
@@ -486,7 +795,7 @@ namespace Bootstrapper
486 InitializeEngineStateForCorePlan(wzMsiTransactionManifestFileName, pEngineState); 795 InitializeEngineStateForCorePlan(wzMsiTransactionManifestFileName, pEngineState);
487 DetectPackagesAsPresentAndCached(pEngineState); 796 DetectPackagesAsPresentAndCached(pEngineState);
488 797
489 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 798 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
490 NativeAssert::Succeeded(hr, "CorePlan failed"); 799 NativeAssert::Succeeded(hr, "CorePlan failed");
491 800
492 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 801 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -627,7 +936,7 @@ namespace Bootstrapper
627 DetectAttachedContainerAsAttached(pEngineState); 936 DetectAttachedContainerAsAttached(pEngineState);
628 DetectPermanentPackagesAsPresentAndCached(pEngineState); 937 DetectPermanentPackagesAsPresentAndCached(pEngineState);
629 938
630 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 939 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
631 NativeAssert::Succeeded(hr, "CorePlan failed"); 940 NativeAssert::Succeeded(hr, "CorePlan failed");
632 941
633 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 942 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -742,7 +1051,7 @@ namespace Bootstrapper
742 DetectAttachedContainerAsAttached(pEngineState); 1051 DetectAttachedContainerAsAttached(pEngineState);
743 DetectPackagesAsPresentAndCached(pEngineState); 1052 DetectPackagesAsPresentAndCached(pEngineState);
744 1053
745 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_REPAIR); 1054 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_REPAIR, BOOTSTRAPPER_SCOPE_DEFAULT);
746 NativeAssert::Succeeded(hr, "CorePlan failed"); 1055 NativeAssert::Succeeded(hr, "CorePlan failed");
747 1056
748 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_REPAIR, pPlan->action); 1057 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_REPAIR, pPlan->action);
@@ -836,7 +1145,7 @@ namespace Bootstrapper
836 DetectAttachedContainerAsAttached(pEngineState); 1145 DetectAttachedContainerAsAttached(pEngineState);
837 DetectPackagesAsPresentAndCached(pEngineState); 1146 DetectPackagesAsPresentAndCached(pEngineState);
838 1147
839 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 1148 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
840 NativeAssert::Succeeded(hr, "CorePlan failed"); 1149 NativeAssert::Succeeded(hr, "CorePlan failed");
841 1150
842 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 1151 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -955,7 +1264,7 @@ namespace Bootstrapper
955 DetectPackagesAsAbsent(pEngineState); 1264 DetectPackagesAsAbsent(pEngineState);
956 DetectCompatibleMsiPackage(pEngineState, pEngineState->packages.rgPackages, L"{C24F3903-38E7-4D44-8037-D9856B3C5046}", L"2.0.0.0"); 1265 DetectCompatibleMsiPackage(pEngineState, pEngineState->packages.rgPackages, L"{C24F3903-38E7-4D44-8037-D9856B3C5046}", L"2.0.0.0");
957 1266
958 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 1267 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
959 NativeAssert::Succeeded(hr, "CorePlan failed"); 1268 NativeAssert::Succeeded(hr, "CorePlan failed");
960 1269
961 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 1270 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -1055,7 +1364,7 @@ namespace Bootstrapper
1055 vfUseRelatedBundlePlanType = TRUE; 1364 vfUseRelatedBundlePlanType = TRUE;
1056 vRelatedBundlePlanType = BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_UPGRADE; 1365 vRelatedBundlePlanType = BOOTSTRAPPER_RELATED_BUNDLE_PLAN_TYPE_UPGRADE;
1057 1366
1058 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 1367 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1059 NativeAssert::Succeeded(hr, "CorePlan failed"); 1368 NativeAssert::Succeeded(hr, "CorePlan failed");
1060 1369
1061 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 1370 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -1174,7 +1483,7 @@ namespace Bootstrapper
1174 BURN_RELATED_BUNDLE* pRelatedBundle = DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0", BOOTSTRAPPER_RELATION_UPGRADE); 1483 BURN_RELATED_BUNDLE* pRelatedBundle = DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0", BOOTSTRAPPER_RELATION_UPGRADE);
1175 pRelatedBundle->fPlannable = FALSE; 1484 pRelatedBundle->fPlannable = FALSE;
1176 1485
1177 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 1486 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1178 NativeAssert::Succeeded(hr, "CorePlan failed"); 1487 NativeAssert::Succeeded(hr, "CorePlan failed");
1179 1488
1180 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 1489 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -1276,7 +1585,7 @@ namespace Bootstrapper
1276 DetectAttachedContainerAsAttached(pEngineState); 1585 DetectAttachedContainerAsAttached(pEngineState);
1277 DetectPermanentPackagesAsPresentAndCached(pEngineState); 1586 DetectPermanentPackagesAsPresentAndCached(pEngineState);
1278 1587
1279 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 1588 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1280 NativeAssert::Succeeded(hr, "CorePlan failed"); 1589 NativeAssert::Succeeded(hr, "CorePlan failed");
1281 1590
1282 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 1591 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -1369,7 +1678,7 @@ namespace Bootstrapper
1369 DetectAttachedContainerAsAttached(pEngineState); 1678 DetectAttachedContainerAsAttached(pEngineState);
1370 DetectPermanentPackagesAsPresentAndCached(pEngineState); 1679 DetectPermanentPackagesAsPresentAndCached(pEngineState);
1371 1680
1372 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_LAYOUT); 1681 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_LAYOUT, BOOTSTRAPPER_SCOPE_DEFAULT);
1373 NativeAssert::Succeeded(hr, "CorePlan failed"); 1682 NativeAssert::Succeeded(hr, "CorePlan failed");
1374 1683
1375 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_LAYOUT, pPlan->action); 1684 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_LAYOUT, pPlan->action);
@@ -1452,7 +1761,7 @@ namespace Bootstrapper
1452 DetectPackagesAsAbsent(pEngineState); 1761 DetectPackagesAsAbsent(pEngineState);
1453 DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0", BOOTSTRAPPER_RELATION_UPGRADE); 1762 DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0", BOOTSTRAPPER_RELATION_UPGRADE);
1454 1763
1455 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_CACHE); 1764 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_CACHE, BOOTSTRAPPER_SCOPE_DEFAULT);
1456 NativeAssert::Succeeded(hr, "CorePlan failed"); 1765 NativeAssert::Succeeded(hr, "CorePlan failed");
1457 1766
1458 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_CACHE, pPlan->action); 1767 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_CACHE, pPlan->action);
@@ -1541,7 +1850,7 @@ namespace Bootstrapper
1541 DetectPackagesAsAbsent(pEngineState); 1850 DetectPackagesAsAbsent(pEngineState);
1542 DetectRelatedBundle(pEngineState, L"{AF8355C9-CCDD-4D61-BF5F-EA5F948D8F01}", L"1.1.0.0", BOOTSTRAPPER_RELATION_UPGRADE); 1851 DetectRelatedBundle(pEngineState, L"{AF8355C9-CCDD-4D61-BF5F-EA5F948D8F01}", L"1.1.0.0", BOOTSTRAPPER_RELATION_UPGRADE);
1543 1852
1544 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 1853 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1545 NativeAssert::Succeeded(hr, "CorePlan failed"); 1854 NativeAssert::Succeeded(hr, "CorePlan failed");
1546 1855
1547 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 1856 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -1616,7 +1925,7 @@ namespace Bootstrapper
1616 vfUseRelatedBundleRequestState = TRUE; 1925 vfUseRelatedBundleRequestState = TRUE;
1617 vRelatedBundleRequestState = BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT; 1926 vRelatedBundleRequestState = BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT;
1618 1927
1619 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 1928 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1620 NativeAssert::Succeeded(hr, "CorePlan failed"); 1929 NativeAssert::Succeeded(hr, "CorePlan failed");
1621 1930
1622 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 1931 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -1705,7 +2014,7 @@ namespace Bootstrapper
1705 vfUseRelatedBundleRequestState = TRUE; 2014 vfUseRelatedBundleRequestState = TRUE;
1706 vRelatedBundleRequestState = BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT; 2015 vRelatedBundleRequestState = BOOTSTRAPPER_REQUEST_STATE_FORCE_PRESENT;
1707 2016
1708 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 2017 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1709 NativeAssert::Succeeded(hr, "CorePlan failed"); 2018 NativeAssert::Succeeded(hr, "CorePlan failed");
1710 2019
1711 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 2020 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -1798,7 +2107,7 @@ namespace Bootstrapper
1798 DetectPackagesAsAbsent(pEngineState); 2107 DetectPackagesAsAbsent(pEngineState);
1799 DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0", BOOTSTRAPPER_RELATION_UPGRADE); 2108 DetectRelatedBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0", BOOTSTRAPPER_RELATION_UPGRADE);
1800 2109
1801 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 2110 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1802 NativeAssert::Succeeded(hr, "CorePlan failed"); 2111 NativeAssert::Succeeded(hr, "CorePlan failed");
1803 2112
1804 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 2113 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -1904,7 +2213,7 @@ namespace Bootstrapper
1904 2213
1905 pEngineState->registration.detectedRegistrationType = BOOTSTRAPPER_REGISTRATION_TYPE_FULL; 2214 pEngineState->registration.detectedRegistrationType = BOOTSTRAPPER_REGISTRATION_TYPE_FULL;
1906 2215
1907 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_MODIFY); 2216 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_MODIFY, BOOTSTRAPPER_SCOPE_DEFAULT);
1908 NativeAssert::Succeeded(hr, "CorePlan failed"); 2217 NativeAssert::Succeeded(hr, "CorePlan failed");
1909 2218
1910 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_MODIFY, pPlan->action); 2219 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_MODIFY, pPlan->action);
@@ -1983,7 +2292,7 @@ namespace Bootstrapper
1983 InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); 2292 InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState);
1984 DetectPackagesAsPresentAndCached(pEngineState); 2293 DetectPackagesAsPresentAndCached(pEngineState);
1985 2294
1986 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 2295 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
1987 NativeAssert::Succeeded(hr, "CorePlan failed"); 2296 NativeAssert::Succeeded(hr, "CorePlan failed");
1988 2297
1989 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 2298 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -2084,7 +2393,7 @@ namespace Bootstrapper
2084 DetectPackagesAsPresentAndCached(pEngineState); 2393 DetectPackagesAsPresentAndCached(pEngineState);
2085 DetectBundleDependent(pEngineState, L"{29855EB1-724D-4285-A89C-5D37D8549DCD}"); 2394 DetectBundleDependent(pEngineState, L"{29855EB1-724D-4285-A89C-5D37D8549DCD}");
2086 2395
2087 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 2396 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2088 NativeAssert::Succeeded(hr, "CorePlan failed"); 2397 NativeAssert::Succeeded(hr, "CorePlan failed");
2089 2398
2090 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 2399 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -2154,7 +2463,7 @@ namespace Bootstrapper
2154 InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); 2463 InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState);
2155 DetectAsRelatedUpgradeBundle(&engineState, L"{02940F3E-C83E-452D-BFCF-C943777ACEAE}", L"2.0.0.0"); 2464 DetectAsRelatedUpgradeBundle(&engineState, L"{02940F3E-C83E-452D-BFCF-C943777ACEAE}", L"2.0.0.0");
2156 2465
2157 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 2466 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2158 NativeAssert::Succeeded(hr, "CorePlan failed"); 2467 NativeAssert::Succeeded(hr, "CorePlan failed");
2159 2468
2160 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 2469 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -2240,7 +2549,7 @@ namespace Bootstrapper
2240 pEngineState->packages.rgPackages[0].currentState = BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED; 2549 pEngineState->packages.rgPackages[0].currentState = BOOTSTRAPPER_PACKAGE_STATE_SUPERSEDED;
2241 pEngineState->packages.rgPackages[0].Msi.operation = BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE; 2550 pEngineState->packages.rgPackages[0].Msi.operation = BOOTSTRAPPER_RELATED_OPERATION_DOWNGRADE;
2242 2551
2243 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 2552 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2244 NativeAssert::Succeeded(hr, "CorePlan failed"); 2553 NativeAssert::Succeeded(hr, "CorePlan failed");
2245 2554
2246 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 2555 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -2328,7 +2637,7 @@ namespace Bootstrapper
2328 InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); 2637 InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState);
2329 DetectPackagesAsPresentAndCached(pEngineState); 2638 DetectPackagesAsPresentAndCached(pEngineState);
2330 2639
2331 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL); 2640 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2332 NativeAssert::Succeeded(hr, "CorePlan failed"); 2641 NativeAssert::Succeeded(hr, "CorePlan failed");
2333 2642
2334 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL, pPlan->action); 2643 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL, pPlan->action);
@@ -2430,7 +2739,7 @@ namespace Bootstrapper
2430 DetectAttachedContainerAsAttached(pEngineState); 2739 DetectAttachedContainerAsAttached(pEngineState);
2431 DetectPackagesAsAbsent(pEngineState); 2740 DetectPackagesAsAbsent(pEngineState);
2432 2741
2433 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 2742 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2434 NativeAssert::Succeeded(hr, "CorePlan failed"); 2743 NativeAssert::Succeeded(hr, "CorePlan failed");
2435 2744
2436 llPlannedAction = VariableGetNumericHelper(&engineState.variables, BURN_BUNDLE_ACTION); 2745 llPlannedAction = VariableGetNumericHelper(&engineState.variables, BURN_BUNDLE_ACTION);
@@ -2523,7 +2832,7 @@ namespace Bootstrapper
2523 DetectPermanentPackagesAsPresentAndCached(pEngineState); 2832 DetectPermanentPackagesAsPresentAndCached(pEngineState);
2524 PlanTestDetectPatchInitialize(pEngineState); 2833 PlanTestDetectPatchInitialize(pEngineState);
2525 2834
2526 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 2835 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2527 NativeAssert::Succeeded(hr, "CorePlan failed"); 2836 NativeAssert::Succeeded(hr, "CorePlan failed");
2528 2837
2529 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 2838 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -2587,8 +2896,14 @@ namespace Bootstrapper
2587 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", registerActions1, 1); 2896 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", registerActions1, 1);
2588 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 2897 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
2589 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 2898 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
2899
2900
2590 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PatchA", registerActions1, 1); 2901 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PatchA", registerActions1, 1);
2902
2903
2591 pExecuteAction = ValidateDeletedExecuteMspTarget(pPlan, fRollback, dwIndex++, L"PatchA", BOOTSTRAPPER_ACTION_STATE_INSTALL, L"{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}", TRUE, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, BOOTSTRAPPER_MSI_FILE_VERSIONING_MISSING_OR_OLDER, TRUE); 2904 pExecuteAction = ValidateDeletedExecuteMspTarget(pPlan, fRollback, dwIndex++, L"PatchA", BOOTSTRAPPER_ACTION_STATE_INSTALL, L"{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}", TRUE, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, BOOTSTRAPPER_MSI_FILE_VERSIONING_MISSING_OR_OLDER, TRUE);
2905
2906
2592 ValidateExecuteMspTargetPatch(pExecuteAction, 0, L"PatchA"); 2907 ValidateExecuteMspTargetPatch(pExecuteAction, 0, L"PatchA");
2593 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 2908 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
2594 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PatchA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", registerActions1, 1); 2909 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PatchA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", registerActions1, 1);
@@ -2654,7 +2969,7 @@ namespace Bootstrapper
2654 InitializeEngineStateForCorePlan(wzSlipstreamManifestFileName, pEngineState); 2969 InitializeEngineStateForCorePlan(wzSlipstreamManifestFileName, pEngineState);
2655 DetectPackagesAsPresentAndCached(pEngineState); 2970 DetectPackagesAsPresentAndCached(pEngineState);
2656 2971
2657 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 2972 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2658 NativeAssert::Succeeded(hr, "CorePlan failed"); 2973 NativeAssert::Succeeded(hr, "CorePlan failed");
2659 2974
2660 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 2975 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -2784,7 +3099,7 @@ namespace Bootstrapper
2784 vfUsePackageRequestState = TRUE; 3099 vfUsePackageRequestState = TRUE;
2785 vPackageRequestState = BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT; 3100 vPackageRequestState = BOOTSTRAPPER_REQUEST_STATE_FORCE_ABSENT;
2786 3101
2787 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); 3102 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2788 NativeAssert::Succeeded(hr, "CorePlan failed"); 3103 NativeAssert::Succeeded(hr, "CorePlan failed");
2789 3104
2790 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action); 3105 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNINSTALL, pPlan->action);
@@ -2885,7 +3200,7 @@ namespace Bootstrapper
2885 InitializeEngineStateForCorePlan(wzSlipstreamModifiedManifestFileName, pEngineState); 3200 InitializeEngineStateForCorePlan(wzSlipstreamModifiedManifestFileName, pEngineState);
2886 DetectPackagesAsAbsent(pEngineState); 3201 DetectPackagesAsAbsent(pEngineState);
2887 3202
2888 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL); 3203 hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_INSTALL, BOOTSTRAPPER_SCOPE_DEFAULT);
2889 NativeAssert::Succeeded(hr, "CorePlan failed"); 3204 NativeAssert::Succeeded(hr, "CorePlan failed");
2890 3205
2891 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action); 3206 Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_INSTALL, pPlan->action);
@@ -3031,7 +3346,7 @@ namespace Bootstrapper
3031 Assert::True(FileExistsEx(sczFilePath, NULL), "Test file does not exist."); 3346 Assert::True(FileExistsEx(sczFilePath, NULL), "Test file does not exist.");
3032 3347
3033 hr = ManifestLoadXmlFromFile(sczFilePath, pEngineState); 3348 hr = ManifestLoadXmlFromFile(sczFilePath, pEngineState);
3034 NativeAssert::Succeeded(hr, "Failed to load manifest."); 3349 NativeAssert::Succeeded(hr, "Failed to load test manifest.");
3035 } 3350 }
3036 finally 3351 finally
3037 { 3352 {
@@ -3222,7 +3537,7 @@ namespace Bootstrapper
3222 for (DWORD j = 0; j < pPackage->Msi.cSlipstreamMspPackages; ++j) 3537 for (DWORD j = 0; j < pPackage->Msi.cSlipstreamMspPackages; ++j)
3223 { 3538 {
3224 BURN_PACKAGE* pMspPackage = pPackage->Msi.rgSlipstreamMsps[j].pMspPackage; 3539 BURN_PACKAGE* pMspPackage = pPackage->Msi.rgSlipstreamMsps[j].pMspPackage;
3225 MspEngineAddDetectedTargetProduct(&pEngineState->packages, pMspPackage, j, pPackage->Msi.sczProductCode, pPackage->fPerMachine ? MSIINSTALLCONTEXT_MACHINE : MSIINSTALLCONTEXT_USERUNMANAGED); 3540 MspEngineAddDetectedTargetProduct(&pEngineState->packages, pMspPackage, j, pPackage->Msi.sczProductCode, pPackage->scope == BOOTSTRAPPER_PACKAGE_SCOPE_PER_MACHINE ? MSIINSTALLCONTEXT_MACHINE : MSIINSTALLCONTEXT_USERUNMANAGED);
3226 3541
3227 BURN_MSPTARGETPRODUCT* pTargetProduct = pMspPackage->Msp.rgTargetProducts + (pMspPackage->Msp.cTargetProductCodes - 1); 3542 BURN_MSPTARGETPRODUCT* pTargetProduct = pMspPackage->Msp.rgTargetProducts + (pMspPackage->Msp.cTargetProductCodes - 1);
3228 pTargetProduct->patchPackageState = BOOTSTRAPPER_PACKAGE_STATE_PRESENT; 3543 pTargetProduct->patchPackageState = BOOTSTRAPPER_PACKAGE_STATE_PRESENT;
@@ -3759,8 +4074,8 @@ namespace Bootstrapper
3759 void ValidatePlannedProvider( 4074 void ValidatePlannedProvider(
3760 __in BURN_PLAN* pPlan, 4075 __in BURN_PLAN* pPlan,
3761 __in UINT uIndex, 4076 __in UINT uIndex,
3762 __in LPCWSTR wzKey, 4077 __in_z LPCWSTR wzKey,
3763 __in LPCWSTR wzName 4078 __in_z_opt LPCWSTR wzName
3764 ) 4079 )
3765 { 4080 {
3766 Assert::InRange(uIndex + 1u, 1u, pPlan->cPlannedProviders); 4081 Assert::InRange(uIndex + 1u, 1u, pPlan->cPlannedProviders);
@@ -3811,8 +4126,6 @@ namespace Bootstrapper
3811} 4126}
3812} 4127}
3813} 4128}
3814}
3815}
3816 4129
3817#if TODO_REIMPLEMENT 4130#if TODO_REIMPLEMENT
3818 4131
diff --git a/src/burn/test/BurnUnitTest/RegistrationTest.cpp b/src/burn/test/BurnUnitTest/RegistrationTest.cpp
index 3068eb6a..1c43c442 100644
--- a/src/burn/test/BurnUnitTest/RegistrationTest.cpp
+++ b/src/burn/test/BurnUnitTest/RegistrationTest.cpp
@@ -9,11 +9,7 @@
9#define TEST_BUNDLE_UPGRADE_CODE L"{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}" 9#define TEST_BUNDLE_UPGRADE_CODE L"{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}"
10 10
11 11
12namespace Microsoft 12namespace WixToolset
13{
14namespace Tools
15{
16namespace WindowsInstallerXml
17{ 13{
18namespace Test 14namespace Test
19{ 15{
@@ -73,7 +69,7 @@ namespace Bootstrapper
73 L" <UX PrimaryPayloadId='ux.exe'>" 69 L" <UX PrimaryPayloadId='ux.exe'>"
74 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />" 70 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />"
75 L" </UX>" 71 L" </UX>"
76 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 72 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Scope='peruser' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe'>"
77 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />" 73 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />"
78 L" </Registration>" 74 L" </Registration>"
79 L"</Bundle>"; 75 L"</Bundle>";
@@ -93,6 +89,12 @@ namespace Bootstrapper
93 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 89 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
94 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 90 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
95 91
92 hr = RegistrationSetPaths(&registration, &cache);
93 TestThrowOnFailure(hr, "Failed to set registration paths.");
94
95 hr = RegistrationPlanInitialize(&registration);
96 TestThrowOnFailure(hr, "Failed to initialize registration for the plan.");
97
96 plan.action = BOOTSTRAPPER_ACTION_INSTALL; 98 plan.action = BOOTSTRAPPER_ACTION_INSTALL;
97 plan.pCommand = &command; 99 plan.pCommand = &command;
98 plan.pInternalCommand = &internalCommand; 100 plan.pInternalCommand = &internalCommand;
@@ -173,7 +175,7 @@ namespace Bootstrapper
173 L" <UX PrimaryPayloadId='ux.exe'>" 175 L" <UX PrimaryPayloadId='ux.exe'>"
174 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />" 176 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />"
175 L" </UX>" 177 L" </UX>"
176 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 178 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Scope='peruser' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe'>"
177 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='Product1' InProgressDisplayName='Product1 Installation' DisplayVersion='1.0.0.0' />" 179 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='Product1' InProgressDisplayName='Product1 Installation' DisplayVersion='1.0.0.0' />"
178 L" </Registration>" 180 L" </Registration>"
179 L"</Bundle>"; 181 L"</Bundle>";
@@ -193,6 +195,12 @@ namespace Bootstrapper
193 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 195 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
194 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 196 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
195 197
198 hr = RegistrationSetPaths(&registration, &cache);
199 TestThrowOnFailure(hr, "Failed to set registration paths.");
200
201 hr = RegistrationPlanInitialize(&registration);
202 TestThrowOnFailure(hr, "Failed to initialize registration for the plan.");
203
196 plan.action = BOOTSTRAPPER_ACTION_INSTALL; 204 plan.action = BOOTSTRAPPER_ACTION_INSTALL;
197 plan.pCommand = &command; 205 plan.pCommand = &command;
198 plan.pInternalCommand = &internalCommand; 206 plan.pInternalCommand = &internalCommand;
@@ -294,7 +302,7 @@ namespace Bootstrapper
294 L" <UX PrimaryPayloadId='ux.exe'>" 302 L" <UX PrimaryPayloadId='ux.exe'>"
295 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />" 303 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />"
296 L" </UX>" 304 L" </UX>"
297 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Tag='foo' ProviderKey='bar' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 305 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Scope='peruser' Tag='foo' ProviderKey='bar' Version='1.0.0.0' ExecutableName='setup.exe'>"
298 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='Product1' DisplayVersion='1.0.0.0' />" 306 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='Product1' DisplayVersion='1.0.0.0' />"
299 L" </Registration>" 307 L" </Registration>"
300 L"</Bundle>"; 308 L"</Bundle>";
@@ -314,6 +322,12 @@ namespace Bootstrapper
314 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 322 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
315 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 323 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
316 324
325 hr = RegistrationSetPaths(&registration, &cache);
326 TestThrowOnFailure(hr, "Failed to set registration paths.");
327
328 hr = RegistrationPlanInitialize(&registration);
329 TestThrowOnFailure(hr, "Failed to initialize registration for the plan.");
330
317 plan.action = BOOTSTRAPPER_ACTION_INSTALL; 331 plan.action = BOOTSTRAPPER_ACTION_INSTALL;
318 plan.pCommand = &command; 332 plan.pCommand = &command;
319 plan.pInternalCommand = &internalCommand; 333 plan.pInternalCommand = &internalCommand;
@@ -415,7 +429,7 @@ namespace Bootstrapper
415 L" <UX PrimaryPayloadId='ux.exe'>" 429 L" <UX PrimaryPayloadId='ux.exe'>"
416 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />" 430 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />"
417 L" </UX>" 431 L" </UX>"
418 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 432 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Scope='peruser' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe'>"
419 L" <Arp Register='yes' DisplayName='DisplayName1' DisplayVersion='1.2.3.4' Publisher='Publisher1' HelpLink='http://www.microsoft.com/help'" 433 L" <Arp Register='yes' DisplayName='DisplayName1' DisplayVersion='1.2.3.4' Publisher='Publisher1' HelpLink='http://www.microsoft.com/help'"
420 L" HelpTelephone='555-555-5555' AboutUrl='http://www.microsoft.com/about' UpdateUrl='http://www.microsoft.com/update'" 434 L" HelpTelephone='555-555-5555' AboutUrl='http://www.microsoft.com/about' UpdateUrl='http://www.microsoft.com/update'"
421 L" Comments='Comments1' Contact='Contact1' DisableModify='yes' DisableRemove='yes' />" 435 L" Comments='Comments1' Contact='Contact1' DisableModify='yes' DisableRemove='yes' />"
@@ -437,6 +451,12 @@ namespace Bootstrapper
437 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 451 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
438 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 452 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
439 453
454 hr = RegistrationSetPaths(&registration, &cache);
455 TestThrowOnFailure(hr, "Failed to set registration paths.");
456
457 hr = RegistrationPlanInitialize(&registration);
458 TestThrowOnFailure(hr, "Failed to initialize registration for the plan.");
459
440 plan.action = BOOTSTRAPPER_ACTION_INSTALL; 460 plan.action = BOOTSTRAPPER_ACTION_INSTALL;
441 plan.pCommand = &command; 461 plan.pCommand = &command;
442 plan.pInternalCommand = &internalCommand; 462 plan.pInternalCommand = &internalCommand;
@@ -554,7 +574,7 @@ namespace Bootstrapper
554 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />" 574 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />"
555 L" </UX>" 575 L" </UX>"
556 L" <RelatedBundle Code='" TEST_BUNDLE_UPGRADE_CODE L"' Action='Upgrade' />" 576 L" <RelatedBundle Code='" TEST_BUNDLE_UPGRADE_CODE L"' Action='Upgrade' />"
557 L" <Registration Code='" TEST_BUNDLE_ID L"' Tag='foo' ProviderKey='" TEST_BUNDLE_ID L"' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 577 L" <Registration Code='" TEST_BUNDLE_ID L"' Scope='peruser' Tag='foo' ProviderKey='" TEST_BUNDLE_ID L"' Version='1.0.0.0' ExecutableName='setup.exe'>"
558 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />" 578 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />"
559 L" </Registration>" 579 L" </Registration>"
560 L" <Variable Id='MyBurnVariable1' Type='numeric' Value='0' Hidden='no' Persisted='yes' />" 580 L" <Variable Id='MyBurnVariable1' Type='numeric' Value='0' Hidden='no' Persisted='yes' />"
@@ -582,6 +602,12 @@ namespace Bootstrapper
582 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 602 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
583 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 603 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
584 604
605 hr = RegistrationSetPaths(&registration, &cache);
606 TestThrowOnFailure(hr, "Failed to set registration paths.");
607
608 hr = RegistrationPlanInitialize(&registration);
609 TestThrowOnFailure(hr, "Failed to initialize registration for the plan.");
610
585 plan.action = BOOTSTRAPPER_ACTION_INSTALL; 611 plan.action = BOOTSTRAPPER_ACTION_INSTALL;
586 plan.pCommand = &command; 612 plan.pCommand = &command;
587 plan.pInternalCommand = &internalCommand; 613 plan.pInternalCommand = &internalCommand;
@@ -694,7 +720,7 @@ namespace Bootstrapper
694 L" <UX PrimaryPayloadId='ux.exe'>" 720 L" <UX PrimaryPayloadId='ux.exe'>"
695 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />" 721 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' Hash='000000000000' />"
696 L" </UX>" 722 L" </UX>"
697 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 723 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' UpgradeCode='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Scope='peruser' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe'>"
698 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />" 724 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />"
699 L" </Registration>" 725 L" </Registration>"
700 L" <Variable Id='MyBurnVariable1' Type='numeric' Value='0' Hidden='no' Persisted='yes' />" 726 L" <Variable Id='MyBurnVariable1' Type='numeric' Value='0' Hidden='no' Persisted='yes' />"
@@ -720,6 +746,12 @@ namespace Bootstrapper
720 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 746 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
721 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 747 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
722 748
749 hr = RegistrationSetPaths(&registration, &cache);
750 TestThrowOnFailure(hr, "Failed to set registration paths.");
751
752 hr = RegistrationPlanInitialize(&registration);
753 TestThrowOnFailure(hr, "Failed to initialize registration for the plan.");
754
723 plan.action = BOOTSTRAPPER_ACTION_INSTALL; 755 plan.action = BOOTSTRAPPER_ACTION_INSTALL;
724 plan.pCommand = &command; 756 plan.pCommand = &command;
725 plan.pInternalCommand = &internalCommand; 757 plan.pInternalCommand = &internalCommand;
@@ -882,5 +914,3 @@ namespace Bootstrapper
882} 914}
883} 915}
884} 916}
885}
886}
diff --git a/src/burn/test/BurnUnitTest/RelatedBundleTest.cpp b/src/burn/test/BurnUnitTest/RelatedBundleTest.cpp
index 9feb85d6..dcccc589 100644
--- a/src/burn/test/BurnUnitTest/RelatedBundleTest.cpp
+++ b/src/burn/test/BurnUnitTest/RelatedBundleTest.cpp
@@ -3,11 +3,7 @@
3#include "precomp.h" 3#include "precomp.h"
4 4
5 5
6namespace Microsoft 6namespace WixToolset
7{
8namespace Tools
9{
10namespace WindowsInstallerXml
11{ 7{
12namespace Test 8namespace Test
13{ 9{
@@ -49,7 +45,7 @@ namespace Bootstrapper
49 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' />" 45 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' />"
50 L" </UX>" 46 L" </UX>"
51 L" <RelatedBundle Code='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Action='Upgrade' />" 47 L" <RelatedBundle Code='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Action='Upgrade' />"
52 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='yes'>" 48 L" <Registration Code='{D54F896D-1952-43E6-9C67-B5652240618C}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe'>"
53 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />" 49 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='1.0.0.0' />"
54 L" </Registration>" 50 L" </Registration>"
55 L"</Bundle>"; 51 L"</Bundle>";
@@ -63,7 +59,7 @@ namespace Bootstrapper
63 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle); 59 hr = RegistrationParseFromXml(&registration, &cache, pixeBundle);
64 TestThrowOnFailure(hr, L"Failed to parse registration from XML."); 60 TestThrowOnFailure(hr, L"Failed to parse registration from XML.");
65 61
66 RelatedBundlesInitializeForScope(registration.fPerMachine, &registration, &relatedBundles); 62 RelatedBundlesInitializeForScope(/*registration.fPlannedPerMachineScope*/TRUE, &registration, &relatedBundles);
67 63
68 Assert::Equal(1lu, relatedBundles.cRelatedBundles); 64 Assert::Equal(1lu, relatedBundles.cRelatedBundles);
69 65
@@ -101,7 +97,7 @@ namespace Bootstrapper
101 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' />" 97 L" <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='ux.exe' />"
102 L" </UX>" 98 L" </UX>"
103 L" <RelatedBundle Code='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Action='Upgrade' />" 99 L" <RelatedBundle Code='{89FDAE1F-8CC1-48B9-B930-3945E0D3E7F0}' Action='Upgrade' />"
104 L" <Registration Code='{3DB49D3D-1FB8-4147-A465-BBE8BFD0DAD0}' Tag='foo' ProviderKey='foo' Version='4.0.0.0' ExecutableName='setup.exe' PerMachine='no'>" 100 L" <Registration Code='{3DB49D3D-1FB8-4147-A465-BBE8BFD0DAD0}' Tag='foo' ProviderKey='foo' Version='4.0.0.0' ExecutableName='setup.exe'>"
105 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='4.0.0.0' />" 101 L" <Arp Register='yes' Publisher='WiX Toolset' DisplayName='RegisterBasicTest' DisplayVersion='4.0.0.0' />"
106 L" </Registration>" 102 L" </Registration>"
107 L"</Bundle>"; 103 L"</Bundle>";
@@ -195,5 +191,3 @@ namespace Bootstrapper
195} 191}
196} 192}
197} 193}
198}
199}
diff --git a/src/burn/test/BurnUnitTest/SearchTest.cpp b/src/burn/test/BurnUnitTest/SearchTest.cpp
index e3c714cb..ac6119de 100644
--- a/src/burn/test/BurnUnitTest/SearchTest.cpp
+++ b/src/burn/test/BurnUnitTest/SearchTest.cpp
@@ -33,11 +33,7 @@ using namespace System;
33using namespace Xunit; 33using namespace Xunit;
34using namespace Microsoft::Win32; 34using namespace Microsoft::Win32;
35 35
36namespace Microsoft 36namespace WixToolset
37{
38namespace Tools
39{
40namespace WindowsInstallerXml
41{ 37{
42namespace Test 38namespace Test
43{ 39{
@@ -595,8 +591,6 @@ namespace Bootstrapper
595} 591}
596} 592}
597} 593}
598}
599}
600 594
601 595
602static INSTALLSTATE WINAPI MsiComponentSearchTest_MsiGetComponentPathW( 596static INSTALLSTATE WINAPI MsiComponentSearchTest_MsiGetComponentPathW(
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/AllPmouBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/AllPmouBundle_manifest.xml
new file mode 100644
index 00000000..8be9f5b9
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/AllPmouBundle_manifest.xml
@@ -0,0 +1,46 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="AllPmouBundle" Extension="log" />
4 <RelatedBundle Code="{F5172FB5-DC8E-5671-A533-A6C4ED8B226A}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="65634" Hash="142E90105EC2705DA169B29ED252A7829AA9EF3CC9B55EB5CD47DFC93035B57E7C1C1E64D1D92C9B54BA4653A5D0B18CFD675E4B7A5AEA7B833D643D84DF8B96" FilePath="AllPmouBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PmouPkg1.msi" FilePath="PmouPkg1.msi" FileSize="32768" Hash="BCBB4F1C48953D23BE56CD7D5005BB38CB02C7BAC4AF30F87B7ADF7715EA721D28A3FCFC025D26FD5DC069BAB69F462577C3212C1BFE3707FCCE60FF3F3ED12C" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PmouPkg2.msi" FilePath="PmouPkg2.msi" FileSize="32768" Hash="C3BABBCCC0FDA4ACE44D28C60FAB2CA76C00655A405CF6F7A3593F9130FCF47AD18C4DAE1A32D5C0177F58DBAE00CBF7EDCA027BEE19B96E0145A3FA00811B51" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
17 <Registration BundleId="AllPmouBundle" Code="{CA3BE971-4A75-46D1-BA74-005F9C7B8F6F}" ExecutableName="AllPmouBundle.exe" Scope="perMachineOrUser" Tag="" Version="1.0.0.0" ProviderKey="{CA3BE971-4A75-46D1-BA74-005F9C7B8F6F}">
18 <Arp DisplayName="AllPmouBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
19 </Registration>
20 <Chain>
21 <MsiPackage Id="PmouPkg1.msi" Cache="keep" CacheId="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PmouPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg1.msi" ProductCode="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}" Language="1033" Version="1.0.0.0" UpgradeCode="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}">
22 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
23 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
24 <Provides Key="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg1" />
25 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
26 <Language Id="1033" />
27 </RelatedPackage>
28 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
29 <Language Id="1033" />
30 </RelatedPackage>
31 <PayloadRef Id="PmouPkg1.msi" />
32 </MsiPackage>
33 <MsiPackage Id="PmouPkg2.msi" Cache="keep" CacheId="{1B1D793E-4026-48CA-B088-F919E70440AC}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PmouPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg2.msi" ProductCode="{1B1D793E-4026-48CA-B088-F919E70440AC}" Language="1033" Version="1.0.0.0" UpgradeCode="{98F763B3-EA17-5AE5-AD47-21004FB34B24}">
34 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
35 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
36 <Provides Key="{1B1D793E-4026-48CA-B088-F919E70440AC}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg2" />
37 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
38 <Language Id="1033" />
39 </RelatedPackage>
40 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
41 <Language Id="1033" />
42 </RelatedPackage>
43 <PayloadRef Id="PmouPkg2.msi" />
44 </MsiPackage>
45 </Chain>
46</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/AllPuomBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/AllPuomBundle_manifest.xml
new file mode 100644
index 00000000..a3cbd183
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/AllPuomBundle_manifest.xml
@@ -0,0 +1,46 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="AllPuomBundle" Extension="log" />
4 <RelatedBundle Code="{689DDFCE-6492-596F-92DC-341CCDF59ABB}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="65634" Hash="541AB7BED551A38137C7C965D46FF4817DE6E22C89AF98EC9461939024D6B39E7ACF9C3F526F4B567E73364289E7CE24FD84973F7B2151514F09E165FABE6234" FilePath="AllPuomBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PuomPkg1.msi" FilePath="PuomPkg1.msi" FileSize="32768" Hash="EF19E061C2647AD42E39A1721299D5D970F1E42CE6636ACA53009DC0D0D1F8B6F2FD516B7D3EEDAAF1EEDA364D54DA6C18FB929C385EC1BDDA08AEA50370B357" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PuomPkg2.msi" FilePath="PuomPkg2.msi" FileSize="32768" Hash="F927CE9CD3272AF6571E39C72A68E6BD6808D944B6893B09253887B1942E1C043EC5E1E1E758D3C261FF8B566121EE809C4CBCB931D00EBF14CC6CFE24001292" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
17 <Registration BundleId="AllPuomBundle" Code="{37A6F602-178E-4A32-B766-EDC2CB81274B}" ExecutableName="AllPuomBundle.exe" Scope="perUserOrMachine" Tag="" Version="1.0.0.0" ProviderKey="{37A6F602-178E-4A32-B766-EDC2CB81274B}">
18 <Arp DisplayName="AllPuomBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
19 </Registration>
20 <Chain>
21 <MsiPackage Id="PuomPkg1.msi" Cache="keep" CacheId="{167C572B-D847-4BCF-9693-C8B5EB6350CD}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PuomPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg1.msi" ProductCode="{167C572B-D847-4BCF-9693-C8B5EB6350CD}" Language="1033" Version="1.0.0.0" UpgradeCode="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}">
22 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
23 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
24 <Provides Key="{167C572B-D847-4BCF-9693-C8B5EB6350CD}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg1" />
25 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
26 <Language Id="1033" />
27 </RelatedPackage>
28 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
29 <Language Id="1033" />
30 </RelatedPackage>
31 <PayloadRef Id="PuomPkg1.msi" />
32 </MsiPackage>
33 <MsiPackage Id="PuomPkg2.msi" Cache="keep" CacheId="{07617017-CE68-4F88-981A-4629835C9BD2}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PuomPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg2.msi" ProductCode="{07617017-CE68-4F88-981A-4629835C9BD2}" Language="1033" Version="1.0.0.0" UpgradeCode="{C977A922-168B-59F0-84FD-CAB89DB314E0}">
34 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
35 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
36 <Provides Key="{07617017-CE68-4F88-981A-4629835C9BD2}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg2" />
37 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
38 <Language Id="1033" />
39 </RelatedPackage>
40 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
41 <Language Id="1033" />
42 </RelatedPackage>
43 <PayloadRef Id="PuomPkg2.msi" />
44 </MsiPackage>
45 </Chain>
46</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/BasicFunctionality_BundleA_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/BasicFunctionality_BundleA_manifest.xml
index f3848eda..b19b911f 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/BasicFunctionality_BundleA_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/BasicFunctionality_BundleA_manifest.xml
@@ -15,11 +15,11 @@
15 <Payload Id="PackageA" FilePath="PackageA.msi" FileSize="32768" Hash="89C61F8A105A81B08036401152A1FDE67CDC0158" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" /> 15 <Payload Id="PackageA" FilePath="PackageA.msi" FileSize="32768" Hash="89C61F8A105A81B08036401152A1FDE67CDC0158" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
16 <Payload Id="cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ" FilePath="1a.cab" FileSize="975" Hash="11DE5863C4B2A8762D0EE23FE25B7774CA07676B" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" /> 16 <Payload Id="cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ" FilePath="1a.cab" FileSize="975" Hash="11DE5863C4B2A8762D0EE23FE25B7774CA07676B" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
17 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 17 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
18 <Registration Code="{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}" ExecutableName="BundleA.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}"> 18 <Registration Code="{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}" ExecutableName="BundleA.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}">
19 <Arp Register="yes" DisplayName="~BasicFunctionalityTests - BundleA" DisplayVersion="1.0.0.0" /> 19 <Arp Register="yes" DisplayName="~BasicFunctionalityTests - BundleA" DisplayVersion="1.0.0.0" />
20 </Registration> 20 </Registration>
21 <Chain> 21 <Chain>
22 <MsiPackage Id="PackageA" Cache="keep" CacheId="{64633047-D172-4BBB-B202-64337D15C952}v1.0.0.0" InstallSize="1951" Size="33743" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{64633047-D172-4BBB-B202-64337D15C952}" Language="1033" Version="1.0.0.0" UpgradeCode="{7FD50F1B-D134-4365-923C-DFA160F74738}"> 22 <MsiPackage Id="PackageA" Cache="keep" CacheId="{64633047-D172-4BBB-B202-64337D15C952}v1.0.0.0" InstallSize="1951" Size="33743" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{64633047-D172-4BBB-B202-64337D15C952}" Language="1033" Version="1.0.0.0" UpgradeCode="{7FD50F1B-D134-4365-923C-DFA160F74738}">
23 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" /> 23 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
24 <MsiProperty Id="MSIFASTINSTALL" Value="7" /> 24 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
25 <Provides Key="{64633047-D172-4BBB-B202-64337D15C952}" Version="1.0.0.0" DisplayName="~BasicFunctionalityTests - PackageA" /> 25 <Provides Key="{64633047-D172-4BBB-B202-64337D15C952}" Version="1.0.0.0" DisplayName="~BasicFunctionalityTests - PackageA" />
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/BundlePackage_Multiple_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/BundlePackage_Multiple_manifest.xml
index 988bbfe0..651b491d 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/BundlePackage_Multiple_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/BundlePackage_Multiple_manifest.xml
@@ -46,19 +46,19 @@
46 <Payload Id="PackageA" FilePath="BundleA.exe" FileSize="5241635" Hash="20E1AFF76DE4693CB2876DC6BCCA0152DB16BE49AEDE2CD581C03FC39AB89DEA12BC25CB435F06E4D7D2B4443CE8A8935D5E92E2E49A4981B60A273980E4B29B" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" /> 46 <Payload Id="PackageA" FilePath="BundleA.exe" FileSize="5241635" Hash="20E1AFF76DE4693CB2876DC6BCCA0152DB16BE49AEDE2CD581C03FC39AB89DEA12BC25CB435F06E4D7D2B4443CE8A8935D5E92E2E49A4981B60A273980E4B29B" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
47 <Payload Id="PackageB" FilePath="BundleB_x64.exe" FileSize="10450821" Hash="43A58873D61D6E0FA83F6C5266F2F05FEA9BC85D11C195493B7FD9F0B4AA799C1EFCB78D76DCED32124D2EC62A4E7114B62CDE6F0B87E42A7E28CDBB0DA0FF8E" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" /> 47 <Payload Id="PackageB" FilePath="BundleB_x64.exe" FileSize="10450821" Hash="43A58873D61D6E0FA83F6C5266F2F05FEA9BC85D11C195493B7FD9F0B4AA799C1EFCB78D76DCED32124D2EC62A4E7114B62CDE6F0B87E42A7E28CDBB0DA0FF8E" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
48 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 48 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
49 <Registration Code="{35192ED0-C70A-49B2-9D12-3B1FA39B5E6F}" ExecutableName="MultipleBundlePackagesBundle.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{35192ED0-C70A-49B2-9D12-3B1FA39B5E6F}"> 49 <Registration Code="{35192ED0-C70A-49B2-9D12-3B1FA39B5E6F}" ExecutableName="MultipleBundlePackagesBundle.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{35192ED0-C70A-49B2-9D12-3B1FA39B5E6F}">
50 <Arp Register="yes" DisplayName="~BundlePackageTests - MultipleBundlePackagesBundle" DisplayVersion="1.0.0.0" /> 50 <Arp Register="yes" DisplayName="~BundlePackageTests - MultipleBundlePackagesBundle" DisplayVersion="1.0.0.0" />
51 </Registration> 51 </Registration>
52 <Chain> 52 <Chain>
53 <ExePackage Id="NetFx48Web" Cache="remove" CacheId="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" InstallSize="1439328" Size="1439328" PerMachine="yes" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="" Uninstallable="no" RepairArguments="" Repairable="no" Protocol="netfx4" DetectionType="condition"> 53 <ExePackage Id="NetFx48Web" Cache="remove" CacheId="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" InstallSize="1439328" Size="1439328" Scope="permachine" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="" Uninstallable="no" RepairArguments="" Repairable="no" Protocol="netfx4" DetectionType="condition">
54 <PayloadRef Id="NetFx48Web" /> 54 <PayloadRef Id="NetFx48Web" />
55 </ExePackage> 55 </ExePackage>
56 <BundlePackage Id="PackageA" Cache="keep" CacheId="{B39CEE4D-CCD7-4797-BE3A-6613BD1DC4BE}v1.0.0.0" InstallSize="2169" Size="5241635" Version="1.0.0.0" PerMachine="yes" Permanent="no" Vital="yes" RepairCondition="0" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" BundleCode="{B39CEE4D-CCD7-4797-BE3A-6613BD1DC4BE}" InstallArguments="" UninstallArguments="" RepairArguments="" SupportsBurnProtocol="yes" Win64="no"> 56 <BundlePackage Id="PackageA" Cache="keep" CacheId="{B39CEE4D-CCD7-4797-BE3A-6613BD1DC4BE}v1.0.0.0" InstallSize="2169" Size="5241635" Version="1.0.0.0" Scope="permachine" Permanent="no" Vital="yes" RepairCondition="0" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" BundleCode="{B39CEE4D-CCD7-4797-BE3A-6613BD1DC4BE}" InstallArguments="" UninstallArguments="" RepairArguments="" SupportsBurnProtocol="yes" Win64="no">
57 <Provides Key="{B39CEE4D-CCD7-4797-BE3A-6613BD1DC4BE}" Version="1.0.0.0" DisplayName="~BasicFunctionalityTests - BundleA" Imported="yes" /> 57 <Provides Key="{B39CEE4D-CCD7-4797-BE3A-6613BD1DC4BE}" Version="1.0.0.0" DisplayName="~BasicFunctionalityTests - BundleA" Imported="yes" />
58 <RelatedBundle Code="{8C7E2C47-1EE7-4BBE-99A2-EAB7F3693F48}" Action="Upgrade" /> 58 <RelatedBundle Code="{8C7E2C47-1EE7-4BBE-99A2-EAB7F3693F48}" Action="Upgrade" />
59 <PayloadRef Id="PackageA" /> 59 <PayloadRef Id="PackageA" />
60 </BundlePackage> 60 </BundlePackage>
61 <BundlePackage Id="PackageB" Cache="keep" CacheId="{7506235A-7C59-4750-82C7-EB460A87ED3A}v1.0.0.0" InstallSize="1441497" Size="10450821" Version="1.0.0.0" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageB" RollbackLogPathVariable="WixBundleRollbackLog_PackageB" BundleCode="{7506235A-7C59-4750-82C7-EB460A87ED3A}" InstallArguments="" UninstallArguments="" RepairArguments="" SupportsBurnProtocol="yes" Win64="yes"> 61 <BundlePackage Id="PackageB" Cache="keep" CacheId="{7506235A-7C59-4750-82C7-EB460A87ED3A}v1.0.0.0" InstallSize="1441497" Size="10450821" Version="1.0.0.0" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageB" RollbackLogPathVariable="WixBundleRollbackLog_PackageB" BundleCode="{7506235A-7C59-4750-82C7-EB460A87ED3A}" InstallArguments="" UninstallArguments="" RepairArguments="" SupportsBurnProtocol="yes" Win64="yes">
62 <Provides Key="{7506235A-7C59-4750-82C7-EB460A87ED3A}" Version="1.0.0.0" DisplayName="~BasicFunctionalityTests - BundleB_x64" Imported="yes" /> 62 <Provides Key="{7506235A-7C59-4750-82C7-EB460A87ED3A}" Version="1.0.0.0" DisplayName="~BasicFunctionalityTests - BundleB_x64" Imported="yes" />
63 <RelatedBundle Code="{79F45B7A-D990-46E4-819B-078D87C3321A}" Action="Upgrade" /> 63 <RelatedBundle Code="{79F45B7A-D990-46E4-819B-078D87C3321A}" Action="Upgrade" />
64 <PayloadRef Id="PackageB" /> 64 <PayloadRef Id="PackageB" />
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/ExePackage_PerUserArpEntry_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/ExePackage_PerUserArpEntry_manifest.xml
index a5dfc188..51d86d4a 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/ExePackage_PerUserArpEntry_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/ExePackage_PerUserArpEntry_manifest.xml
@@ -46,14 +46,14 @@
46 <Payload Id="TestExe.exe" FilePath="TestExe.exe" FileSize="23552" Hash="8A3CAD62E7C15EE88B3B78A5F61EFA6D4C9AED67049075688A641EE65E1526589797B0C52398DEB520A7911E41F2A6F73C178D19C9FFBC03ECF964A822E6438E" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" /> 46 <Payload Id="TestExe.exe" FilePath="TestExe.exe" FileSize="23552" Hash="8A3CAD62E7C15EE88B3B78A5F61EFA6D4C9AED67049075688A641EE65E1526589797B0C52398DEB520A7911E41F2A6F73C178D19C9FFBC03ECF964A822E6438E" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
47 <Payload Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" FilePath="TestExe.exe.config" FileSize="387" Hash="8C819A9E835F3921FA80C5C783AB0C42DDAADF0C0F2BEF8630EA122ABCB9DC8EAF0B14E061C46B37C92F55114BB09A8D5B1B613947A76A648953F2C63C0ACA63" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" /> 47 <Payload Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" FilePath="TestExe.exe.config" FileSize="387" Hash="8C819A9E835F3921FA80C5C783AB0C42DDAADF0C0F2BEF8630EA122ABCB9DC8EAF0B14E061C46B37C92F55114BB09A8D5B1B613947A76A648953F2C63C0ACA63" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
48 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 48 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
49 <Registration Code="{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}" ExecutableName="PerUserArpEntryExePackage.exe" PerMachine="no" Tag="" Version="1.0.0.0" ProviderKey="{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}"> 49 <Registration Code="{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}" ExecutableName="PerUserArpEntryExePackage.exe" Scope="peruser" Tag="" Version="1.0.0.0" ProviderKey="{9C459DAD-0E64-40C8-8C9F-4F68E46AB223}">
50 <Arp DisplayName="~ExePackageTests - PerUserArpEntryExePackage" DisplayVersion="1.0.0.0" /> 50 <Arp DisplayName="~ExePackageTests - PerUserArpEntryExePackage" DisplayVersion="1.0.0.0" />
51 </Registration> 51 </Registration>
52 <Chain> 52 <Chain>
53 <ExePackage Id="NetFx48Web" Cache="remove" CacheId="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" InstallSize="1439328" Size="1439328" PerMachine="yes" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" RepairArguments="" Repairable="no" DetectionType="condition" DetectCondition="NETFRAMEWORK45 &gt;= 528040" Protocol="netfx4"> 53 <ExePackage Id="NetFx48Web" Cache="remove" CacheId="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" InstallSize="1439328" Size="1439328" Scope="permachine" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" RepairArguments="" Repairable="no" DetectionType="condition" DetectCondition="NETFRAMEWORK45 &gt;= 528040" Protocol="netfx4">
54 <PayloadRef Id="NetFx48Web" /> 54 <PayloadRef Id="NetFx48Web" />
55 </ExePackage> 55 </ExePackage>
56 <ExePackage Id="TestExe" Cache="keep" CacheId="8A3CAD62E7C15EE88B3B78A5F61EFA6D4C9AED67049075688A641EE65E1526589797B0C52398DEB520A7911E41F2A6F73C178D19C9FFBC03ECF964A822E6438E" InstallSize="23939" Size="23939" PerMachine="no" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_TestExe" RollbackLogPathVariable="WixBundleRollbackLog_TestExe" InstallArguments="/regw &quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B5300C7-9B34-4670-9614-185B02AB87EF},DisplayVersion,String,1.0.0.0&quot; /regw &quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B5300C7-9B34-4670-9614-185B02AB87EF},QuietUninstallString,String,\&quot;[WixBundleExecutePackageCacheFolder]testexe.exe\&quot; /regd \&quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B5300C7-9B34-4670-9614-185B02AB87EF}\&quot;&quot;" RepairArguments="" Repairable="no" DetectionType="arp" ArpId="{9B5300C7-9B34-4670-9614-185B02AB87EF}" ArpDisplayVersion="1.0.0.0"> 56 <ExePackage Id="TestExe" Cache="keep" CacheId="8A3CAD62E7C15EE88B3B78A5F61EFA6D4C9AED67049075688A641EE65E1526589797B0C52398DEB520A7911E41F2A6F73C178D19C9FFBC03ECF964A822E6438E" InstallSize="23939" Size="23939" Scope="peruser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_TestExe" RollbackLogPathVariable="WixBundleRollbackLog_TestExe" InstallArguments="/regw &quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B5300C7-9B34-4670-9614-185B02AB87EF},DisplayVersion,String,1.0.0.0&quot; /regw &quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B5300C7-9B34-4670-9614-185B02AB87EF},QuietUninstallString,String,\&quot;[WixBundleExecutePackageCacheFolder]testexe.exe\&quot; /regd \&quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9B5300C7-9B34-4670-9614-185B02AB87EF}\&quot;&quot;" RepairArguments="" Repairable="no" DetectionType="arp" ArpId="{9B5300C7-9B34-4670-9614-185B02AB87EF}" ArpDisplayVersion="1.0.0.0">
57 <PayloadRef Id="TestExe.exe" /> 57 <PayloadRef Id="TestExe.exe" />
58 <PayloadRef Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" /> 58 <PayloadRef Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" />
59 </ExePackage> 59 </ExePackage>
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/Failure_BundleD_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/Failure_BundleD_manifest.xml
index f3cfb179..84370c44 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/Failure_BundleD_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/Failure_BundleD_manifest.xml
@@ -47,14 +47,14 @@
47 <Payload Id="TestExe.exe" FilePath="TestExe.exe" FileSize="23552" Hash="4344604ECBA4DFE5DE7C680CB1AA5BD6FAA29BF95CE07740F02878C2BB1EF6DE6432944A0DB79B034D1C6F68CF80842EEE442EA8A551816E52D3F68901C50AB9" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" /> 47 <Payload Id="TestExe.exe" FilePath="TestExe.exe" FileSize="23552" Hash="4344604ECBA4DFE5DE7C680CB1AA5BD6FAA29BF95CE07740F02878C2BB1EF6DE6432944A0DB79B034D1C6F68CF80842EEE442EA8A551816E52D3F68901C50AB9" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
48 <Payload Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" FilePath="TestExe.exe.config" FileSize="387" Hash="8C819A9E835F3921FA80C5C783AB0C42DDAADF0C0F2BEF8630EA122ABCB9DC8EAF0B14E061C46B37C92F55114BB09A8D5B1B613947A76A648953F2C63C0ACA63" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" /> 48 <Payload Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" FilePath="TestExe.exe.config" FileSize="387" Hash="8C819A9E835F3921FA80C5C783AB0C42DDAADF0C0F2BEF8630EA122ABCB9DC8EAF0B14E061C46B37C92F55114BB09A8D5B1B613947A76A648953F2C63C0ACA63" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
49 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 49 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
50 <Registration Code="{9C184683-04FB-49AD-9D79-65101BDC3EE3}" ExecutableName="BundleD.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{9C184683-04FB-49AD-9D79-65101BDC3EE3}"> 50 <Registration Code="{9C184683-04FB-49AD-9D79-65101BDC3EE3}" ExecutableName="BundleD.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{9C184683-04FB-49AD-9D79-65101BDC3EE3}">
51 <Arp Register="yes" DisplayName="~FailureTests - BundleD" DisplayVersion="1.0.0.0" /> 51 <Arp Register="yes" DisplayName="~FailureTests - BundleD" DisplayVersion="1.0.0.0" />
52 </Registration> 52 </Registration>
53 <Chain> 53 <Chain>
54 <ExePackage Id="NetFx48Web" Cache="remove" CacheId="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" InstallSize="1439328" Size="1439328" PerMachine="yes" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="" Uninstallable="no" RepairArguments="" Repairable="no" Protocol="netfx4" DetectionType="condition"> 54 <ExePackage Id="NetFx48Web" Cache="remove" CacheId="642721C60D52051C7F3434D8710FE3406A7CFE10B2B39E90EA847719ED1697D7C614F2DF44AD50412B1DF8C98DD78FDC57CA1D047D28C81AC158092E5FB18040" InstallSize="1439328" Size="1439328" Scope="permachine" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="" Uninstallable="no" RepairArguments="" Repairable="no" Protocol="netfx4" DetectionType="condition">
55 <PayloadRef Id="NetFx48Web" /> 55 <PayloadRef Id="NetFx48Web" />
56 </ExePackage> 56 </ExePackage>
57 <ExePackage Id="ExeA" Cache="remove" CacheId="4344604ECBA4DFE5DE7C680CB1AA5BD6FAA29BF95CE07740F02878C2BB1EF6DE6432944A0DB79B034D1C6F68CF80842EEE442EA8A551816E52D3F68901C50AB9" InstallSize="23939" Size="23939" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_ExeA" RollbackLogPathVariable="WixBundleRollbackLog_ExeA" DetectCondition="ExeA_Version AND ExeA_Version &gt;= v1.0.0.0" InstallArguments="/s 5000 /regw &quot;HKLM\Software\WiX\Tests\FailureTests\ExeA,Version,String,1.0.0.0&quot;" UninstallArguments="/regd &quot;HKLM\Software\WiX\Tests\FailureTests\ExeA,Version&quot;" Uninstallable="yes" RepairArguments="/regw &quot;HKLM\Software\WiX\Tests\FailureTests\ExeA,Version,String,1.0.0.0&quot;" Repairable="yes" DetectionType="condition"> 57 <ExePackage Id="ExeA" Cache="remove" CacheId="4344604ECBA4DFE5DE7C680CB1AA5BD6FAA29BF95CE07740F02878C2BB1EF6DE6432944A0DB79B034D1C6F68CF80842EEE442EA8A551816E52D3F68901C50AB9" InstallSize="23939" Size="23939" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_ExeA" RollbackLogPathVariable="WixBundleRollbackLog_ExeA" DetectCondition="ExeA_Version AND ExeA_Version &gt;= v1.0.0.0" InstallArguments="/s 5000 /regw &quot;HKLM\Software\WiX\Tests\FailureTests\ExeA,Version,String,1.0.0.0&quot;" UninstallArguments="/regd &quot;HKLM\Software\WiX\Tests\FailureTests\ExeA,Version&quot;" Uninstallable="yes" RepairArguments="/regw &quot;HKLM\Software\WiX\Tests\FailureTests\ExeA,Version,String,1.0.0.0&quot;" Repairable="yes" DetectionType="condition">
58 <PayloadRef Id="TestExe.exe" /> 58 <PayloadRef Id="TestExe.exe" />
59 <PayloadRef Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" /> 59 <PayloadRef Id="paygJp32KbpyjbVEQFNbl5_izmhdZw" />
60 </ExePackage> 60 </ExePackage>
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/MsiTransaction_BundleAv1_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/MsiTransaction_BundleAv1_manifest.xml
index 2047f495..c6f7a6eb 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/MsiTransaction_BundleAv1_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/MsiTransaction_BundleAv1_manifest.xml
@@ -20,11 +20,11 @@
20 <Payload Id="cab3wekki1le1R8RPDV2B8_g8jcjZc" FilePath="1cv1.cab" FileSize="975" Hash="11DE5863C4B2A8762D0EE23FE25B7774CA07676B" Packaging="embedded" SourcePath="a5" Container="WixAttachedContainer" /> 20 <Payload Id="cab3wekki1le1R8RPDV2B8_g8jcjZc" FilePath="1cv1.cab" FileSize="975" Hash="11DE5863C4B2A8762D0EE23FE25B7774CA07676B" Packaging="embedded" SourcePath="a5" Container="WixAttachedContainer" />
21 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 21 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
22 <RollbackBoundary Id="rbaOCA08D8ky7uBOK71_6FWz1K3TuQ" Vital="yes" Transaction="yes" /> 22 <RollbackBoundary Id="rbaOCA08D8ky7uBOK71_6FWz1K3TuQ" Vital="yes" Transaction="yes" />
23 <Registration Code="{E6469F05-BDC8-4EB8-B218-67412543EFAA}" ExecutableName="BundleAv1.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{E6469F05-BDC8-4EB8-B218-67412543EFAA}"> 23 <Registration Code="{E6469F05-BDC8-4EB8-B218-67412543EFAA}" ExecutableName="BundleAv1.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{E6469F05-BDC8-4EB8-B218-67412543EFAA}">
24 <Arp Register="yes" DisplayName="~MsiTransactionTests - BundleAv1" DisplayVersion="1.0.0.0" /> 24 <Arp Register="yes" DisplayName="~MsiTransactionTests - BundleAv1" DisplayVersion="1.0.0.0" />
25 </Registration> 25 </Registration>
26 <Chain> 26 <Chain>
27 <MsiPackage Id="PackageA" Cache="keep" CacheId="{01E6B748-7B95-4BA9-976D-B6F35076CEF4}v1.0.0.0" InstallSize="1951" Size="33743" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{01E6B748-7B95-4BA9-976D-B6F35076CEF4}" Language="1033" Version="1.0.0.0" UpgradeCode="{7772FCDF-5FDB-497D-B5DF-C6D17D667976}"> 27 <MsiPackage Id="PackageA" Cache="keep" CacheId="{01E6B748-7B95-4BA9-976D-B6F35076CEF4}v1.0.0.0" InstallSize="1951" Size="33743" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{01E6B748-7B95-4BA9-976D-B6F35076CEF4}" Language="1033" Version="1.0.0.0" UpgradeCode="{7772FCDF-5FDB-497D-B5DF-C6D17D667976}">
28 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" /> 28 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
29 <MsiProperty Id="MSIFASTINSTALL" Value="7" /> 29 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
30 <Provides Key="{01E6B748-7B95-4BA9-976D-B6F35076CEF4}" Version="1.0.0.0" DisplayName="~MsiTransactionTests - PackageA" /> 30 <Provides Key="{01E6B748-7B95-4BA9-976D-B6F35076CEF4}" Version="1.0.0.0" DisplayName="~MsiTransactionTests - PackageA" />
@@ -37,7 +37,7 @@
37 <PayloadRef Id="PackageA" /> 37 <PayloadRef Id="PackageA" />
38 <PayloadRef Id="cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ" /> 38 <PayloadRef Id="cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ" />
39 </MsiPackage> 39 </MsiPackage>
40 <MsiPackage Id="PackageB" Cache="keep" CacheId="{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}v1.0.0.0" InstallSize="1951" Size="33743" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryForward="rbaOCA08D8ky7uBOK71_6FWz1K3TuQ" LogPathVariable="WixBundleLog_PackageB" RollbackLogPathVariable="WixBundleRollbackLog_PackageB" ProductCode="{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}" Language="1033" Version="1.0.0.0" UpgradeCode="{EAFC0C6B-626E-415C-8132-536FBD19F49B}"> 40 <MsiPackage Id="PackageB" Cache="keep" CacheId="{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}v1.0.0.0" InstallSize="1951" Size="33743" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryForward="rbaOCA08D8ky7uBOK71_6FWz1K3TuQ" LogPathVariable="WixBundleLog_PackageB" RollbackLogPathVariable="WixBundleRollbackLog_PackageB" ProductCode="{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}" Language="1033" Version="1.0.0.0" UpgradeCode="{EAFC0C6B-626E-415C-8132-536FBD19F49B}">
41 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" /> 41 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
42 <MsiProperty Id="MSIFASTINSTALL" Value="7" /> 42 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
43 <Provides Key="{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}" Version="1.0.0.0" DisplayName="~MsiTransactionTests - PackageBv1" /> 43 <Provides Key="{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}" Version="1.0.0.0" DisplayName="~MsiTransactionTests - PackageBv1" />
@@ -50,7 +50,7 @@
50 <PayloadRef Id="PackageB" /> 50 <PayloadRef Id="PackageB" />
51 <PayloadRef Id="cablKtJUKxAbhSMIBwQU6vJ_CDsIkE" /> 51 <PayloadRef Id="cablKtJUKxAbhSMIBwQU6vJ_CDsIkE" />
52 </MsiPackage> 52 </MsiPackage>
53 <MsiPackage Id="PackageC" Cache="keep" CacheId="{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}v1.0.0.0" InstallSize="1951" Size="33743" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryBackward="rbaOCA08D8ky7uBOK71_6FWz1K3TuQ" LogPathVariable="WixBundleLog_PackageC" RollbackLogPathVariable="WixBundleRollbackLog_PackageC" ProductCode="{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}" Language="1033" Version="1.0.0.0" UpgradeCode="{A18BDC12-DAEC-43EE-87D1-31B2C2BC6269}"> 53 <MsiPackage Id="PackageC" Cache="keep" CacheId="{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}v1.0.0.0" InstallSize="1951" Size="33743" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="rbaOCA08D8ky7uBOK71_6FWz1K3TuQ" LogPathVariable="WixBundleLog_PackageC" RollbackLogPathVariable="WixBundleRollbackLog_PackageC" ProductCode="{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}" Language="1033" Version="1.0.0.0" UpgradeCode="{A18BDC12-DAEC-43EE-87D1-31B2C2BC6269}">
54 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" /> 54 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
55 <MsiProperty Id="MSIFASTINSTALL" Value="7" /> 55 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
56 <Provides Key="{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}" Version="1.0.0.0" DisplayName="~MsiTransactionTests - PackageCv1" /> 56 <Provides Key="{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}" Version="1.0.0.0" DisplayName="~MsiTransactionTests - PackageCv1" />
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/MsuPackageFixture_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/MsuPackageFixture_manifest.xml
index 4fd1d75a..6e678d12 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/MsuPackageFixture_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/MsuPackageFixture_manifest.xml
@@ -10,11 +10,11 @@
10 <Container Id="WixAttachedContainer" FileSize="119" Hash="06D28293FD57CD231E125EF9C82418A488928A98832A6937A77A3283A17A5C37F8D619C51759319A57E8F8A948FA73E8C5814185A0114130F3213AB268073555" FilePath="test.exe" AttachedIndex="1" Attached="yes" Primary="yes" /> 10 <Container Id="WixAttachedContainer" FileSize="119" Hash="06D28293FD57CD231E125EF9C82418A488928A98832A6937A77A3283A17A5C37F8D619C51759319A57E8F8A948FA73E8C5814185A0114130F3213AB268073555" FilePath="test.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
11 <Payload Id="test.msu" FilePath="test.msu" FileSize="28" Hash="B040F02D2F90E04E9AFBDC91C00CEB5DF97D48E205D96DC0A44E10AF8870794DAE62CA70224F12BE9112AA730BBE470CA81FB5617AAC690E832F3F84510E92BA" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" /> 11 <Payload Id="test.msu" FilePath="test.msu" FileSize="28" Hash="B040F02D2F90E04E9AFBDC91C00CEB5DF97D48E205D96DC0A44E10AF8870794DAE62CA70224F12BE9112AA730BBE470CA81FB5617AAC690E832F3F84510E92BA" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
12 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 12 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
13 <Registration Code="{06077C60-DC46-4F4A-8D3C-05F869187191}" ExecutableName="test.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{06077C60-DC46-4F4A-8D3C-05F869187191}"> 13 <Registration Code="{06077C60-DC46-4F4A-8D3C-05F869187191}" ExecutableName="test.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{06077C60-DC46-4F4A-8D3C-05F869187191}">
14 <Arp Register="yes" DisplayName="BurnBundle" DisplayVersion="1.0.0.0" Publisher="Example Corporation" /> 14 <Arp Register="yes" DisplayName="BurnBundle" DisplayVersion="1.0.0.0" Publisher="Example Corporation" />
15 </Registration> 15 </Registration>
16 <Chain> 16 <Chain>
17 <MsuPackage Id="test.msu" Cache="keep" CacheId="B040F02D2F90E04E9AFBDC91C00CEB5DF97D48E205D96DC0A44E10AF8870794DAE62CA70224F12BE9112AA730BBE470CA81FB5617AAC690E832F3F84510E92BA" InstallSize="28" Size="28" PerMachine="yes" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" DetectCondition="DetectedTheMsu"> 17 <MsuPackage Id="test.msu" Cache="keep" CacheId="B040F02D2F90E04E9AFBDC91C00CEB5DF97D48E205D96DC0A44E10AF8870794DAE62CA70224F12BE9112AA730BBE470CA81FB5617AAC690E832F3F84510E92BA" InstallSize="28" Size="28" Scope="permachine" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" DetectCondition="DetectedTheMsu">
18 <PayloadRef Id="test.msu" /> 18 <PayloadRef Id="test.msu" />
19 </MsuPackage> 19 </MsuPackage>
20 </Chain> 20 </Chain>
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PerMachineBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PerMachineBundle_manifest.xml
new file mode 100644
index 00000000..66864c70
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PerMachineBundle_manifest.xml
@@ -0,0 +1,33 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PerMachineBundle" Extension="log" />
4 <RelatedBundle Code="{650EDC96-0BDF-512A-A544-4E5D7DD5D11E}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="32839" Hash="5BE3F4AAE711DB99A43B248F380EFB9F069C7D85F2C6D20D2B25033AABEDA09BCCF5203C2A99A7DB02D040168785EBB0260DC4073FEF2677F3760821B0948202" FilePath="PerMachineBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PerMachinePkg.msi" FilePath="PerMachinePkg.msi" FileSize="32768" Hash="4458C6B56290B207657AFB52DC20729FEDDA76799F21C14A7095E08CFB68CF382C5487CD53535CF24C16610066203ADFC29F25489BDE54290D1E480B7DED8FA6" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
16 <Registration BundleId="PerMachineBundle" Code="{3B58FF9C-2B33-417F-8240-10DA7FD7A6C4}" ExecutableName="PerMachineBundle.exe" Scope="perMachine" Tag="" Version="1.0.0.0" ProviderKey="{3B58FF9C-2B33-417F-8240-10DA7FD7A6C4}">
17 <Arp DisplayName="PerMachineBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
18 </Registration>
19 <Chain>
20 <MsiPackage Id="PerMachinePkg.msi" Cache="keep" CacheId="{DD544949-52BA-432B-925E-9BF0C4DB4B83}v1.0.0.0" InstallSize="283" Size="32768" Scope="perMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerMachinePkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerMachinePkg.msi" ProductCode="{DD544949-52BA-432B-925E-9BF0C4DB4B83}" Language="1033" Version="1.0.0.0" UpgradeCode="{40B2312E-4395-5299-A08F-5B2744AA5A39}">
21 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
22 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
23 <Provides Key="{DD544949-52BA-432B-925E-9BF0C4DB4B83}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerMachinePkg" />
24 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
25 <Language Id="1033" />
26 </RelatedPackage>
27 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
28 <Language Id="1033" />
29 </RelatedPackage>
30 <PayloadRef Id="PerMachinePkg.msi" />
31 </MsiPackage>
32 </Chain>
33</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PerUserBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PerUserBundle_manifest.xml
new file mode 100644
index 00000000..6c26f708
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PerUserBundle_manifest.xml
@@ -0,0 +1,33 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PerUserBundle" Extension="log" />
4 <RelatedBundle Code="{DEB06D62-A48E-5455-920C-DC8E2DD660F9}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="32839" Hash="CF67D7D05B0449D5221DE5FB08E93DC85A8ECB4AC8E3614DCB63B9FE9010F08FE71A29FC55D6E4383CE73ED5420A5E73628B314932F229E7E0FBBC262522F68C" FilePath="PerUserBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PerUserPkg.msi" FilePath="PerUserPkg.msi" FileSize="32768" Hash="26CA1B74EFC52FA969279450110B6A9472E629004EF5655A661D8609A7E4DDB76CA220E5DB6FC2AE554415D9A4E28567014F48EF978EFDEE0B4431E81498572F" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
16 <Registration BundleId="PerUserBundle" Code="{7786E965-CCB4-42B2-AA90-F2652EE3B5C5}" ExecutableName="PerUserBundle.exe" Scope="perUser" Tag="" Version="1.0.0.0" ProviderKey="{7786E965-CCB4-42B2-AA90-F2652EE3B5C5}">
17 <Arp DisplayName="PerUserBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
18 </Registration>
19 <Chain>
20 <MsiPackage Id="PerUserPkg.msi" Cache="keep" CacheId="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}v1.0.0.0" InstallSize="274" Size="32768" Scope="perUser" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerUserPkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerUserPkg.msi" ProductCode="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}" Language="1033" Version="1.0.0.0" UpgradeCode="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}">
21 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
22 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
23 <Provides Key="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerUserPkg" />
24 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
25 <Language Id="1033" />
26 </RelatedPackage>
27 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
28 <Language Id="1033" />
29 </RelatedPackage>
30 <PayloadRef Id="PerUserPkg.msi" />
31 </MsiPackage>
32 </Chain>
33</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPmouBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPmouBundle_manifest.xml
new file mode 100644
index 00000000..47ce485a
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPmouBundle_manifest.xml
@@ -0,0 +1,59 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PmPmouBundle" Extension="log" />
4 <RelatedBundle Code="{62D1B851-3DC9-58B7-B923-71A0F75703E0}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="98429" Hash="27A597EF7C5C69BDFE548E655FB4ACE548F379EBCC24EF56401BD22D3EECC0A904A68595FE5D3F448B7137A9B03A5EA2C0B422E3003DD293C7E73E2E4FE9D43B" FilePath="PmPmouBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PerMachinePkg.msi" FilePath="PerMachinePkg.msi" FileSize="32768" Hash="4458C6B56290B207657AFB52DC20729FEDDA76799F21C14A7095E08CFB68CF382C5487CD53535CF24C16610066203ADFC29F25489BDE54290D1E480B7DED8FA6" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PmouPkg1.msi" FilePath="PmouPkg1.msi" FileSize="32768" Hash="BCBB4F1C48953D23BE56CD7D5005BB38CB02C7BAC4AF30F87B7ADF7715EA721D28A3FCFC025D26FD5DC069BAB69F462577C3212C1BFE3707FCCE60FF3F3ED12C" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <Payload Id="PmouPkg2.msi" FilePath="PmouPkg2.msi" FileSize="32768" Hash="C3BABBCCC0FDA4ACE44D28C60FAB2CA76C00655A405CF6F7A3593F9130FCF47AD18C4DAE1A32D5C0177F58DBAE00CBF7EDCA027BEE19B96E0145A3FA00811B51" Packaging="embedded" SourcePath="a2" Container="WixAttachedContainer" />
17 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
18 <Registration BundleId="PmPmouBundle" Code="{91B17F62-3EC0-4BDB-9094-A00B3B575E5B}" ExecutableName="PmPmouBundle.exe" Scope="perMachineOrUser" Tag="" Version="1.0.0.0" ProviderKey="{91B17F62-3EC0-4BDB-9094-A00B3B575E5B}">
19 <Arp DisplayName="PmPmouBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
20 </Registration>
21 <Chain>
22 <MsiPackage Id="PerMachinePkg.msi" Cache="keep" CacheId="{DD544949-52BA-432B-925E-9BF0C4DB4B83}v1.0.0.0" InstallSize="283" Size="32768" Scope="perMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerMachinePkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerMachinePkg.msi" ProductCode="{DD544949-52BA-432B-925E-9BF0C4DB4B83}" Language="1033" Version="1.0.0.0" UpgradeCode="{40B2312E-4395-5299-A08F-5B2744AA5A39}">
23 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
24 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
25 <Provides Key="{DD544949-52BA-432B-925E-9BF0C4DB4B83}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerMachinePkg" />
26 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
27 <Language Id="1033" />
28 </RelatedPackage>
29 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
30 <Language Id="1033" />
31 </RelatedPackage>
32 <PayloadRef Id="PerMachinePkg.msi" />
33 </MsiPackage>
34 <MsiPackage Id="PmouPkg1.msi" Cache="keep" CacheId="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PmouPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg1.msi" ProductCode="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}" Language="1033" Version="1.0.0.0" UpgradeCode="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}">
35 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
36 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
37 <Provides Key="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg1" />
38 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
39 <Language Id="1033" />
40 </RelatedPackage>
41 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
42 <Language Id="1033" />
43 </RelatedPackage>
44 <PayloadRef Id="PmouPkg1.msi" />
45 </MsiPackage>
46 <MsiPackage Id="PmouPkg2.msi" Cache="keep" CacheId="{1B1D793E-4026-48CA-B088-F919E70440AC}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PmouPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg2.msi" ProductCode="{1B1D793E-4026-48CA-B088-F919E70440AC}" Language="1033" Version="1.0.0.0" UpgradeCode="{98F763B3-EA17-5AE5-AD47-21004FB34B24}">
47 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
48 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
49 <Provides Key="{1B1D793E-4026-48CA-B088-F919E70440AC}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg2" />
50 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
51 <Language Id="1033" />
52 </RelatedPackage>
53 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
54 <Language Id="1033" />
55 </RelatedPackage>
56 <PayloadRef Id="PmouPkg2.msi" />
57 </MsiPackage>
58 </Chain>
59</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPmouBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPmouBundle_manifest.xml
new file mode 100644
index 00000000..86c1b1b0
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPmouBundle_manifest.xml
@@ -0,0 +1,72 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PmPuPmouBundle" Extension="log" />
4 <RelatedBundle Code="{F04C3701-1AC4-5C1D-8B26-400FB0C9F52A}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="131224" Hash="4F6D2A7D5A20E974F7708B50FF149D18B2739FC2CC9AF779D291FD1A4BFA7CC523E4D1DC2D7C372E519AE9FD1253329FE3182C172F2B43ED91E167AE2A9C5343" FilePath="PmPuPmouBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PerMachinePkg.msi" FilePath="PerMachinePkg.msi" FileSize="32768" Hash="4458C6B56290B207657AFB52DC20729FEDDA76799F21C14A7095E08CFB68CF382C5487CD53535CF24C16610066203ADFC29F25489BDE54290D1E480B7DED8FA6" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PmouPkg1.msi" FilePath="PmouPkg1.msi" FileSize="32768" Hash="BCBB4F1C48953D23BE56CD7D5005BB38CB02C7BAC4AF30F87B7ADF7715EA721D28A3FCFC025D26FD5DC069BAB69F462577C3212C1BFE3707FCCE60FF3F3ED12C" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <Payload Id="PmouPkg2.msi" FilePath="PmouPkg2.msi" FileSize="32768" Hash="C3BABBCCC0FDA4ACE44D28C60FAB2CA76C00655A405CF6F7A3593F9130FCF47AD18C4DAE1A32D5C0177F58DBAE00CBF7EDCA027BEE19B96E0145A3FA00811B51" Packaging="embedded" SourcePath="a2" Container="WixAttachedContainer" />
17 <Payload Id="PerUserPkg.msi" FilePath="PerUserPkg.msi" FileSize="32768" Hash="26CA1B74EFC52FA969279450110B6A9472E629004EF5655A661D8609A7E4DDB76CA220E5DB6FC2AE554415D9A4E28567014F48EF978EFDEE0B4431E81498572F" Packaging="embedded" SourcePath="a3" Container="WixAttachedContainer" />
18 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
19 <Registration BundleId="PmPuPmouBundle" Code="{6D7831C5-3A3B-481E-B048-E150DB402C74}" ExecutableName="PmPuPmouBundle.exe" Scope="perUser" Tag="" Version="1.0.0.0" ProviderKey="{6D7831C5-3A3B-481E-B048-E150DB402C74}">
20 <Arp DisplayName="PmPuPmouBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
21 </Registration>
22 <Chain>
23 <MsiPackage Id="PerMachinePkg.msi" Cache="keep" CacheId="{DD544949-52BA-432B-925E-9BF0C4DB4B83}v1.0.0.0" InstallSize="283" Size="32768" Scope="perMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerMachinePkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerMachinePkg.msi" ProductCode="{DD544949-52BA-432B-925E-9BF0C4DB4B83}" Language="1033" Version="1.0.0.0" UpgradeCode="{40B2312E-4395-5299-A08F-5B2744AA5A39}">
24 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
25 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
26 <Provides Key="{DD544949-52BA-432B-925E-9BF0C4DB4B83}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerMachinePkg" />
27 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
28 <Language Id="1033" />
29 </RelatedPackage>
30 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
31 <Language Id="1033" />
32 </RelatedPackage>
33 <PayloadRef Id="PerMachinePkg.msi" />
34 </MsiPackage>
35 <MsiPackage Id="PmouPkg1.msi" Cache="keep" CacheId="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PmouPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg1.msi" ProductCode="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}" Language="1033" Version="1.0.0.0" UpgradeCode="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}">
36 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
37 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
38 <Provides Key="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg1" />
39 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
40 <Language Id="1033" />
41 </RelatedPackage>
42 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
43 <Language Id="1033" />
44 </RelatedPackage>
45 <PayloadRef Id="PmouPkg1.msi" />
46 </MsiPackage>
47 <MsiPackage Id="PmouPkg2.msi" Cache="keep" CacheId="{1B1D793E-4026-48CA-B088-F919E70440AC}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PmouPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg2.msi" ProductCode="{1B1D793E-4026-48CA-B088-F919E70440AC}" Language="1033" Version="1.0.0.0" UpgradeCode="{98F763B3-EA17-5AE5-AD47-21004FB34B24}">
48 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
49 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
50 <Provides Key="{1B1D793E-4026-48CA-B088-F919E70440AC}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg2" />
51 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
52 <Language Id="1033" />
53 </RelatedPackage>
54 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
55 <Language Id="1033" />
56 </RelatedPackage>
57 <PayloadRef Id="PmouPkg2.msi" />
58 </MsiPackage>
59 <MsiPackage Id="PerUserPkg.msi" Cache="keep" CacheId="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}v1.0.0.0" InstallSize="274" Size="32768" Scope="perUser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerUserPkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerUserPkg.msi" ProductCode="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}" Language="1033" Version="1.0.0.0" UpgradeCode="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}">
60 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
61 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
62 <Provides Key="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerUserPkg" />
63 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
64 <Language Id="1033" />
65 </RelatedPackage>
66 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
67 <Language Id="1033" />
68 </RelatedPackage>
69 <PayloadRef Id="PerUserPkg.msi" />
70 </MsiPackage>
71 </Chain>
72</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPuomBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPuomBundle_manifest.xml
new file mode 100644
index 00000000..4bbd5307
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuPuomBundle_manifest.xml
@@ -0,0 +1,72 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PmPuPuomBundle" Extension="log" />
4 <RelatedBundle Code="{24F67952-8FCC-58B6-8A79-76F35525AAC4}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="131224" Hash="5A33E8012AC2E16CBD94668E8F871F023044CB37BE65C62A483C1896DC262C0F7D16C374405C28AE0F3AD000BEF8CED1858B9A7DBDEC9CDB2E01B7B67C506D1B" FilePath="PmPuPuomBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PerMachinePkg.msi" FilePath="PerMachinePkg.msi" FileSize="32768" Hash="4458C6B56290B207657AFB52DC20729FEDDA76799F21C14A7095E08CFB68CF382C5487CD53535CF24C16610066203ADFC29F25489BDE54290D1E480B7DED8FA6" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PuomPkg1.msi" FilePath="PuomPkg1.msi" FileSize="32768" Hash="EF19E061C2647AD42E39A1721299D5D970F1E42CE6636ACA53009DC0D0D1F8B6F2FD516B7D3EEDAAF1EEDA364D54DA6C18FB929C385EC1BDDA08AEA50370B357" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <Payload Id="PuomPkg2.msi" FilePath="PuomPkg2.msi" FileSize="32768" Hash="F927CE9CD3272AF6571E39C72A68E6BD6808D944B6893B09253887B1942E1C043EC5E1E1E758D3C261FF8B566121EE809C4CBCB931D00EBF14CC6CFE24001292" Packaging="embedded" SourcePath="a2" Container="WixAttachedContainer" />
17 <Payload Id="PerUserPkg.msi" FilePath="PerUserPkg.msi" FileSize="32768" Hash="26CA1B74EFC52FA969279450110B6A9472E629004EF5655A661D8609A7E4DDB76CA220E5DB6FC2AE554415D9A4E28567014F48EF978EFDEE0B4431E81498572F" Packaging="embedded" SourcePath="a3" Container="WixAttachedContainer" />
18 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
19 <Registration BundleId="PmPuPuomBundle" Code="{37290F81-A99C-4FBE-84F2-9A2E4742453C}" ExecutableName="PmPuPuomBundle.exe" Scope="perUser" Tag="" Version="1.0.0.0" ProviderKey="{37290F81-A99C-4FBE-84F2-9A2E4742453C}">
20 <Arp DisplayName="PmPuPuomBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
21 </Registration>
22 <Chain>
23 <MsiPackage Id="PerMachinePkg.msi" Cache="keep" CacheId="{DD544949-52BA-432B-925E-9BF0C4DB4B83}v1.0.0.0" InstallSize="283" Size="32768" Scope="perMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerMachinePkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerMachinePkg.msi" ProductCode="{DD544949-52BA-432B-925E-9BF0C4DB4B83}" Language="1033" Version="1.0.0.0" UpgradeCode="{40B2312E-4395-5299-A08F-5B2744AA5A39}">
24 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
25 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
26 <Provides Key="{DD544949-52BA-432B-925E-9BF0C4DB4B83}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerMachinePkg" />
27 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
28 <Language Id="1033" />
29 </RelatedPackage>
30 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
31 <Language Id="1033" />
32 </RelatedPackage>
33 <PayloadRef Id="PerMachinePkg.msi" />
34 </MsiPackage>
35 <MsiPackage Id="PuomPkg1.msi" Cache="keep" CacheId="{167C572B-D847-4BCF-9693-C8B5EB6350CD}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PuomPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg1.msi" ProductCode="{167C572B-D847-4BCF-9693-C8B5EB6350CD}" Language="1033" Version="1.0.0.0" UpgradeCode="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}">
36 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
37 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
38 <Provides Key="{167C572B-D847-4BCF-9693-C8B5EB6350CD}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg1" />
39 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
40 <Language Id="1033" />
41 </RelatedPackage>
42 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
43 <Language Id="1033" />
44 </RelatedPackage>
45 <PayloadRef Id="PuomPkg1.msi" />
46 </MsiPackage>
47 <MsiPackage Id="PuomPkg2.msi" Cache="keep" CacheId="{07617017-CE68-4F88-981A-4629835C9BD2}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PuomPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg2.msi" ProductCode="{07617017-CE68-4F88-981A-4629835C9BD2}" Language="1033" Version="1.0.0.0" UpgradeCode="{C977A922-168B-59F0-84FD-CAB89DB314E0}">
48 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
49 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
50 <Provides Key="{07617017-CE68-4F88-981A-4629835C9BD2}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg2" />
51 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
52 <Language Id="1033" />
53 </RelatedPackage>
54 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
55 <Language Id="1033" />
56 </RelatedPackage>
57 <PayloadRef Id="PuomPkg2.msi" />
58 </MsiPackage>
59 <MsiPackage Id="PerUserPkg.msi" Cache="keep" CacheId="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}v1.0.0.0" InstallSize="274" Size="32768" Scope="perUser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerUserPkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerUserPkg.msi" ProductCode="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}" Language="1033" Version="1.0.0.0" UpgradeCode="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}">
60 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
61 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
62 <Provides Key="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerUserPkg" />
63 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
64 <Language Id="1033" />
65 </RelatedPackage>
66 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
67 <Language Id="1033" />
68 </RelatedPackage>
69 <PayloadRef Id="PerUserPkg.msi" />
70 </MsiPackage>
71 </Chain>
72</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuomBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuomBundle_manifest.xml
new file mode 100644
index 00000000..6ea9e9bd
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PmPuomBundle_manifest.xml
@@ -0,0 +1,59 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PmPuomBundle" Extension="log" />
4 <RelatedBundle Code="{24038F27-3104-5E4E-987B-1C1F81A88D56}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="98429" Hash="5AF2416362232E3DED34FDBAA37EBA07FAA96526A87DDA64609762CC95B85DD95D4CB3F907A0D331C9A19D89121737C8A54E78DD65A4979189B040A4521F2115" FilePath="PmPuomBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PerMachinePkg.msi" FilePath="PerMachinePkg.msi" FileSize="32768" Hash="4458C6B56290B207657AFB52DC20729FEDDA76799F21C14A7095E08CFB68CF382C5487CD53535CF24C16610066203ADFC29F25489BDE54290D1E480B7DED8FA6" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PuomPkg1.msi" FilePath="PuomPkg1.msi" FileSize="32768" Hash="EF19E061C2647AD42E39A1721299D5D970F1E42CE6636ACA53009DC0D0D1F8B6F2FD516B7D3EEDAAF1EEDA364D54DA6C18FB929C385EC1BDDA08AEA50370B357" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <Payload Id="PuomPkg2.msi" FilePath="PuomPkg2.msi" FileSize="32768" Hash="F927CE9CD3272AF6571E39C72A68E6BD6808D944B6893B09253887B1942E1C043EC5E1E1E758D3C261FF8B566121EE809C4CBCB931D00EBF14CC6CFE24001292" Packaging="embedded" SourcePath="a2" Container="WixAttachedContainer" />
17 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
18 <Registration BundleId="PmPuomBundle" Code="{8D5DB5A9-22B1-475E-AC99-CA7E9179B94F}" ExecutableName="PmPuomBundle.exe" Scope="perUserOrMachine" Tag="" Version="1.0.0.0" ProviderKey="{8D5DB5A9-22B1-475E-AC99-CA7E9179B94F}">
19 <Arp DisplayName="PmPuomBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
20 </Registration>
21 <Chain>
22 <MsiPackage Id="PerMachinePkg.msi" Cache="keep" CacheId="{DD544949-52BA-432B-925E-9BF0C4DB4B83}v1.0.0.0" InstallSize="283" Size="32768" Scope="perMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerMachinePkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerMachinePkg.msi" ProductCode="{DD544949-52BA-432B-925E-9BF0C4DB4B83}" Language="1033" Version="1.0.0.0" UpgradeCode="{40B2312E-4395-5299-A08F-5B2744AA5A39}">
23 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
24 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
25 <Provides Key="{DD544949-52BA-432B-925E-9BF0C4DB4B83}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerMachinePkg" />
26 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
27 <Language Id="1033" />
28 </RelatedPackage>
29 <RelatedPackage Id="{40B2312E-4395-5299-A08F-5B2744AA5A39}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
30 <Language Id="1033" />
31 </RelatedPackage>
32 <PayloadRef Id="PerMachinePkg.msi" />
33 </MsiPackage>
34 <MsiPackage Id="PuomPkg1.msi" Cache="keep" CacheId="{167C572B-D847-4BCF-9693-C8B5EB6350CD}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PuomPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg1.msi" ProductCode="{167C572B-D847-4BCF-9693-C8B5EB6350CD}" Language="1033" Version="1.0.0.0" UpgradeCode="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}">
35 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
36 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
37 <Provides Key="{167C572B-D847-4BCF-9693-C8B5EB6350CD}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg1" />
38 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
39 <Language Id="1033" />
40 </RelatedPackage>
41 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
42 <Language Id="1033" />
43 </RelatedPackage>
44 <PayloadRef Id="PuomPkg1.msi" />
45 </MsiPackage>
46 <MsiPackage Id="PuomPkg2.msi" Cache="keep" CacheId="{07617017-CE68-4F88-981A-4629835C9BD2}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PuomPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg2.msi" ProductCode="{07617017-CE68-4F88-981A-4629835C9BD2}" Language="1033" Version="1.0.0.0" UpgradeCode="{C977A922-168B-59F0-84FD-CAB89DB314E0}">
47 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
48 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
49 <Provides Key="{07617017-CE68-4F88-981A-4629835C9BD2}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg2" />
50 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
51 <Language Id="1033" />
52 </RelatedPackage>
53 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
54 <Language Id="1033" />
55 </RelatedPackage>
56 <PayloadRef Id="PuomPkg2.msi" />
57 </MsiPackage>
58 </Chain>
59</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PuPmouBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PuPmouBundle_manifest.xml
new file mode 100644
index 00000000..79bb2500
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PuPmouBundle_manifest.xml
@@ -0,0 +1,59 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PuPmouBundle" Extension="log" />
4 <RelatedBundle Code="{92C1B57B-1972-5EB7-BB59-B4D230D806C7}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="98429" Hash="787872CCF9B905BE17725AD6F4DA2C8ACE196AA7BB90B54421E5029D85FF1F70BB51A91FAD81D2F7E09A956430866E208EF2A51681822501A39B791B88703F20" FilePath="PuPmouBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PmouPkg1.msi" FilePath="PmouPkg1.msi" FileSize="32768" Hash="BCBB4F1C48953D23BE56CD7D5005BB38CB02C7BAC4AF30F87B7ADF7715EA721D28A3FCFC025D26FD5DC069BAB69F462577C3212C1BFE3707FCCE60FF3F3ED12C" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PmouPkg2.msi" FilePath="PmouPkg2.msi" FileSize="32768" Hash="C3BABBCCC0FDA4ACE44D28C60FAB2CA76C00655A405CF6F7A3593F9130FCF47AD18C4DAE1A32D5C0177F58DBAE00CBF7EDCA027BEE19B96E0145A3FA00811B51" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <Payload Id="PerUserPkg.msi" FilePath="PerUserPkg.msi" FileSize="32768" Hash="26CA1B74EFC52FA969279450110B6A9472E629004EF5655A661D8609A7E4DDB76CA220E5DB6FC2AE554415D9A4E28567014F48EF978EFDEE0B4431E81498572F" Packaging="embedded" SourcePath="a2" Container="WixAttachedContainer" />
17 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
18 <Registration BundleId="PuPmouBundle" Code="{E974001C-97B1-4FF7-B1E3-B2CAACF1FF4A}" ExecutableName="PuPmouBundle.exe" Scope="perUser" Tag="" Version="1.0.0.0" ProviderKey="{E974001C-97B1-4FF7-B1E3-B2CAACF1FF4A}">
19 <Arp DisplayName="PuPmouBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
20 </Registration>
21 <Chain>
22 <MsiPackage Id="PmouPkg1.msi" Cache="keep" CacheId="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PmouPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg1.msi" ProductCode="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}" Language="1033" Version="1.0.0.0" UpgradeCode="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}">
23 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
24 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
25 <Provides Key="{E46705B9-D2F9-4BE8-8270-F1A11196A9D4}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg1" />
26 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
27 <Language Id="1033" />
28 </RelatedPackage>
29 <RelatedPackage Id="{B0DA1185-5CF5-55A3-8351-01F1AD3E50CE}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
30 <Language Id="1033" />
31 </RelatedPackage>
32 <PayloadRef Id="PmouPkg1.msi" />
33 </MsiPackage>
34 <MsiPackage Id="PmouPkg2.msi" Cache="keep" CacheId="{1B1D793E-4026-48CA-B088-F919E70440AC}v1.0.0.0" InstallSize="279" Size="32768" Scope="perMachineOrUser" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PmouPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PmouPkg2.msi" ProductCode="{1B1D793E-4026-48CA-B088-F919E70440AC}" Language="1033" Version="1.0.0.0" UpgradeCode="{98F763B3-EA17-5AE5-AD47-21004FB34B24}">
35 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
36 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
37 <Provides Key="{1B1D793E-4026-48CA-B088-F919E70440AC}_v1.0.0.0" Version="1.0.0.0" DisplayName="PmouPkg2" />
38 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
39 <Language Id="1033" />
40 </RelatedPackage>
41 <RelatedPackage Id="{98F763B3-EA17-5AE5-AD47-21004FB34B24}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
42 <Language Id="1033" />
43 </RelatedPackage>
44 <PayloadRef Id="PmouPkg2.msi" />
45 </MsiPackage>
46 <MsiPackage Id="PerUserPkg.msi" Cache="keep" CacheId="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}v1.0.0.0" InstallSize="274" Size="32768" Scope="perUser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerUserPkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerUserPkg.msi" ProductCode="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}" Language="1033" Version="1.0.0.0" UpgradeCode="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}">
47 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
48 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
49 <Provides Key="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerUserPkg" />
50 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
51 <Language Id="1033" />
52 </RelatedPackage>
53 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
54 <Language Id="1033" />
55 </RelatedPackage>
56 <PayloadRef Id="PerUserPkg.msi" />
57 </MsiPackage>
58 </Chain>
59</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PuPuomBundle_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PuPuomBundle_manifest.xml
new file mode 100644
index 00000000..20dc0102
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PuPuomBundle_manifest.xml
@@ -0,0 +1,59 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="PuPuomBundle" Extension="log" />
4 <RelatedBundle Code="{B0E91543-B4AC-5229-A871-3310CC2C32DF}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="98429" Hash="29DF486489C9075258FB216672D76A4BB5BEC498157964F641EA360DB2C80EE37B737654A54B6F1FBB2E96E727A80B2B708AD69534EE9CE0E29ACEF09704896D" FilePath="PuPuomBundle.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="PuomPkg1.msi" FilePath="PuomPkg1.msi" FileSize="32768" Hash="EF19E061C2647AD42E39A1721299D5D970F1E42CE6636ACA53009DC0D0D1F8B6F2FD516B7D3EEDAAF1EEDA364D54DA6C18FB929C385EC1BDDA08AEA50370B357" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <Payload Id="PuomPkg2.msi" FilePath="PuomPkg2.msi" FileSize="32768" Hash="F927CE9CD3272AF6571E39C72A68E6BD6808D944B6893B09253887B1942E1C043EC5E1E1E758D3C261FF8B566121EE809C4CBCB931D00EBF14CC6CFE24001292" Packaging="embedded" SourcePath="a1" Container="WixAttachedContainer" />
16 <Payload Id="PerUserPkg.msi" FilePath="PerUserPkg.msi" FileSize="32768" Hash="26CA1B74EFC52FA969279450110B6A9472E629004EF5655A661D8609A7E4DDB76CA220E5DB6FC2AE554415D9A4E28567014F48EF978EFDEE0B4431E81498572F" Packaging="embedded" SourcePath="a2" Container="WixAttachedContainer" />
17 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
18 <Registration BundleId="PuPuomBundle" Code="{6440CE0F-C219-4559-A051-97A655C4230A}" ExecutableName="PuPuomBundle.exe" Scope="perUser" Tag="" Version="1.0.0.0" ProviderKey="{6440CE0F-C219-4559-A051-97A655C4230A}">
19 <Arp DisplayName="PuPuomBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
20 </Registration>
21 <Chain>
22 <MsiPackage Id="PuomPkg1.msi" Cache="keep" CacheId="{167C572B-D847-4BCF-9693-C8B5EB6350CD}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PuomPkg1.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg1.msi" ProductCode="{167C572B-D847-4BCF-9693-C8B5EB6350CD}" Language="1033" Version="1.0.0.0" UpgradeCode="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}">
23 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
24 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
25 <Provides Key="{167C572B-D847-4BCF-9693-C8B5EB6350CD}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg1" />
26 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
27 <Language Id="1033" />
28 </RelatedPackage>
29 <RelatedPackage Id="{AC3A2D0C-CB37-5F8B-8CE1-9233B963E5BB}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
30 <Language Id="1033" />
31 </RelatedPackage>
32 <PayloadRef Id="PuomPkg1.msi" />
33 </MsiPackage>
34 <MsiPackage Id="PuomPkg2.msi" Cache="keep" CacheId="{07617017-CE68-4F88-981A-4629835C9BD2}v1.0.0.0" InstallSize="279" Size="32768" Scope="perUserOrMachine" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PuomPkg2.msi" RollbackLogPathVariable="WixBundleRollbackLog_PuomPkg2.msi" ProductCode="{07617017-CE68-4F88-981A-4629835C9BD2}" Language="1033" Version="1.0.0.0" UpgradeCode="{C977A922-168B-59F0-84FD-CAB89DB314E0}">
35 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
36 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
37 <Provides Key="{07617017-CE68-4F88-981A-4629835C9BD2}_v1.0.0.0" Version="1.0.0.0" DisplayName="PuomPkg2" />
38 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
39 <Language Id="1033" />
40 </RelatedPackage>
41 <RelatedPackage Id="{C977A922-168B-59F0-84FD-CAB89DB314E0}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
42 <Language Id="1033" />
43 </RelatedPackage>
44 <PayloadRef Id="PuomPkg2.msi" />
45 </MsiPackage>
46 <MsiPackage Id="PerUserPkg.msi" Cache="keep" CacheId="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}v1.0.0.0" InstallSize="274" Size="32768" Scope="perUser" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PerUserPkg.msi" RollbackLogPathVariable="WixBundleRollbackLog_PerUserPkg.msi" ProductCode="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}" Language="1033" Version="1.0.0.0" UpgradeCode="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}">
47 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
48 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
49 <Provides Key="{7DA760D5-30A8-4A32-A2E0-1563E0C99CEB}_v1.0.0.0" Version="1.0.0.0" DisplayName="PerUserPkg" />
50 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MaxVersion="1.0.0.0" MaxInclusive="no" OnlyDetect="no" LangInclusive="yes">
51 <Language Id="1033" />
52 </RelatedPackage>
53 <RelatedPackage Id="{0D1FCBA3-488C-5309-B67C-E00C8B3FCADD}" MinVersion="1.0.0.0" MinInclusive="no" OnlyDetect="yes" LangInclusive="yes">
54 <Language Id="1033" />
55 </RelatedPackage>
56 <PayloadRef Id="PerUserPkg.msi" />
57 </MsiPackage>
58 </Chain>
59</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/PuomBundlePackage_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/PuomBundlePackage_manifest.xml
new file mode 100644
index 00000000..60123409
--- /dev/null
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/PuomBundlePackage_manifest.xml
@@ -0,0 +1,26 @@
1<?xml version="1.0" encoding="utf-8"?>
2<BurnManifest EngineVersion="7.0.0.54" ProtocolVersion="1" Win64="no" xmlns="http://wixtoolset.org/schemas/v4/2008/Burn">
3 <Log PathVariable="WixBundleLog" Prefix="AllPuomBundle" Extension="log" />
4 <RelatedBundle Code="{689DDFCE-6492-596F-92DC-341CCDF59ABB}" Action="Upgrade" />
5 <UX PrimaryPayloadId="WixStandardBootstrapperApplication_X86">
6 <Payload Id="payberKyKpNVb0s10isnONgjD92jYc" FilePath="thm.xml" SourcePath="u0" />
7 <Payload Id="payXE.1bvyKgymWAWeJwB8BL4ifPGo" FilePath="thm.wxl" SourcePath="u1" />
8 <Payload Id="pay8cUoxSucOqsVErqhu1LEW8wSG1s" FilePath="logo.png" SourcePath="u2" />
9 <Payload Id="WixStandardBootstrapperApplication_X86" FilePath="wixstdba.exe" SourcePath="u3" />
10 <Payload Id="uxTxMXPVMXwQrPTMIGa5WGt93w0Ns" FilePath="BootstrapperApplicationData.xml" SourcePath="u4" />
11 <Payload Id="uxmKgAFS4cS31ZH_Myfqo5J4kHixQ" FilePath="BootstrapperExtensionData.xml" SourcePath="u5" />
12 </UX>
13 <Container Id="WixAttachedContainer" FileSize="6212364" Hash="62B3BCE91659C71B4382EBE5699FDB0D9A903D5293EB6EC9211D401590C72F9A0C755F28F88D0A70BB7716710457B5480A8EBC9FEC6E103A30F2A03A301AFD10" FilePath="PuomBundlePackage.exe" AttachedIndex="1" Attached="yes" Primary="yes" />
14 <Payload Id="AllPuomBundle.exe" FilePath="AllPuomBundle.exe" FileSize="6210781" Hash="99C28419B07FDFC7C89AAB483FE7B2BB35102556959E9F2169CAB8A25FCFF2583F7B1079A69CB902ACDD3EE390E890AC9C9D54A108D70BFBB4AF26EC61AB4929" Packaging="embedded" SourcePath="a0" Container="WixAttachedContainer" />
15 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
16 <Registration BundleId="AllPuomBundle" Code="{AF0B0375-34C0-4BEF-9411-ACD15D2084CB}" ExecutableName="PuomBundlePackage.exe" Scope="perUserOrMachine" Tag="" Version="1.0.0.0" ProviderKey="{AF0B0375-34C0-4BEF-9411-ACD15D2084CB}">
17 <Arp DisplayName="AllPuomBundle" DisplayVersion="1.0.0.0" Publisher="Acme" />
18 </Registration>
19 <Chain>
20 <BundlePackage Id="AllPuomBundle.exe" Cache="keep" CacheId="{37A6F602-178E-4A32-B766-EDC2CB81274B}v1.0.0.0" InstallSize="558" Size="6210781" Scope="perUserOrMachine" Permanent="no" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_AllPuomBundle.exe" RollbackLogPathVariable="WixBundleRollbackLog_AllPuomBundle.exe" BundleCode="{37A6F602-178E-4A32-B766-EDC2CB81274B}" Version="1.0.0.0" InstallArguments="" UninstallArguments="" RepairArguments="" SupportsBurnProtocol="yes" Win64="no" HideARP="yes">
21 <Provides Key="{37A6F602-178E-4A32-B766-EDC2CB81274B}" Version="1.0.0.0" DisplayName="AllPuomBundle" Imported="yes" />
22 <RelatedBundle Code="{689DDFCE-6492-596F-92DC-341CCDF59ABB}" Action="Upgrade" />
23 <PayloadRef Id="AllPuomBundle.exe" />
24 </BundlePackage>
25 </Chain>
26</BurnManifest> \ No newline at end of file
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_manifest.xml
index 495bbf05..e4075796 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_manifest.xml
@@ -45,14 +45,14 @@
45 <Payload Id="PackageA" FilePath="PackageAv1.msi" FileSize="32768" Hash="2369B16B7219B3C834DFBC5D2AF8B2EF8803D43D" Packaging="external" SourcePath="PackageAv1.msi" /> 45 <Payload Id="PackageA" FilePath="PackageAv1.msi" FileSize="32768" Hash="2369B16B7219B3C834DFBC5D2AF8B2EF8803D43D" Packaging="external" SourcePath="PackageAv1.msi" />
46 <Payload Id="PatchA" FilePath="PatchA.msp" FileSize="20480" Hash="FABC6C18E4A778E127E84CDF67F93A291CAEC8BB" Packaging="external" SourcePath="PatchA.msp" /> 46 <Payload Id="PatchA" FilePath="PatchA.msp" FileSize="20480" Hash="FABC6C18E4A778E127E84CDF67F93A291CAEC8BB" Packaging="external" SourcePath="PatchA.msp" />
47 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 47 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
48 <Registration Code="{22D1DDBA-284D-40A7-BD14-95EA07906F21}" ExecutableName="BundleA.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{22D1DDBA-284D-40A7-BD14-95EA07906F21}"> 48 <Registration Code="{22D1DDBA-284D-40A7-BD14-95EA07906F21}" ExecutableName="BundleA.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{22D1DDBA-284D-40A7-BD14-95EA07906F21}">
49 <Arp Register="yes" DisplayName="~SlipstreamTests - BundleA" DisplayVersion="1.0.0.0" /> 49 <Arp Register="yes" DisplayName="~SlipstreamTests - BundleA" DisplayVersion="1.0.0.0" />
50 </Registration> 50 </Registration>
51 <Chain> 51 <Chain>
52 <ExePackage Id="NetFx48Web" Cache="keep" CacheId="5A84A8E612E270E27D0061D58DB6B470153BE1F9" InstallSize="1479400" Size="1479400" PerMachine="yes" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="/uninstall /q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" RepairArguments="/q /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" Repairable="yes" Uninstallable="yes" Protocol="netfx4" DetectionType="condition"> 52 <ExePackage Id="NetFx48Web" Cache="keep" CacheId="5A84A8E612E270E27D0061D58DB6B470153BE1F9" InstallSize="1479400" Size="1479400" Scope="permachine" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="/uninstall /q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" RepairArguments="/q /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" Repairable="yes" Uninstallable="yes" Protocol="netfx4" DetectionType="condition">
53 <PayloadRef Id="NetFx48Web" /> 53 <PayloadRef Id="NetFx48Web" />
54 </ExePackage> 54 </ExePackage>
55 <MsiPackage Id="PackageA" Cache="keep" CacheId="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}v1.0.0.0" InstallSize="2103" Size="32768" PerMachine="yes" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}" Language="1033" Version="1.0.0.0" UpgradeCode="{DB87BB66-FE5D-4293-81AC-EE313D3F864B}"> 55 <MsiPackage Id="PackageA" Cache="keep" CacheId="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}v1.0.0.0" InstallSize="2103" Size="32768" Scope="permachine" Permanent="no" Vital="yes" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}" Language="1033" Version="1.0.0.0" UpgradeCode="{DB87BB66-FE5D-4293-81AC-EE313D3F864B}">
56 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" /> 56 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
57 <MsiProperty Id="MSIFASTINSTALL" Value="7" /> 57 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
58 <SlipstreamMsp Id="PatchA" /> 58 <SlipstreamMsp Id="PatchA" />
@@ -65,7 +65,7 @@
65 </RelatedPackage> 65 </RelatedPackage>
66 <PayloadRef Id="PackageA" /> 66 <PayloadRef Id="PackageA" />
67 </MsiPackage> 67 </MsiPackage>
68 <MspPackage Id="PatchA" Cache="keep" CacheId="{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}" InstallSize="20480" Size="20480" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PatchA" RollbackLogPathVariable="WixBundleRollbackLog_PatchA" PatchCode="{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}" PatchXml="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;MsiPatch xmlns=&quot;http://www.microsoft.com/msi/patch_applicability.xsd&quot; SchemaVersion=&quot;1.0.0.0&quot; PatchGUID=&quot;{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}&quot; MinMsiVersion=&quot;5&quot; TargetsRTM=&quot;true&quot;&gt;&lt;TargetProduct MinMsiVersion=&quot;500&quot;&gt;&lt;TargetProductCode Validate=&quot;true&quot;&gt;{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}&lt;/TargetProductCode&gt;&lt;TargetVersion Validate=&quot;true&quot; ComparisonType=&quot;Equal&quot; ComparisonFilter=&quot;MajorMinorUpdate&quot;&gt;1.0.0.0&lt;/TargetVersion&gt;&lt;UpdatedVersion&gt;1.0.1.0&lt;/UpdatedVersion&gt;&lt;TargetLanguage Validate=&quot;false&quot;&gt;1033&lt;/TargetLanguage&gt;&lt;UpdatedLanguages&gt;1033&lt;/UpdatedLanguages&gt;&lt;UpgradeCode Validate=&quot;true&quot;&gt;{DB87BB66-FE5D-4293-81AC-EE313D3F864B}&lt;/UpgradeCode&gt;&lt;/TargetProduct&gt;&lt;TargetProductCode&gt;{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}&lt;/TargetProductCode&gt;&lt;/MsiPatch&gt;"> 68 <MspPackage Id="PatchA" Cache="keep" CacheId="{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}" InstallSize="20480" Size="20480" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PatchA" RollbackLogPathVariable="WixBundleRollbackLog_PatchA" PatchCode="{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}" PatchXml="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;MsiPatch xmlns=&quot;http://www.microsoft.com/msi/patch_applicability.xsd&quot; SchemaVersion=&quot;1.0.0.0&quot; PatchGUID=&quot;{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}&quot; MinMsiVersion=&quot;5&quot; TargetsRTM=&quot;true&quot;&gt;&lt;TargetProduct MinMsiVersion=&quot;500&quot;&gt;&lt;TargetProductCode Validate=&quot;true&quot;&gt;{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}&lt;/TargetProductCode&gt;&lt;TargetVersion Validate=&quot;true&quot; ComparisonType=&quot;Equal&quot; ComparisonFilter=&quot;MajorMinorUpdate&quot;&gt;1.0.0.0&lt;/TargetVersion&gt;&lt;UpdatedVersion&gt;1.0.1.0&lt;/UpdatedVersion&gt;&lt;TargetLanguage Validate=&quot;false&quot;&gt;1033&lt;/TargetLanguage&gt;&lt;UpdatedLanguages&gt;1033&lt;/UpdatedLanguages&gt;&lt;UpgradeCode Validate=&quot;true&quot;&gt;{DB87BB66-FE5D-4293-81AC-EE313D3F864B}&lt;/UpgradeCode&gt;&lt;/TargetProduct&gt;&lt;TargetProductCode&gt;{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}&lt;/TargetProductCode&gt;&lt;/MsiPatch&gt;">
69 <Provides Key="{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}" DisplayName="SlipstreamTests - Patch A" /> 69 <Provides Key="{0A5113E3-06A5-4CE0-8E83-9EB42F6764A6}" DisplayName="SlipstreamTests - Patch A" />
70 <PayloadRef Id="PatchA" /> 70 <PayloadRef Id="PatchA" />
71 </MspPackage> 71 </MspPackage>
diff --git a/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_modified_manifest.xml b/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_modified_manifest.xml
index de73c66f..1d9fcbee 100644
--- a/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_modified_manifest.xml
+++ b/src/burn/test/BurnUnitTest/TestData/PlanTest/Slipstream_BundleA_modified_manifest.xml
@@ -44,14 +44,14 @@
44 <Payload Id="NetFx48Web" FilePath="redist\ndp48-web.exe" FileSize="1479400" Hash="5A84A8E612E270E27D0061D58DB6B470153BE1F9" DownloadUrl="https://go.microsoft.com/fwlink/?LinkId=2085155" Packaging="external" SourcePath="redist\ndp48-web.exe" /> 44 <Payload Id="NetFx48Web" FilePath="redist\ndp48-web.exe" FileSize="1479400" Hash="5A84A8E612E270E27D0061D58DB6B470153BE1F9" DownloadUrl="https://go.microsoft.com/fwlink/?LinkId=2085155" Packaging="external" SourcePath="redist\ndp48-web.exe" />
45 <Payload Id="PackageA" FilePath="PackageAv1.msi" FileSize="32768" Hash="2369B16B7219B3C834DFBC5D2AF8B2EF8803D43D" Packaging="external" SourcePath="PackageAv1.msi" /> 45 <Payload Id="PackageA" FilePath="PackageAv1.msi" FileSize="32768" Hash="2369B16B7219B3C834DFBC5D2AF8B2EF8803D43D" Packaging="external" SourcePath="PackageAv1.msi" />
46 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" /> 46 <RollbackBoundary Id="WixDefaultBoundary" Vital="yes" Transaction="no" />
47 <Registration Code="{22D1DDBA-284D-40A7-BD14-95EA07906F21}" ExecutableName="BundleA.exe" PerMachine="yes" Tag="" Version="1.0.0.0" ProviderKey="{DC94A8E0-4BF4-4026-B80B-2755DAFC05D3}"> 47 <Registration Code="{22D1DDBA-284D-40A7-BD14-95EA07906F21}" ExecutableName="BundleA.exe" Scope="permachine" Tag="" Version="1.0.0.0" ProviderKey="{DC94A8E0-4BF4-4026-B80B-2755DAFC05D3}">
48 <Arp Register="yes" DisplayName="~SlipstreamTests - BundleA" DisplayVersion="1.0.0.0" /> 48 <Arp Register="yes" DisplayName="~SlipstreamTests - BundleA" DisplayVersion="1.0.0.0" />
49 </Registration> 49 </Registration>
50 <Chain> 50 <Chain>
51 <ExePackage Id="NetFx48Web" Cache="keep" CacheId="5A84A8E612E270E27D0061D58DB6B470153BE1F9" InstallSize="1479400" Size="1479400" PerMachine="yes" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="" RepairArguments="/q /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" Repairable="yes" Uninstallable="no" Protocol="netfx4" DetectionType="condition"> 51 <ExePackage Id="NetFx48Web" Cache="keep" CacheId="5A84A8E612E270E27D0061D58DB6B470153BE1F9" InstallSize="1479400" Size="1479400" Scope="permachine" Permanent="yes" Vital="yes" RollbackBoundaryForward="WixDefaultBoundary" LogPathVariable="NetFx48WebLog" RollbackLogPathVariable="WixBundleRollbackLog_NetFx48Web" DetectCondition="NETFRAMEWORK45 &gt;= 528040" InstallArguments="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" UninstallArguments="" RepairArguments="/q /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[NetFx48WebLog].html&quot;" Repairable="yes" Uninstallable="no" Protocol="netfx4" DetectionType="condition">
52 <PayloadRef Id="NetFx48Web" /> 52 <PayloadRef Id="NetFx48Web" />
53 </ExePackage> 53 </ExePackage>
54 <MsiPackage Id="PackageA" Cache="keep" CacheId="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}v1.0.0.0" InstallSize="2103" Size="32768" PerMachine="yes" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}" Language="1033" Version="1.0.0.0" UpgradeCode="{DB87BB66-FE5D-4293-81AC-EE313D3F864B}"> 54 <MsiPackage Id="PackageA" Cache="keep" CacheId="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}v1.0.0.0" InstallSize="2103" Size="32768" Scope="permachine" Permanent="no" Vital="yes" RollbackBoundaryBackward="WixDefaultBoundary" LogPathVariable="WixBundleLog_PackageA" RollbackLogPathVariable="WixBundleRollbackLog_PackageA" ProductCode="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}" Language="1033" Version="1.0.0.0" UpgradeCode="{DB87BB66-FE5D-4293-81AC-EE313D3F864B}">
55 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" /> 55 <MsiProperty Id="ARPSYSTEMCOMPONENT" Value="1" />
56 <MsiProperty Id="MSIFASTINSTALL" Value="7" /> 56 <MsiProperty Id="MSIFASTINSTALL" Value="7" />
57 <Provides Key="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}" Version="1.0.0.0" DisplayName="~SlipstreamTests - PackageA" /> 57 <Provides Key="{5FF7F534-3FFC-41E0-80CD-E6361E5E7B7B}" Version="1.0.0.0" DisplayName="~SlipstreamTests - PackageA" />
diff --git a/src/burn/test/BurnUnitTest/VariableHelpers.cpp b/src/burn/test/BurnUnitTest/VariableHelpers.cpp
index 40f958f8..b1106492 100644
--- a/src/burn/test/BurnUnitTest/VariableHelpers.cpp
+++ b/src/burn/test/BurnUnitTest/VariableHelpers.cpp
@@ -7,11 +7,7 @@ using namespace System;
7using namespace Xunit; 7using namespace Xunit;
8 8
9 9
10namespace Microsoft 10namespace WixToolset
11{
12namespace Tools
13{
14namespace WindowsInstallerXml
15{ 11{
16namespace Test 12namespace Test
17{ 13{
@@ -213,5 +209,3 @@ namespace Bootstrapper
213} 209}
214} 210}
215} 211}
216}
217}
diff --git a/src/burn/test/BurnUnitTest/VariableHelpers.h b/src/burn/test/BurnUnitTest/VariableHelpers.h
index d460c60f..4783c48c 100644
--- a/src/burn/test/BurnUnitTest/VariableHelpers.h
+++ b/src/burn/test/BurnUnitTest/VariableHelpers.h
@@ -2,11 +2,7 @@
2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 2// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
3 3
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -32,5 +28,3 @@ int VariableGetTypeHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable);
32} 28}
33} 29}
34} 30}
35}
36}
diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp
index 2e2c36c9..7bd6f20a 100644
--- a/src/burn/test/BurnUnitTest/VariableTest.cpp
+++ b/src/burn/test/BurnUnitTest/VariableTest.cpp
@@ -4,11 +4,7 @@
4#undef GetTempPath 4#undef GetTempPath
5#undef GetEnvironmentVariable 5#undef GetEnvironmentVariable
6 6
7namespace Microsoft 7namespace WixToolset
8{
9namespace Tools
10{
11namespace WindowsInstallerXml
12{ 8{
13namespace Test 9namespace Test
14{ 10{
@@ -618,5 +614,3 @@ namespace Bootstrapper
618} 614}
619} 615}
620} 616}
621}
622}
diff --git a/src/burn/test/BurnUnitTest/VariantTest.cpp b/src/burn/test/BurnUnitTest/VariantTest.cpp
index 035864cf..8dd44a5d 100644
--- a/src/burn/test/BurnUnitTest/VariantTest.cpp
+++ b/src/burn/test/BurnUnitTest/VariantTest.cpp
@@ -2,11 +2,7 @@
2 2
3#include "precomp.h" 3#include "precomp.h"
4 4
5namespace Microsoft 5namespace WixToolset
6{
7namespace Tools
8{
9namespace WindowsInstallerXml
10{ 6{
11namespace Test 7namespace Test
12{ 8{
@@ -215,5 +211,3 @@ namespace Bootstrapper
215} 211}
216} 212}
217} 213}
218}
219}