aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-11-01 14:16:32 -0600
committerSean Hall <r.sean.hall@gmail.com>2020-11-01 18:35:01 -0600
commitb5553689ed1b1bd32f854654f56935c039a9b13b (patch)
tree6afcbd397eebab56c8235b30ee10d4d07d89de2b /src/test
parent79d7d3aa1de224d90d5e3a1174b3158ffe49b6f3 (diff)
downloadwix-b5553689ed1b1bd32f854654f56935c039a9b13b.tar.gz
wix-b5553689ed1b1bd32f854654f56935c039a9b13b.tar.bz2
wix-b5553689ed1b1bd32f854654f56935c039a9b13b.zip
WIXFEAT:6258 - Format variables when evaluating condition.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/BurnUnitTest/VariableHelpers.cpp4
-rw-r--r--src/test/BurnUnitTest/VariableHelpers.h2
-rw-r--r--src/test/BurnUnitTest/VariableTest.cpp33
3 files changed, 27 insertions, 12 deletions
diff --git a/src/test/BurnUnitTest/VariableHelpers.cpp b/src/test/BurnUnitTest/VariableHelpers.cpp
index 99ba492a..40f958f8 100644
--- a/src/test/BurnUnitTest/VariableHelpers.cpp
+++ b/src/test/BurnUnitTest/VariableHelpers.cpp
@@ -98,13 +98,13 @@ namespace Bootstrapper
98 } 98 }
99 } 99 }
100 100
101 String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable) 101 String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, BOOL* pfContainsHiddenVariable)
102 { 102 {
103 HRESULT hr = S_OK; 103 HRESULT hr = S_OK;
104 LPWSTR scz = NULL; 104 LPWSTR scz = NULL;
105 try 105 try
106 { 106 {
107 hr = VariableGetFormatted(pVariables, wzVariable, &scz); 107 hr = VariableGetFormatted(pVariables, wzVariable, &scz, pfContainsHiddenVariable);
108 TestThrowOnFailure1(hr, L"Failed to get formatted: %s", wzVariable); 108 TestThrowOnFailure1(hr, L"Failed to get formatted: %s", wzVariable);
109 109
110 return gcnew String(scz); 110 return gcnew String(scz);
diff --git a/src/test/BurnUnitTest/VariableHelpers.h b/src/test/BurnUnitTest/VariableHelpers.h
index 96122219..d460c60f 100644
--- a/src/test/BurnUnitTest/VariableHelpers.h
+++ b/src/test/BurnUnitTest/VariableHelpers.h
@@ -20,7 +20,7 @@ void VariableSetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, LP
20System::String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); 20System::String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable);
21__int64 VariableGetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); 21__int64 VariableGetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable);
22System::String^ VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); 22System::String^ VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable);
23System::String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); 23System::String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, BOOL* pfContainsHiddenVariable);
24System::String^ VariableFormatStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzIn); 24System::String^ VariableFormatStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzIn);
25System::String^ VariableEscapeStringHelper(LPCWSTR wzIn); 25System::String^ VariableEscapeStringHelper(LPCWSTR wzIn);
26bool EvaluateConditionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzCondition); 26bool EvaluateConditionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzCondition);
diff --git a/src/test/BurnUnitTest/VariableTest.cpp b/src/test/BurnUnitTest/VariableTest.cpp
index f5511199..676c134e 100644
--- a/src/test/BurnUnitTest/VariableTest.cpp
+++ b/src/test/BurnUnitTest/VariableTest.cpp
@@ -80,6 +80,7 @@ namespace Bootstrapper
80 HRESULT hr = S_OK; 80 HRESULT hr = S_OK;
81 IXMLDOMElement* pixeBundle = NULL; 81 IXMLDOMElement* pixeBundle = NULL;
82 BURN_VARIABLES variables = { }; 82 BURN_VARIABLES variables = { };
83 BOOL fContainsHiddenData = FALSE;
83 try 84 try
84 { 85 {
85 LPCWSTR wzDocument = 86 LPCWSTR wzDocument =
@@ -90,6 +91,7 @@ namespace Bootstrapper
90 L" <Variable Id='Var4' Hidden='no' Persisted='no' />" 91 L" <Variable Id='Var4' Hidden='no' Persisted='no' />"
91 L" <Variable Id='Var5' Type='string' Value='' Hidden='no' Persisted='no' />" 92 L" <Variable Id='Var5' Type='string' Value='' Hidden='no' Persisted='no' />"
92 L" <Variable Id='Var6' Type='formatted' Value='[Formatted]' Hidden='no' Persisted='no' />" 93 L" <Variable Id='Var6' Type='formatted' Value='[Formatted]' Hidden='no' Persisted='no' />"
94 L" <Variable Id='Formatted' Type='formatted' Value='supersecret' Hidden='yes' Persisted='no' />"
93 L"</Bundle>"; 95 L"</Bundle>";
94 96
95 hr = VariableInitialize(&variables); 97 hr = VariableInitialize(&variables);
@@ -99,7 +101,7 @@ namespace Bootstrapper
99 LoadBundleXmlHelper(wzDocument, &pixeBundle); 101 LoadBundleXmlHelper(wzDocument, &pixeBundle);
100 102
101 hr = VariablesParseFromXml(&variables, pixeBundle); 103 hr = VariablesParseFromXml(&variables, pixeBundle);
102 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 104 TestThrowOnFailure(hr, L"Failed to parse variables from XML.");
103 105
104 // get and verify variable values 106 // get and verify variable values
105 Assert::Equal((int)BURN_VARIANT_TYPE_NUMERIC, VariableGetTypeHelper(&variables, L"Var1")); 107 Assert::Equal((int)BURN_VARIANT_TYPE_NUMERIC, VariableGetTypeHelper(&variables, L"Var1"));
@@ -112,6 +114,12 @@ namespace Bootstrapper
112 Assert::Equal<String^>(gcnew String(L"String value."), VariableGetStringHelper(&variables, L"Var2")); 114 Assert::Equal<String^>(gcnew String(L"String value."), VariableGetStringHelper(&variables, L"Var2"));
113 Assert::Equal<String^>(gcnew String(L"1.2.3.4"), VariableGetVersionHelper(&variables, L"Var3")); 115 Assert::Equal<String^>(gcnew String(L"1.2.3.4"), VariableGetVersionHelper(&variables, L"Var3"));
114 Assert::Equal<String^>(gcnew String(L"[Formatted]"), VariableGetStringHelper(&variables, L"Var6")); 116 Assert::Equal<String^>(gcnew String(L"[Formatted]"), VariableGetStringHelper(&variables, L"Var6"));
117 Assert::Equal<String^>(gcnew String(L"supersecret"), VariableGetFormattedHelper(&variables, L"Formatted", &fContainsHiddenData));
118 Assert::Equal<BOOL>(TRUE, fContainsHiddenData);
119 Assert::Equal<String^>(gcnew String(L"supersecret"), VariableGetFormattedHelper(&variables, L"Var6", &fContainsHiddenData));
120 Assert::Equal<BOOL>(TRUE, fContainsHiddenData);
121 Assert::Equal<String^>(gcnew String(L"String value."), VariableGetFormattedHelper(&variables, L"Var2", &fContainsHiddenData));
122 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
115 } 123 }
116 finally 124 finally
117 { 125 {
@@ -127,6 +135,7 @@ namespace Bootstrapper
127 BURN_VARIABLES variables = { }; 135 BURN_VARIABLES variables = { };
128 LPWSTR scz = NULL; 136 LPWSTR scz = NULL;
129 DWORD cch = 0; 137 DWORD cch = 0;
138 BOOL fContainsHiddenData = FALSE;
130 try 139 try
131 { 140 {
132 hr = VariableInitialize(&variables); 141 hr = VariableInitialize(&variables);
@@ -155,12 +164,18 @@ namespace Bootstrapper
155 Assert::Equal<String^>(gcnew String(L"]"), VariableFormatStringHelper(&variables, L"[\\]]")); 164 Assert::Equal<String^>(gcnew String(L"]"), VariableFormatStringHelper(&variables, L"[\\]]"));
156 Assert::Equal<String^>(gcnew String(L"[]"), VariableFormatStringHelper(&variables, L"[]")); 165 Assert::Equal<String^>(gcnew String(L"[]"), VariableFormatStringHelper(&variables, L"[]"));
157 Assert::Equal<String^>(gcnew String(L"[NONE"), VariableFormatStringHelper(&variables, L"[NONE")); 166 Assert::Equal<String^>(gcnew String(L"[NONE"), VariableFormatStringHelper(&variables, L"[NONE"));
158 Assert::Equal<String^>(gcnew String(L"VAL2"), VariableGetFormattedHelper(&variables, L"PROP2")); 167 Assert::Equal<String^>(gcnew String(L"VAL2"), VariableGetFormattedHelper(&variables, L"PROP2", &fContainsHiddenData));
159 Assert::Equal<String^>(gcnew String(L"3"), VariableGetFormattedHelper(&variables, L"PROP3")); 168 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
160 Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetFormattedHelper(&variables, L"PROP4")); 169 Assert::Equal<String^>(gcnew String(L"3"), VariableGetFormattedHelper(&variables, L"PROP3", &fContainsHiddenData));
161 Assert::Equal<String^>(gcnew String(L"[PROP2]"), VariableGetFormattedHelper(&variables, L"PROP5")); 170 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
162 Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetFormattedHelper(&variables, L"PROP6")); 171 Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetFormattedHelper(&variables, L"PROP4", &fContainsHiddenData));
163 Assert::Equal<String^>(gcnew String(L"[PROP2]"), VariableGetFormattedHelper(&variables, L"PROP7")); 172 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
173 Assert::Equal<String^>(gcnew String(L"[PROP2]"), VariableGetFormattedHelper(&variables, L"PROP5", &fContainsHiddenData));
174 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
175 Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetFormattedHelper(&variables, L"PROP6", &fContainsHiddenData));
176 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
177 Assert::Equal<String^>(gcnew String(L"[PROP2]"), VariableGetFormattedHelper(&variables, L"PROP7", &fContainsHiddenData));
178 Assert::Equal<BOOL>(FALSE, fContainsHiddenData);
164 179
165 hr = VariableFormatString(&variables, L"PRE [PROP1] POST", &scz, &cch); 180 hr = VariableFormatString(&variables, L"PRE [PROP1] POST", &scz, &cch);
166 TestThrowOnFailure(hr, L"Failed to format string"); 181 TestThrowOnFailure(hr, L"Failed to format string");
@@ -235,8 +250,8 @@ namespace Bootstrapper
235 Assert::True(EvaluateConditionHelper(&variables, L"_PROP9")); 250 Assert::True(EvaluateConditionHelper(&variables, L"_PROP9"));
236 Assert::True(EvaluateConditionHelper(&variables, L"PROP16")); 251 Assert::True(EvaluateConditionHelper(&variables, L"PROP16"));
237 Assert::True(EvaluateConditionHelper(&variables, L"PROP17")); 252 Assert::True(EvaluateConditionHelper(&variables, L"PROP17"));
238 Assert::True(EvaluateConditionHelper(&variables, L"PROP24")); 253 Assert::True(EvaluateConditionHelper(&variables, L"PROP24=\"VAL1\""));
239 Assert::True(EvaluateConditionHelper(&variables, L"PROP25")); 254 Assert::False(EvaluateConditionHelper(&variables, L"PROP25"));
240 Assert::True(EvaluateConditionHelper(&variables, L"PROP26")); 255 Assert::True(EvaluateConditionHelper(&variables, L"PROP26"));
241 Assert::True(EvaluateConditionHelper(&variables, L"PROP27")); 256 Assert::True(EvaluateConditionHelper(&variables, L"PROP27"));
242 257