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 'src/burn/test/BurnUnitTest/VariableTest.cpp')
-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 | { |