diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-07-31 17:06:35 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-08-09 10:33:49 -0600 |
| commit | d21eed76c48960707561c45c492c10a6a23c052e (patch) | |
| tree | ebab09d099a699a24801fcfb4d7152cf82cc4a06 /src/test/BurnUnitTest/VariantTest.cpp | |
| parent | ad80d6dc10f9bd6cb6a084857a8fb546cc55e756 (diff) | |
| download | wix-d21eed76c48960707561c45c492c10a6a23c052e.tar.gz wix-d21eed76c48960707561c45c492c10a6a23c052e.tar.bz2 wix-d21eed76c48960707561c45c492c10a6a23c052e.zip | |
WIXFEAT:4763 Change "string" variable type to literal and add "formatted".
Diffstat (limited to 'src/test/BurnUnitTest/VariantTest.cpp')
| -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 | } |
