diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2020-11-01 14:16:32 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2020-11-01 18:35:01 -0600 |
commit | b5553689ed1b1bd32f854654f56935c039a9b13b (patch) | |
tree | 6afcbd397eebab56c8235b30ee10d4d07d89de2b /src/test | |
parent | 79d7d3aa1de224d90d5e3a1174b3158ffe49b6f3 (diff) | |
download | wix-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.cpp | 4 | ||||
-rw-r--r-- | src/test/BurnUnitTest/VariableHelpers.h | 2 | ||||
-rw-r--r-- | src/test/BurnUnitTest/VariableTest.cpp | 33 |
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 | |||
20 | System::String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 20 | System::String^ VariableGetStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
21 | __int64 VariableGetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 21 | __int64 VariableGetNumericHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
22 | System::String^ VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 22 | System::String^ VariableGetVersionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); |
23 | System::String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable); | 23 | System::String^ VariableGetFormattedHelper(BURN_VARIABLES* pVariables, LPCWSTR wzVariable, BOOL* pfContainsHiddenVariable); |
24 | System::String^ VariableFormatStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzIn); | 24 | System::String^ VariableFormatStringHelper(BURN_VARIABLES* pVariables, LPCWSTR wzIn); |
25 | System::String^ VariableEscapeStringHelper(LPCWSTR wzIn); | 25 | System::String^ VariableEscapeStringHelper(LPCWSTR wzIn); |
26 | bool EvaluateConditionHelper(BURN_VARIABLES* pVariables, LPCWSTR wzCondition); | 26 | bool 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 | ||