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