main
cpp 71 lines 2.37 KB
Raw
1 // 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
3 #include "precomp.h"
4
5 namespace Microsoft
6 {
7 namespace Tools
8 {
9 namespace WindowsInstallerXml
10 {
11 namespace Test
12 {
13 namespace Bootstrapper
14 {
15 using namespace System;
16 using namespace Xunit;
17
18 public ref class ManifestTest : BurnUnitTest
19 {
20 public:
21 ManifestTest(BurnTestFixture^ fixture) : BurnUnitTest(fixture)
22 {
23 }
24
25 [Fact]
26 void ManifestLoadXmlTest()
27 {
28 HRESULT hr = S_OK;
29 BURN_ENGINE_STATE engineState = { };
30 try
31 {
32 LPCSTR szDocument =
33 "<BurnManifest EngineVersion='" szVerMajorMinorBuild "' ProtocolVersion='1' Win64='"
34 #if !defined(_WIN64)
35 "no"
36 #else
37 "yes"
38 #endif
39 "'>"
40 " <UX PrimaryPayloadId='ux.exe'>"
41 " <Payload Id='ux.exe' FilePath='ux.exe' Packaging='embedded' SourcePath='u0' />"
42 " </UX>"
43 " <Registration Id='{D54F896D-1952-43e6-9C67-B5652240618C}' Tag='foo' ProviderKey='foo' Version='1.0.0.0' ExecutableName='setup.exe' PerMachine='no' />"
44 " <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' />"
46 "</BurnManifest>";
47
48 hr = CacheInitialize(&engineState.cache, &engineState.internalCommand);
49 TestThrowOnFailure(hr, L"Failed initialize cache.");
50
51 hr = VariableInitialize(&engineState.variables);
52 TestThrowOnFailure(hr, L"Failed to initialize variables.");
53
54 // load manifest from XML
55 hr = ManifestLoadXmlFromBuffer((BYTE*)szDocument, lstrlenA(szDocument), &engineState);
56 TestThrowOnFailure(hr, L"Failed to parse manifest from XML.");
57
58 // check variable values
59 Assert::True(VariableExistsHelper(&engineState.variables, L"Variable1"));
60 }
61 finally
62 {
63 //CoreUninitialize(&engineState);
64 }
65 }
66 };
67 }
68 }
69 }
70 }
71 }