aboutsummaryrefslogtreecommitdiff
path: root/src/burn/test/BurnUnitTest/VariableTest.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-08-01 17:07:25 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-08-02 09:15:14 -0500
commitaacd6b677332f2e262d0df67603c246cd65d833e (patch)
tree05d4e5a127fc2b5feec6f74144bd195f337a8281 /src/burn/test/BurnUnitTest/VariableTest.cpp
parent457ef57f96c1706a63e8f848be3e07a58e7de6a3 (diff)
downloadwix-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.cpp37
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 {