diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-07-31 17:06:35 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-08-09 10:33:49 -0600 |
| commit | d21eed76c48960707561c45c492c10a6a23c052e (patch) | |
| tree | ebab09d099a699a24801fcfb4d7152cf82cc4a06 /src/test/BurnUnitTest/VariableTest.cpp | |
| parent | ad80d6dc10f9bd6cb6a084857a8fb546cc55e756 (diff) | |
| download | wix-d21eed76c48960707561c45c492c10a6a23c052e.tar.gz wix-d21eed76c48960707561c45c492c10a6a23c052e.tar.bz2 wix-d21eed76c48960707561c45c492c10a6a23c052e.zip | |
WIXFEAT:4763 Change "string" variable type to literal and add "formatted".
Diffstat (limited to 'src/test/BurnUnitTest/VariableTest.cpp')
| -rw-r--r-- | src/test/BurnUnitTest/VariableTest.cpp | 69 |
1 files changed, 49 insertions, 20 deletions
diff --git a/src/test/BurnUnitTest/VariableTest.cpp b/src/test/BurnUnitTest/VariableTest.cpp index 7d670744..0b49a530 100644 --- a/src/test/BurnUnitTest/VariableTest.cpp +++ b/src/test/BurnUnitTest/VariableTest.cpp | |||
| @@ -35,21 +35,22 @@ namespace Bootstrapper | |||
| 35 | TestThrowOnFailure(hr, L"Failed to initialize variables."); | 35 | TestThrowOnFailure(hr, L"Failed to initialize variables."); |
| 36 | 36 | ||
| 37 | // set variables | 37 | // set variables |
| 38 | VariableSetStringHelper(&variables, L"PROP1", L"VAL1"); | 38 | VariableSetStringHelper(&variables, L"PROP1", L"VAL1", FALSE); |
| 39 | VariableSetNumericHelper(&variables, L"PROP2", 2); | 39 | VariableSetNumericHelper(&variables, L"PROP2", 2); |
| 40 | VariableSetStringHelper(&variables, L"PROP5", L"VAL5"); | 40 | VariableSetStringHelper(&variables, L"PROP5", L"VAL5", FALSE); |
| 41 | VariableSetStringHelper(&variables, L"PROP3", L"VAL3"); | 41 | VariableSetStringHelper(&variables, L"PROP3", L"VAL3", FALSE); |
| 42 | VariableSetStringHelper(&variables, L"PROP4", L"VAL4"); | 42 | VariableSetStringHelper(&variables, L"PROP4", L"VAL4", FALSE); |
| 43 | VariableSetStringHelper(&variables, L"PROP6", L"VAL6"); | 43 | VariableSetStringHelper(&variables, L"PROP6", L"VAL6", FALSE); |
| 44 | VariableSetStringHelper(&variables, L"PROP7", L"7"); | 44 | VariableSetStringHelper(&variables, L"PROP7", L"7", FALSE); |
| 45 | VariableSetVersionHelper(&variables, L"PROP8", MAKEQWORDVERSION(1,1,0,0)); | 45 | VariableSetVersionHelper(&variables, L"PROP8", MAKEQWORDVERSION(1,1,0,0)); |
| 46 | VariableSetStringHelper(&variables, L"PROP9", L"[VAL9]", TRUE); | ||
| 46 | 47 | ||
| 47 | // set overwritten variables | 48 | // set overwritten variables |
| 48 | VariableSetStringHelper(&variables, L"OVERWRITTEN_STRING", L"ORIGINAL"); | 49 | VariableSetStringHelper(&variables, L"OVERWRITTEN_STRING", L"ORIGINAL", FALSE); |
| 49 | VariableSetNumericHelper(&variables, L"OVERWRITTEN_STRING", 42); | 50 | VariableSetNumericHelper(&variables, L"OVERWRITTEN_STRING", 42); |
| 50 | 51 | ||
| 51 | VariableSetNumericHelper(&variables, L"OVERWRITTEN_NUMBER", 5); | 52 | VariableSetNumericHelper(&variables, L"OVERWRITTEN_NUMBER", 5); |
| 52 | VariableSetStringHelper(&variables, L"OVERWRITTEN_NUMBER", L"NEW"); | 53 | VariableSetStringHelper(&variables, L"OVERWRITTEN_NUMBER", L"NEW", FALSE); |
| 53 | 54 | ||
| 54 | // get and verify variable values | 55 | // get and verify variable values |
| 55 | Assert::Equal<String^>(gcnew String(L"VAL1"), VariableGetStringHelper(&variables, L"PROP1")); | 56 | Assert::Equal<String^>(gcnew String(L"VAL1"), VariableGetStringHelper(&variables, L"PROP1")); |
| @@ -62,6 +63,7 @@ namespace Bootstrapper | |||
| 62 | Assert::Equal(7ll, VariableGetNumericHelper(&variables, L"PROP7")); | 63 | Assert::Equal(7ll, VariableGetNumericHelper(&variables, L"PROP7")); |
| 63 | Assert::Equal(MAKEQWORDVERSION(1,1,0,0), VariableGetVersionHelper(&variables, L"PROP8")); | 64 | Assert::Equal(MAKEQWORDVERSION(1,1,0,0), VariableGetVersionHelper(&variables, L"PROP8")); |
| 64 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetStringHelper(&variables, L"PROP8")); | 65 | Assert::Equal<String^>(gcnew String(L"1.1.0.0"), VariableGetStringHelper(&variables, L"PROP8")); |
| 66 | Assert::Equal<String^>(gcnew String(L"[VAL9]"), VariableGetStringHelper(&variables, L"PROP9")); | ||
| 65 | 67 | ||
| 66 | Assert::Equal(42ll, VariableGetNumericHelper(&variables, L"OVERWRITTEN_STRING")); | 68 | Assert::Equal(42ll, VariableGetNumericHelper(&variables, L"OVERWRITTEN_STRING")); |
| 67 | Assert::Equal<String^>(gcnew String(L"NEW"), VariableGetStringHelper(&variables, L"OVERWRITTEN_NUMBER")); | 69 | Assert::Equal<String^>(gcnew String(L"NEW"), VariableGetStringHelper(&variables, L"OVERWRITTEN_NUMBER")); |
| @@ -87,6 +89,7 @@ namespace Bootstrapper | |||
| 87 | L" <Variable Id='Var3' Type='version' Value='1.2.3.4' Hidden='no' Persisted='no' />" | 89 | L" <Variable Id='Var3' Type='version' Value='1.2.3.4' Hidden='no' Persisted='no' />" |
| 88 | L" <Variable Id='Var4' Hidden='no' Persisted='no' />" | 90 | L" <Variable Id='Var4' Hidden='no' Persisted='no' />" |
| 89 | L" <Variable Id='Var5' Type='string' Value='' Hidden='no' Persisted='no' />" | 91 | L" <Variable Id='Var5' Type='string' Value='' Hidden='no' Persisted='no' />" |
| 92 | L" <Variable Id='Var6' Type='formatted' Value='[Formatted]' Hidden='no' Persisted='no' />" | ||
| 90 | L"</Bundle>"; | 93 | L"</Bundle>"; |
| 91 | 94 | ||
| 92 | hr = VariableInitialize(&variables); | 95 | hr = VariableInitialize(&variables); |
| @@ -103,10 +106,12 @@ namespace Bootstrapper | |||
| 103 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables, L"Var2")); | 106 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables, L"Var2")); |
| 104 | Assert::Equal((int)BURN_VARIANT_TYPE_VERSION, VariableGetTypeHelper(&variables, L"Var3")); | 107 | Assert::Equal((int)BURN_VARIANT_TYPE_VERSION, VariableGetTypeHelper(&variables, L"Var3")); |
| 105 | Assert::Equal((int)BURN_VARIANT_TYPE_NONE, VariableGetTypeHelper(&variables, L"Var4")); | 108 | Assert::Equal((int)BURN_VARIANT_TYPE_NONE, VariableGetTypeHelper(&variables, L"Var4")); |
| 109 | Assert::Equal((int)BURN_VARIANT_TYPE_FORMATTED, VariableGetTypeHelper(&variables, L"Var6")); | ||
| 106 | 110 | ||
| 107 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Var1")); | 111 | Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Var1")); |
| 108 | Assert::Equal<String^>(gcnew String(L"String value."), VariableGetStringHelper(&variables, L"Var2")); | 112 | Assert::Equal<String^>(gcnew String(L"String value."), VariableGetStringHelper(&variables, L"Var2")); |
| 109 | Assert::Equal(MAKEQWORDVERSION(1,2,3,4), VariableGetVersionHelper(&variables, L"Var3")); | 113 | Assert::Equal(MAKEQWORDVERSION(1,2,3,4), VariableGetVersionHelper(&variables, L"Var3")); |
| 114 | Assert::Equal<String^>(gcnew String(L"[Formatted]"), VariableGetStringHelper(&variables, L"Var6")); | ||
| 110 | } | 115 | } |
| 111 | finally | 116 | finally |
| 112 | { | 117 | { |
| @@ -128,9 +133,13 @@ namespace Bootstrapper | |||
| 128 | TestThrowOnFailure(hr, L"Failed to initialize variables."); | 133 | TestThrowOnFailure(hr, L"Failed to initialize variables."); |
| 129 | 134 | ||
| 130 | // set variables | 135 | // set variables |
| 131 | VariableSetStringHelper(&variables, L"PROP1", L"VAL1"); | 136 | VariableSetStringHelper(&variables, L"PROP1", L"VAL1", FALSE); |
| 132 | VariableSetStringHelper(&variables, L"PROP2", L"VAL2"); | 137 | VariableSetStringHelper(&variables, L"PROP2", L"VAL2", FALSE); |
| 133 | VariableSetNumericHelper(&variables, L"PROP3", 3); | 138 | VariableSetNumericHelper(&variables, L"PROP3", 3); |
| 139 | VariableSetStringHelper(&variables, L"PROP4", L"[PROP1]", FALSE); | ||
| 140 | VariableSetStringHelper(&variables, L"PROP5", L"[PROP2]", FALSE); | ||
| 141 | VariableSetStringHelper(&variables, L"PROP6", L"[PROP4]", TRUE); | ||
| 142 | VariableSetStringHelper(&variables, L"PROP7", L"[PROP5]", TRUE); | ||
| 134 | 143 | ||
| 135 | // test string formatting | 144 | // test string formatting |
| 136 | Assert::Equal<String^>(gcnew String(L"NOPROP"), VariableFormatStringHelper(&variables, L"NOPROP")); | 145 | Assert::Equal<String^>(gcnew String(L"NOPROP"), VariableFormatStringHelper(&variables, L"NOPROP")); |
| @@ -148,6 +157,10 @@ namespace Bootstrapper | |||
| 148 | Assert::Equal<String^>(gcnew String(L"[NONE"), VariableFormatStringHelper(&variables, L"[NONE")); | 157 | Assert::Equal<String^>(gcnew String(L"[NONE"), VariableFormatStringHelper(&variables, L"[NONE")); |
| 149 | Assert::Equal<String^>(gcnew String(L"VAL2"), VariableGetFormattedHelper(&variables, L"PROP2")); | 158 | Assert::Equal<String^>(gcnew String(L"VAL2"), VariableGetFormattedHelper(&variables, L"PROP2")); |
| 150 | Assert::Equal<String^>(gcnew String(L"3"), VariableGetFormattedHelper(&variables, L"PROP3")); | 159 | Assert::Equal<String^>(gcnew String(L"3"), VariableGetFormattedHelper(&variables, L"PROP3")); |
| 160 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetFormattedHelper(&variables, L"PROP4")); | ||
| 161 | Assert::Equal<String^>(gcnew String(L"[PROP2]"), VariableGetFormattedHelper(&variables, L"PROP5")); | ||
| 162 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetFormattedHelper(&variables, L"PROP6")); | ||
| 163 | Assert::Equal<String^>(gcnew String(L"[PROP2]"), VariableGetFormattedHelper(&variables, L"PROP7")); | ||
| 151 | 164 | ||
| 152 | hr = VariableFormatString(&variables, L"PRE [PROP1] POST", &scz, &cch); | 165 | hr = VariableFormatString(&variables, L"PRE [PROP1] POST", &scz, &cch); |
| 153 | TestThrowOnFailure(hr, L"Failed to format string"); | 166 | TestThrowOnFailure(hr, L"Failed to format string"); |
| @@ -186,15 +199,15 @@ namespace Bootstrapper | |||
| 186 | TestThrowOnFailure(hr, L"Failed to initialize variables."); | 199 | TestThrowOnFailure(hr, L"Failed to initialize variables."); |
| 187 | 200 | ||
| 188 | // set variables | 201 | // set variables |
| 189 | VariableSetStringHelper(&variables, L"PROP1", L"VAL1"); | 202 | VariableSetStringHelper(&variables, L"PROP1", L"VAL1", FALSE); |
| 190 | VariableSetStringHelper(&variables, L"PROP2", L"VAL2"); | 203 | VariableSetStringHelper(&variables, L"PROP2", L"VAL2", FALSE); |
| 191 | VariableSetStringHelper(&variables, L"PROP3", L"VAL3"); | 204 | VariableSetStringHelper(&variables, L"PROP3", L"VAL3", FALSE); |
| 192 | VariableSetStringHelper(&variables, L"PROP4", L"BEGIN MID END"); | 205 | VariableSetStringHelper(&variables, L"PROP4", L"BEGIN MID END", FALSE); |
| 193 | VariableSetNumericHelper(&variables, L"PROP5", 5); | 206 | VariableSetNumericHelper(&variables, L"PROP5", 5); |
| 194 | VariableSetNumericHelper(&variables, L"PROP6", 6); | 207 | VariableSetNumericHelper(&variables, L"PROP6", 6); |
| 195 | VariableSetStringHelper(&variables, L"PROP7", L""); | 208 | VariableSetStringHelper(&variables, L"PROP7", L"", FALSE); |
| 196 | VariableSetNumericHelper(&variables, L"PROP8", 0); | 209 | VariableSetNumericHelper(&variables, L"PROP8", 0); |
| 197 | VariableSetStringHelper(&variables, L"_PROP9", L"VAL9"); | 210 | VariableSetStringHelper(&variables, L"_PROP9", L"VAL9", FALSE); |
| 198 | VariableSetNumericHelper(&variables, L"PROP10", -10); | 211 | VariableSetNumericHelper(&variables, L"PROP10", -10); |
| 199 | VariableSetNumericHelper(&variables, L"PROP11", 9223372036854775807ll); | 212 | VariableSetNumericHelper(&variables, L"PROP11", 9223372036854775807ll); |
| 200 | VariableSetNumericHelper(&variables, L"PROP12", -9223372036854775808ll); | 213 | VariableSetNumericHelper(&variables, L"PROP12", -9223372036854775808ll); |
| @@ -208,7 +221,11 @@ namespace Bootstrapper | |||
| 208 | VariableSetVersionHelper(&variables, L"PROP20", MAKEQWORDVERSION(1,1,1,1)); | 221 | VariableSetVersionHelper(&variables, L"PROP20", MAKEQWORDVERSION(1,1,1,1)); |
| 209 | VariableSetNumericHelper(&variables, L"vPROP21", 1); | 222 | VariableSetNumericHelper(&variables, L"vPROP21", 1); |
| 210 | VariableSetVersionHelper(&variables, L"PROP22", MAKEQWORDVERSION(65535,65535,65535,65535)); | 223 | VariableSetVersionHelper(&variables, L"PROP22", MAKEQWORDVERSION(65535,65535,65535,65535)); |
| 211 | VariableSetStringHelper(&variables, L"PROP23", L"1.1.1"); | 224 | VariableSetStringHelper(&variables, L"PROP23", L"1.1.1", FALSE); |
| 225 | VariableSetStringHelper(&variables, L"PROP24", L"[PROP1]", TRUE); | ||
| 226 | VariableSetStringHelper(&variables, L"PROP25", L"[PROP7]", TRUE); | ||
| 227 | VariableSetStringHelper(&variables, L"PROP26", L"[PROP8]", TRUE); | ||
| 228 | VariableSetStringHelper(&variables, L"PROP27", L"[PROP16]", TRUE); | ||
| 212 | 229 | ||
| 213 | // test conditions | 230 | // test conditions |
| 214 | Assert::True(EvaluateConditionHelper(&variables, L"PROP1")); | 231 | Assert::True(EvaluateConditionHelper(&variables, L"PROP1")); |
| @@ -218,6 +235,10 @@ namespace Bootstrapper | |||
| 218 | Assert::True(EvaluateConditionHelper(&variables, L"_PROP9")); | 235 | Assert::True(EvaluateConditionHelper(&variables, L"_PROP9")); |
| 219 | Assert::False(EvaluateConditionHelper(&variables, L"PROP16")); | 236 | Assert::False(EvaluateConditionHelper(&variables, L"PROP16")); |
| 220 | Assert::True(EvaluateConditionHelper(&variables, L"PROP17")); | 237 | Assert::True(EvaluateConditionHelper(&variables, L"PROP17")); |
| 238 | Assert::True(EvaluateConditionHelper(&variables, L"PROP24")); | ||
| 239 | Assert::True(EvaluateConditionHelper(&variables, L"PROP25")); | ||
| 240 | Assert::True(EvaluateConditionHelper(&variables, L"PROP26")); | ||
| 241 | Assert::True(EvaluateConditionHelper(&variables, L"PROP27")); | ||
| 221 | 242 | ||
| 222 | Assert::True(EvaluateConditionHelper(&variables, L"PROP1 = \"VAL1\"")); | 243 | Assert::True(EvaluateConditionHelper(&variables, L"PROP1 = \"VAL1\"")); |
| 223 | Assert::False(EvaluateConditionHelper(&variables, L"NONE = \"NOT\"")); | 244 | Assert::False(EvaluateConditionHelper(&variables, L"NONE = \"NOT\"")); |
| @@ -365,10 +386,11 @@ namespace Bootstrapper | |||
| 365 | hr = VariableInitialize(&variables1); | 386 | hr = VariableInitialize(&variables1); |
| 366 | TestThrowOnFailure(hr, L"Failed to initialize variables."); | 387 | TestThrowOnFailure(hr, L"Failed to initialize variables."); |
| 367 | 388 | ||
| 368 | VariableSetStringHelper(&variables1, L"PROP1", L"VAL1"); | 389 | VariableSetStringHelper(&variables1, L"PROP1", L"VAL1", FALSE); |
| 369 | VariableSetNumericHelper(&variables1, L"PROP2", 2); | 390 | VariableSetNumericHelper(&variables1, L"PROP2", 2); |
| 370 | VariableSetVersionHelper(&variables1, L"PROP3", MAKEQWORDVERSION(1,1,1,1)); | 391 | VariableSetVersionHelper(&variables1, L"PROP3", MAKEQWORDVERSION(1,1,1,1)); |
| 371 | VariableSetStringHelper(&variables1, L"PROP4", L"VAL4"); | 392 | VariableSetStringHelper(&variables1, L"PROP4", L"VAL4", FALSE); |
| 393 | VariableSetStringHelper(&variables1, L"PROP5", L"[PROP1]", TRUE); | ||
| 372 | 394 | ||
| 373 | hr = VariableSerialize(&variables1, FALSE, &pbBuffer, &cbBuffer); | 395 | hr = VariableSerialize(&variables1, FALSE, &pbBuffer, &cbBuffer); |
| 374 | TestThrowOnFailure(hr, L"Failed to serialize variables."); | 396 | TestThrowOnFailure(hr, L"Failed to serialize variables."); |
| @@ -384,6 +406,13 @@ namespace Bootstrapper | |||
| 384 | Assert::Equal(2ll, VariableGetNumericHelper(&variables2, L"PROP2")); | 406 | Assert::Equal(2ll, VariableGetNumericHelper(&variables2, L"PROP2")); |
| 385 | Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables2, L"PROP3")); | 407 | Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables2, L"PROP3")); |
| 386 | Assert::Equal<String^>(gcnew String(L"VAL4"), VariableGetStringHelper(&variables2, L"PROP4")); | 408 | Assert::Equal<String^>(gcnew String(L"VAL4"), VariableGetStringHelper(&variables2, L"PROP4")); |
| 409 | Assert::Equal<String^>(gcnew String(L"[PROP1]"), VariableGetStringHelper(&variables2, L"PROP5")); | ||
| 410 | |||
| 411 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"PROP1")); | ||
| 412 | Assert::Equal((int)BURN_VARIANT_TYPE_NUMERIC, VariableGetTypeHelper(&variables2, L"PROP2")); | ||
| 413 | Assert::Equal((int)BURN_VARIANT_TYPE_VERSION, VariableGetTypeHelper(&variables2, L"PROP3")); | ||
| 414 | Assert::Equal((int)BURN_VARIANT_TYPE_STRING, VariableGetTypeHelper(&variables2, L"PROP4")); | ||
| 415 | Assert::Equal((int)BURN_VARIANT_TYPE_FORMATTED, VariableGetTypeHelper(&variables2, L"PROP5")); | ||
| 387 | } | 416 | } |
| 388 | finally | 417 | finally |
| 389 | { | 418 | { |
| @@ -420,7 +449,7 @@ namespace Bootstrapper | |||
| 420 | } | 449 | } |
| 421 | 450 | ||
| 422 | // attempt to set a built-in property | 451 | // attempt to set a built-in property |
| 423 | hr = VariableSetString(&variables, L"VersionNT", L"VAL", FALSE); | 452 | hr = VariableSetString(&variables, L"VersionNT", L"VAL", FALSE, FALSE); |
| 424 | Assert::Equal(E_INVALIDARG, hr); | 453 | Assert::Equal(E_INVALIDARG, hr); |
| 425 | Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\"")); | 454 | Assert::False(EvaluateConditionHelper(&variables, L"VersionNT = \"VAL\"")); |
| 426 | 455 | ||
