diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/BurnUnitTest/VariantTest.cpp | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/src/test/BurnUnitTest/VariantTest.cpp b/src/test/BurnUnitTest/VariantTest.cpp index d16ac699..c982db72 100644 --- a/src/test/BurnUnitTest/VariantTest.cpp +++ b/src/test/BurnUnitTest/VariantTest.cpp | |||
@@ -25,9 +25,9 @@ namespace Bootstrapper | |||
25 | [Fact] | 25 | [Fact] |
26 | void VariantBasicTest() | 26 | void VariantBasicTest() |
27 | { | 27 | { |
28 | BURN_VARIANT expectedVariants[8]; | 28 | BURN_VARIANT expectedVariants[10]; |
29 | BURN_VARIANT actualVariants[8]; | 29 | BURN_VARIANT actualVariants[10]; |
30 | for (DWORD i = 0; i < 8; i++) | 30 | for (DWORD i = 0; i < 10; i++) |
31 | { | 31 | { |
32 | BVariantUninitialize(expectedVariants + i); | 32 | BVariantUninitialize(expectedVariants + i); |
33 | BVariantUninitialize(actualVariants + i); | 33 | BVariantUninitialize(actualVariants + i); |
@@ -43,6 +43,8 @@ namespace Bootstrapper | |||
43 | InitVersionValue(expectedVariants + 5, MAKEQWORDVERSION(1, 1, 1, 0), TRUE, L"PROP6", actualVariants + 5); | 43 | InitVersionValue(expectedVariants + 5, MAKEQWORDVERSION(1, 1, 1, 0), TRUE, L"PROP6", actualVariants + 5); |
44 | InitStringValue(expectedVariants + 6, L"7", TRUE, L"PROP7", actualVariants + 6); | 44 | InitStringValue(expectedVariants + 6, L"7", TRUE, L"PROP7", actualVariants + 6); |
45 | InitNumericValue(expectedVariants + 7, 11, TRUE, L"PROP8", actualVariants + 7); | 45 | InitNumericValue(expectedVariants + 7, 11, TRUE, L"PROP8", actualVariants + 7); |
46 | InitFormattedValue(expectedVariants + 8, L"VAL9", FALSE, L"PROP9", actualVariants + 8); | ||
47 | InitFormattedValue(expectedVariants + 9, L"VAL10", TRUE, L"PROP10", actualVariants + 9); | ||
46 | 48 | ||
47 | VerifyNumericValue(expectedVariants + 0, actualVariants + 0); | 49 | VerifyNumericValue(expectedVariants + 0, actualVariants + 0); |
48 | VerifyStringValue(expectedVariants + 1, actualVariants + 1); | 50 | VerifyStringValue(expectedVariants + 1, actualVariants + 1); |
@@ -52,10 +54,12 @@ namespace Bootstrapper | |||
52 | VerifyVersionValue(expectedVariants + 5, actualVariants + 5); | 54 | VerifyVersionValue(expectedVariants + 5, actualVariants + 5); |
53 | VerifyStringValue(expectedVariants + 6, actualVariants + 6); | 55 | VerifyStringValue(expectedVariants + 6, actualVariants + 6); |
54 | VerifyNumericValue(expectedVariants + 7, actualVariants + 7); | 56 | VerifyNumericValue(expectedVariants + 7, actualVariants + 7); |
57 | VerifyFormattedValue(expectedVariants + 8, actualVariants + 8); | ||
58 | VerifyFormattedValue(expectedVariants + 9, actualVariants + 9); | ||
55 | } | 59 | } |
56 | finally | 60 | finally |
57 | { | 61 | { |
58 | for (DWORD i = 0; i < 8; i++) | 62 | for (DWORD i = 0; i < 10; i++) |
59 | { | 63 | { |
60 | BVariantUninitialize(expectedVariants + i); | 64 | BVariantUninitialize(expectedVariants + i); |
61 | BVariantUninitialize(actualVariants + i); | 65 | BVariantUninitialize(actualVariants + i); |
@@ -64,6 +68,26 @@ namespace Bootstrapper | |||
64 | } | 68 | } |
65 | 69 | ||
66 | private: | 70 | private: |
71 | void InitFormattedValue(BURN_VARIANT* pValue, LPWSTR wzValue, BOOL fHidden, LPCWSTR wz, BURN_VARIANT* pActualValue) | ||
72 | { | ||
73 | HRESULT hr = S_OK; | ||
74 | pValue->Type = BURN_VARIANT_TYPE_FORMATTED; | ||
75 | |||
76 | hr = StrAllocString(&pValue->sczValue, wzValue, 0); | ||
77 | NativeAssert::Succeeded(hr, "Failed to alloc string: {0}", wzValue); | ||
78 | |||
79 | hr = BVariantCopy(pValue, pActualValue); | ||
80 | NativeAssert::Succeeded(hr, "Failed to copy variant {0}", wz); | ||
81 | |||
82 | if (fHidden) | ||
83 | { | ||
84 | hr = BVariantSetEncryption(pActualValue, TRUE); | ||
85 | NativeAssert::Succeeded(hr, "Failed to encrypt variant {0}", wz); | ||
86 | |||
87 | NativeAssert::True(pActualValue->fEncryptString); | ||
88 | } | ||
89 | } | ||
90 | |||
67 | void InitNoneValue(BURN_VARIANT* pValue, BOOL fHidden, LPCWSTR wz, BURN_VARIANT* pActualValue) | 91 | void InitNoneValue(BURN_VARIANT* pValue, BOOL fHidden, LPCWSTR wz, BURN_VARIANT* pActualValue) |
68 | { | 92 | { |
69 | HRESULT hr = S_OK; | 93 | HRESULT hr = S_OK; |
@@ -137,6 +161,26 @@ namespace Bootstrapper | |||
137 | } | 161 | } |
138 | } | 162 | } |
139 | 163 | ||
164 | void VerifyFormattedValue(BURN_VARIANT* pExpectedValue, BURN_VARIANT* pActualValue) | ||
165 | { | ||
166 | HRESULT hr = S_OK; | ||
167 | LPWSTR sczValue = NULL; | ||
168 | NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_FORMATTED, pExpectedValue->Type); | ||
169 | NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_FORMATTED, pActualValue->Type); | ||
170 | |||
171 | try | ||
172 | { | ||
173 | hr = BVariantGetString(pActualValue, &sczValue); | ||
174 | NativeAssert::Succeeded(hr, "Failed to get string value"); | ||
175 | |||
176 | NativeAssert::StringEqual(pExpectedValue->sczValue, sczValue); | ||
177 | } | ||
178 | finally | ||
179 | { | ||
180 | ReleaseStr(sczValue); | ||
181 | } | ||
182 | } | ||
183 | |||
140 | void VerifyNumericValue(BURN_VARIANT* pExpectedValue, BURN_VARIANT* pActualValue) | 184 | void VerifyNumericValue(BURN_VARIANT* pExpectedValue, BURN_VARIANT* pActualValue) |
141 | { | 185 | { |
142 | HRESULT hr = S_OK; | 186 | HRESULT hr = S_OK; |
@@ -167,7 +211,7 @@ namespace Bootstrapper | |||
167 | try | 211 | try |
168 | { | 212 | { |
169 | hr = BVariantGetString(pActualValue, &sczValue); | 213 | hr = BVariantGetString(pActualValue, &sczValue); |
170 | NativeAssert::Succeeded(hr, "Failed to get numeric value"); | 214 | NativeAssert::Succeeded(hr, "Failed to get string value"); |
171 | 215 | ||
172 | NativeAssert::StringEqual(pExpectedValue->sczValue, sczValue); | 216 | NativeAssert::StringEqual(pExpectedValue->sczValue, sczValue); |
173 | } | 217 | } |
@@ -185,7 +229,7 @@ namespace Bootstrapper | |||
185 | NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_VERSION, pActualValue->Type); | 229 | NativeAssert::Equal<DWORD>(BURN_VARIANT_TYPE_VERSION, pActualValue->Type); |
186 | 230 | ||
187 | hr = BVariantGetVersion(pActualValue, &qwValue); | 231 | hr = BVariantGetVersion(pActualValue, &qwValue); |
188 | NativeAssert::Succeeded(hr, "Failed to get numeric value"); | 232 | NativeAssert::Succeeded(hr, "Failed to get version value"); |
189 | 233 | ||
190 | NativeAssert::Equal<DWORD64>(pExpectedValue->qwValue, qwValue); | 234 | NativeAssert::Equal<DWORD64>(pExpectedValue->qwValue, qwValue); |
191 | } | 235 | } |