aboutsummaryrefslogtreecommitdiff
path: root/src/test/BurnUnitTest/VariantTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/BurnUnitTest/VariantTest.cpp56
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 }