diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-08-01 17:07:25 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-08-02 09:15:14 -0500 |
| commit | aacd6b677332f2e262d0df67603c246cd65d833e (patch) | |
| tree | 05d4e5a127fc2b5feec6f74144bd195f337a8281 /src/burn/test/BurnUnitTest/VariableTest.cpp | |
| parent | 457ef57f96c1706a63e8f848be3e07a58e7de6a3 (diff) | |
| download | wix-aacd6b677332f2e262d0df67603c246cd65d833e.tar.gz wix-aacd6b677332f2e262d0df67603c246cd65d833e.tar.bz2 wix-aacd6b677332f2e262d0df67603c246cd65d833e.zip | |
Store list of persisted well-known variables in Burn.
This allows it to reject Variables declared in the manifest that start with the reserved prefix 'Wix'.
Diffstat (limited to '')
| -rw-r--r-- | src/burn/test/BurnUnitTest/VariableTest.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/burn/test/BurnUnitTest/VariableTest.cpp b/src/burn/test/BurnUnitTest/VariableTest.cpp index 1d5fc6f3..f864307c 100644 --- a/src/burn/test/BurnUnitTest/VariableTest.cpp +++ b/src/burn/test/BurnUnitTest/VariableTest.cpp | |||
| @@ -132,6 +132,37 @@ namespace Bootstrapper | |||
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | [Fact] | 134 | [Fact] |
| 135 | void VariablesParseXmlFailureTest() | ||
| 136 | { | ||
| 137 | HRESULT hr = S_OK; | ||
| 138 | IXMLDOMElement* pixeBundle = NULL; | ||
| 139 | BURN_VARIABLES variables = { }; | ||
| 140 | |||
| 141 | try | ||
| 142 | { | ||
| 143 | LPCWSTR wzDocument = | ||
| 144 | L"<Bundle>" | ||
| 145 | L" <Variable Id='WixCustomVariable' Type='numeric' Value='1' Hidden='no' Persisted='no' />" | ||
| 146 | L" <CommandLine Variables='upperCase' />" | ||
| 147 | L"</Bundle>"; | ||
| 148 | |||
| 149 | hr = VariableInitialize(&variables); | ||
| 150 | TestThrowOnFailure(hr, L"Failed to initialize variables."); | ||
| 151 | |||
| 152 | // load XML document | ||
| 153 | LoadBundleXmlHelper(wzDocument, &pixeBundle); | ||
| 154 | |||
| 155 | hr = VariablesParseFromXml(&variables, pixeBundle); | ||
| 156 | NativeAssert::SpecificReturnCode(E_INVALIDARG, hr, "Should have failed due to 'WixCustomVariable' starting with Wix."); | ||
| 157 | } | ||
| 158 | finally | ||
| 159 | { | ||
| 160 | ReleaseObject(pixeBundle); | ||
| 161 | VariablesUninitialize(&variables); | ||
| 162 | } | ||
| 163 | } | ||
| 164 | |||
| 165 | [Fact] | ||
| 135 | void VariablesFormatTest() | 166 | void VariablesFormatTest() |
| 136 | { | 167 | { |
| 137 | HRESULT hr = S_OK; | 168 | HRESULT hr = S_OK; |
| @@ -417,6 +448,8 @@ namespace Bootstrapper | |||
| 417 | VariableSetVersionHelper(&variables1, L"PROP3", L"1.1.1.1"); | 448 | VariableSetVersionHelper(&variables1, L"PROP3", L"1.1.1.1"); |
| 418 | VariableSetStringHelper(&variables1, L"PROP4", L"VAL4", FALSE); | 449 | VariableSetStringHelper(&variables1, L"PROP4", L"VAL4", FALSE); |
| 419 | VariableSetStringHelper(&variables1, L"PROP5", L"[PROP1]", TRUE); | 450 | VariableSetStringHelper(&variables1, L"PROP5", L"[PROP1]", TRUE); |
| 451 | VariableSetStringHelper(&variables1, L"WixBundleName", L"DifferentName", FALSE); | ||
| 452 | VariableSetStringHelper(&variables1, L"WixBundleLog_PackageA", L"C:\\path\\[to]\\log", FALSE); | ||
| 420 | 453 | ||
| 421 | hr = VariableSerialize(&variables1, FALSE, &pbBuffer, &cbBuffer); | 454 | hr = VariableSerialize(&variables1, FALSE, &pbBuffer, &cbBuffer); |
| 422 | TestThrowOnFailure(hr, L"Failed to serialize variables."); | 455 | TestThrowOnFailure(hr, L"Failed to serialize variables."); |
| @@ -433,12 +466,16 @@ namespace Bootstrapper | |||
| 433 | Assert::Equal<String^>(gcnew String(L"1.1.1.1"), VariableGetVersionHelper(&variables2, L"PROP3")); | 466 | Assert::Equal<String^>(gcnew String(L"1.1.1.1"), VariableGetVersionHelper(&variables2, L"PROP3")); |
| 434 | Assert::Equal<String^>(gcnew String(L"VAL4"), VariableGetStringHelper(&variables2, L"PROP4")); | 467 | Assert::Equal<String^>(gcnew String(L"VAL4"), VariableGetStringHelper(&variables2, L"PROP4")); |
| 435 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetStringHelper(&variables2, L"PROP5")); | 468 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetStringHelper(&variables2, L"PROP5")); |
| 469 | Assert::Equal<String^>(gcnew String(L"DifferentName"), VariableGetStringHelper(&variables2, L"WixBundleName")); | ||
| 470 | Assert::Equal<String^>(gcnew String(L"C:\\path\\[to]\\log"), VariableGetStringHelper(&variables2, L"WixBundleLog_PackageA")); | ||
| 436 | 471 | ||
| 437 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"PROP1")); | 472 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"PROP1")); |
| 438 | Assert::Equal((int)BURN_VARIANT_TYPE_NUMERIC, VariableGetTypeHelper(&variables2, L"PROP2")); | 473 | Assert::Equal((int)BURN_VARIANT_TYPE_NUMERIC, VariableGetTypeHelper(&variables2, L"PROP2")); |
| 439 | Assert::Equal((int)BURN_VARIANT_TYPE_VERSION, VariableGetTypeHelper(&variables2, L"PROP3")); | 474 | Assert::Equal((int)BURN_VARIANT_TYPE_VERSION, VariableGetTypeHelper(&variables2, L"PROP3")); |
| 440 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"PROP4")); | 475 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"PROP4")); |
| 441 | Assert::Equal((int)BURN_VARIANT_TYPE_FORMATTED, VariableGetTypeHelper(&variables2, L"PROP5")); | 476 | Assert::Equal((int)BURN_VARIANT_TYPE_FORMATTED, VariableGetTypeHelper(&variables2, L"PROP5")); |
| 477 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"WixBundleName")); | ||
| 478 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"WixBundleLog_PackageA")); | ||
| 442 | } | 479 | } |
| 443 | finally | 480 | finally |
| 444 | { | 481 | { |
