aboutsummaryrefslogtreecommitdiff
path: root/src/test/BurnUnitTest/SearchTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/BurnUnitTest/SearchTest.cpp')
-rw-r--r--src/test/BurnUnitTest/SearchTest.cpp86
1 files changed, 49 insertions, 37 deletions
diff --git a/src/test/BurnUnitTest/SearchTest.cpp b/src/test/BurnUnitTest/SearchTest.cpp
index d03db84c..48ab60aa 100644
--- a/src/test/BurnUnitTest/SearchTest.cpp
+++ b/src/test/BurnUnitTest/SearchTest.cpp
@@ -46,13 +46,18 @@ namespace Bootstrapper
46 public ref class SearchTest : BurnUnitTest 46 public ref class SearchTest : BurnUnitTest
47 { 47 {
48 public: 48 public:
49 [NamedFact] 49 SearchTest(BurnTestFixture^ fixture) : BurnUnitTest(fixture)
50 {
51 }
52
53 [Fact]
50 void DirectorySearchTest() 54 void DirectorySearchTest()
51 { 55 {
52 HRESULT hr = S_OK; 56 HRESULT hr = S_OK;
53 IXMLDOMElement* pixeBundle = NULL; 57 IXMLDOMElement* pixeBundle = NULL;
54 BURN_VARIABLES variables = { }; 58 BURN_VARIABLES variables = { };
55 BURN_SEARCHES searches = { }; 59 BURN_SEARCHES searches = { };
60 BURN_EXTENSIONS burnExtensions = { };
56 try 61 try
57 { 62 {
58 hr = VariableInitialize(&variables); 63 hr = VariableInitialize(&variables);
@@ -73,7 +78,7 @@ namespace Bootstrapper
73 // load XML document 78 // load XML document
74 LoadBundleXmlHelper(wzDocument, &pixeBundle); 79 LoadBundleXmlHelper(wzDocument, &pixeBundle);
75 80
76 hr = SearchesParseFromXml(&searches, pixeBundle); 81 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
77 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 82 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
78 83
79 // execute searches 84 // execute searches
@@ -92,13 +97,14 @@ namespace Bootstrapper
92 } 97 }
93 } 98 }
94 99
95 [NamedFact] 100 [Fact(Skip = "Currently fails")]
96 void FileSearchTest() 101 void FileSearchTest()
97 { 102 {
98 HRESULT hr = S_OK; 103 HRESULT hr = S_OK;
99 IXMLDOMElement* pixeBundle = NULL; 104 IXMLDOMElement* pixeBundle = NULL;
100 BURN_VARIABLES variables = { }; 105 BURN_VARIABLES variables = { };
101 BURN_SEARCHES searches = { }; 106 BURN_SEARCHES searches = { };
107 BURN_EXTENSIONS burnExtensions = { };
102 ULARGE_INTEGER uliVersion = { }; 108 ULARGE_INTEGER uliVersion = { };
103 try 109 try
104 { 110 {
@@ -124,7 +130,7 @@ namespace Bootstrapper
124 // load XML document 130 // load XML document
125 LoadBundleXmlHelper(wzDocument, &pixeBundle); 131 LoadBundleXmlHelper(wzDocument, &pixeBundle);
126 132
127 hr = SearchesParseFromXml(&searches, pixeBundle); 133 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
128 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 134 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
129 135
130 // execute searches 136 // execute searches
@@ -144,13 +150,14 @@ namespace Bootstrapper
144 } 150 }
145 } 151 }
146 152
147 [NamedFact] 153 [Fact]
148 void RegistrySearchTest() 154 void RegistrySearchTest()
149 { 155 {
150 HRESULT hr = S_OK; 156 HRESULT hr = S_OK;
151 IXMLDOMElement* pixeBundle = NULL; 157 IXMLDOMElement* pixeBundle = NULL;
152 BURN_VARIABLES variables = { }; 158 BURN_VARIABLES variables = { };
153 BURN_SEARCHES searches = { }; 159 BURN_SEARCHES searches = { };
160 BURN_EXTENSIONS burnExtensions = { };
154 HKEY hkey32 = NULL; 161 HKEY hkey32 = NULL;
155 HKEY hkey64 = NULL; 162 HKEY hkey64 = NULL;
156 BOOL f64bitMachine = (nullptr != Environment::GetEnvironmentVariable("ProgramFiles(x86)")); 163 BOOL f64bitMachine = (nullptr != Environment::GetEnvironmentVariable("ProgramFiles(x86)"));
@@ -219,7 +226,7 @@ namespace Bootstrapper
219 // load XML document 226 // load XML document
220 LoadBundleXmlHelper(wzDocument, &pixeBundle); 227 LoadBundleXmlHelper(wzDocument, &pixeBundle);
221 228
222 hr = SearchesParseFromXml(&searches, pixeBundle); 229 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
223 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 230 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
224 231
225 // execute searches 232 // execute searches
@@ -231,31 +238,31 @@ namespace Bootstrapper
231 Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable2")); 238 Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable2"));
232 Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable3")); 239 Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable3"));
233 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable4")); 240 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable4"));
234 Assert::Equal(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable5")); 241 Assert::Equal<String^>(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable5"));
235 Assert::Equal(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable6")); 242 Assert::Equal<String^>(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable6"));
236 Assert::Equal(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable7")); 243 Assert::Equal<String^>(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable7"));
237 Assert::Equal(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable8")); 244 Assert::Equal<String^>(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable8"));
238 Assert::Equal(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable9")); 245 Assert::Equal<String^>(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable9"));
239 Assert::NotEqual(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable10")); 246 Assert::NotEqual(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable10"));
240 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable11")); 247 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable11"));
241 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable12")); 248 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable12"));
242 Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables, L"Variable13")); 249 Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables, L"Variable13"));
243 Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables, L"Variable14")); 250 Assert::Equal(MAKEQWORDVERSION(1,1,1,1), VariableGetVersionHelper(&variables, L"Variable14"));
244 Assert::Equal(gcnew String(L"String1"), VariableGetStringHelper(&variables, L"Variable15")); 251 Assert::Equal<String^>(gcnew String(L"String1"), VariableGetStringHelper(&variables, L"Variable15"));
245 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable16")); 252 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable16"));
246 Assert::False(VariableExistsHelper(&variables, L"Variable17")); 253 Assert::False(VariableExistsHelper(&variables, L"Variable17"));
247 Assert::False(VariableExistsHelper(&variables, L"Variable18")); 254 Assert::False(VariableExistsHelper(&variables, L"Variable18"));
248 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable19")); 255 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable19"));
249 Assert::Equal(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable20")); 256 Assert::Equal<String^>(gcnew String(L"String1 %TEMP%"), VariableGetStringHelper(&variables, L"Variable20"));
250 if (f64bitMachine) 257 if (f64bitMachine)
251 { 258 {
252 Assert::Equal(gcnew String(L"32-bit"), VariableGetStringHelper(&variables, L"Variable21")); 259 Assert::Equal<String^>(gcnew String(L"32-bit"), VariableGetStringHelper(&variables, L"Variable21"));
253 Assert::Equal(gcnew String(L"64-bit"), VariableGetStringHelper(&variables, L"Variable22")); 260 Assert::Equal<String^>(gcnew String(L"64-bit"), VariableGetStringHelper(&variables, L"Variable22"));
254 } 261 }
255 262
256 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable23")); 263 Assert::Equal(1ll, VariableGetNumericHelper(&variables, L"Variable23"));
257 Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable24")); 264 Assert::Equal(0ll, VariableGetNumericHelper(&variables, L"Variable24"));
258 Assert::Equal(gcnew String(L"Msi.Package"), VariableGetStringHelper(&variables, L"Variable25")); 265 Assert::Equal<String^>(gcnew String(L"Msi.Package"), VariableGetStringHelper(&variables, L"Variable25"));
259 } 266 }
260 finally 267 finally
261 { 268 {
@@ -276,13 +283,14 @@ namespace Bootstrapper
276 } 283 }
277 } 284 }
278 285
279 [NamedFact] 286 [Fact]
280 void MsiComponentSearchTest() 287 void MsiComponentSearchTest()
281 { 288 {
282 HRESULT hr = S_OK; 289 HRESULT hr = S_OK;
283 IXMLDOMElement* pixeBundle = NULL; 290 IXMLDOMElement* pixeBundle = NULL;
284 BURN_VARIABLES variables = { }; 291 BURN_VARIABLES variables = { };
285 BURN_SEARCHES searches = { }; 292 BURN_SEARCHES searches = { };
293 BURN_EXTENSIONS burnExtensions = { };
286 try 294 try
287 { 295 {
288 hr = VariableInitialize(&variables); 296 hr = VariableInitialize(&variables);
@@ -317,7 +325,7 @@ namespace Bootstrapper
317 // load XML document 325 // load XML document
318 LoadBundleXmlHelper(wzDocument, &pixeBundle); 326 LoadBundleXmlHelper(wzDocument, &pixeBundle);
319 327
320 hr = SearchesParseFromXml(&searches, pixeBundle); 328 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
321 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 329 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
322 330
323 // execute searches 331 // execute searches
@@ -328,22 +336,22 @@ namespace Bootstrapper
328 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable1")); 336 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable1"));
329 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable2")); 337 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable2"));
330 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable3")); 338 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable3"));
331 Assert::Equal(gcnew String(L"C:\\directory\\file1.txt"), VariableGetStringHelper(&variables, L"Variable4")); 339 Assert::Equal<String^>(gcnew String(L"C:\\directory\\file1.txt"), VariableGetStringHelper(&variables, L"Variable4"));
332 Assert::Equal(gcnew String(L"C:\\directory\\file2.txt"), VariableGetStringHelper(&variables, L"Variable5")); 340 Assert::Equal<String^>(gcnew String(L"C:\\directory\\file2.txt"), VariableGetStringHelper(&variables, L"Variable5"));
333 Assert::Equal(gcnew String(L"C:\\directory\\file3.txt"), VariableGetStringHelper(&variables, L"Variable6")); 341 Assert::Equal<String^>(gcnew String(L"C:\\directory\\file3.txt"), VariableGetStringHelper(&variables, L"Variable6"));
334 Assert::Equal(gcnew String(L"C:\\directory\\file4.txt"), VariableGetStringHelper(&variables, L"Variable7")); 342 Assert::Equal<String^>(gcnew String(L"C:\\directory\\file4.txt"), VariableGetStringHelper(&variables, L"Variable7"));
335 Assert::Equal(gcnew String(L"02:\\SOFTWARE\\Microsoft\\WiX_Burn_UnitTest\\"), VariableGetStringHelper(&variables, L"Variable8")); 343 Assert::Equal<String^>(gcnew String(L"02:\\SOFTWARE\\Microsoft\\WiX_Burn_UnitTest\\"), VariableGetStringHelper(&variables, L"Variable8"));
336 Assert::Equal(gcnew String(L"02:\\SOFTWARE\\Microsoft\\WiX_Burn_UnitTest\\Value"), VariableGetStringHelper(&variables, L"Variable9")); 344 Assert::Equal<String^>(gcnew String(L"02:\\SOFTWARE\\Microsoft\\WiX_Burn_UnitTest\\Value"), VariableGetStringHelper(&variables, L"Variable9"));
337 Assert::Equal(3ll, VariableGetNumericHelper(&variables, L"Variable10")); 345 Assert::Equal(3ll, VariableGetNumericHelper(&variables, L"Variable10"));
338 Assert::Equal(3ll, VariableGetNumericHelper(&variables, L"Variable11")); 346 Assert::Equal(3ll, VariableGetNumericHelper(&variables, L"Variable11"));
339 Assert::Equal(4ll, VariableGetNumericHelper(&variables, L"Variable12")); 347 Assert::Equal(4ll, VariableGetNumericHelper(&variables, L"Variable12"));
340 Assert::Equal(4ll, VariableGetNumericHelper(&variables, L"Variable13")); 348 Assert::Equal(4ll, VariableGetNumericHelper(&variables, L"Variable13"));
341 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable14")); 349 Assert::Equal(2ll, VariableGetNumericHelper(&variables, L"Variable14"));
342 Assert::Equal(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable15")); 350 Assert::Equal<String^>(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable15"));
343 Assert::Equal(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable16")); 351 Assert::Equal<String^>(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable16"));
344 Assert::Equal(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable17")); 352 Assert::Equal<String^>(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable17"));
345 Assert::Equal(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable18")); 353 Assert::Equal<String^>(gcnew String(L"C:\\directory\\"), VariableGetStringHelper(&variables, L"Variable18"));
346 Assert::Equal(gcnew String(L"C:\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\file5.txt"), VariableGetStringHelper(&variables, L"Variable19")); 354 Assert::Equal<String^>(gcnew String(L"C:\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\directory\\file5.txt"), VariableGetStringHelper(&variables, L"Variable19"));
347 } 355 }
348 finally 356 finally
349 { 357 {
@@ -353,13 +361,14 @@ namespace Bootstrapper
353 } 361 }
354 } 362 }
355 363
356 [NamedFact] 364 [Fact]
357 void MsiProductSearchTest() 365 void MsiProductSearchTest()
358 { 366 {
359 HRESULT hr = S_OK; 367 HRESULT hr = S_OK;
360 IXMLDOMElement* pixeBundle = NULL; 368 IXMLDOMElement* pixeBundle = NULL;
361 BURN_VARIABLES variables = { }; 369 BURN_VARIABLES variables = { };
362 BURN_SEARCHES searches = { }; 370 BURN_SEARCHES searches = { };
371 BURN_EXTENSIONS burnExtensions = { };
363 try 372 try
364 { 373 {
365 hr = VariableInitialize(&variables); 374 hr = VariableInitialize(&variables);
@@ -381,7 +390,7 @@ namespace Bootstrapper
381 // load XML document 390 // load XML document
382 LoadBundleXmlHelper(wzDocument, &pixeBundle); 391 LoadBundleXmlHelper(wzDocument, &pixeBundle);
383 392
384 hr = SearchesParseFromXml(&searches, pixeBundle); 393 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
385 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 394 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
386 395
387 // execute searches 396 // execute searches
@@ -404,13 +413,14 @@ namespace Bootstrapper
404 } 413 }
405 } 414 }
406 415
407 [NamedFact] 416 [Fact]
408 void MsiFeatureSearchTest() 417 void MsiFeatureSearchTest()
409 { 418 {
410 HRESULT hr = S_OK; 419 HRESULT hr = S_OK;
411 IXMLDOMElement* pixeBundle = NULL; 420 IXMLDOMElement* pixeBundle = NULL;
412 BURN_VARIABLES variables = { }; 421 BURN_VARIABLES variables = { };
413 BURN_SEARCHES searches = { }; 422 BURN_SEARCHES searches = { };
423 BURN_EXTENSIONS burnExtensions = { };
414 try 424 try
415 { 425 {
416 LPCWSTR wzDocument = 426 LPCWSTR wzDocument =
@@ -424,7 +434,7 @@ namespace Bootstrapper
424 // load XML document 434 // load XML document
425 LoadBundleXmlHelper(wzDocument, &pixeBundle); 435 LoadBundleXmlHelper(wzDocument, &pixeBundle);
426 436
427 hr = SearchesParseFromXml(&searches, pixeBundle); 437 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
428 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 438 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
429 439
430 // execute searches 440 // execute searches
@@ -439,13 +449,14 @@ namespace Bootstrapper
439 } 449 }
440 } 450 }
441 451
442 [NamedFact] 452 [Fact]
443 void ConditionalSearchTest() 453 void ConditionalSearchTest()
444 { 454 {
445 HRESULT hr = S_OK; 455 HRESULT hr = S_OK;
446 IXMLDOMElement* pixeBundle = NULL; 456 IXMLDOMElement* pixeBundle = NULL;
447 BURN_VARIABLES variables = { }; 457 BURN_VARIABLES variables = { };
448 BURN_SEARCHES searches = { }; 458 BURN_SEARCHES searches = { };
459 BURN_EXTENSIONS burnExtensions = { };
449 try 460 try
450 { 461 {
451 LPCWSTR wzDocument = 462 LPCWSTR wzDocument =
@@ -461,7 +472,7 @@ namespace Bootstrapper
461 // load XML document 472 // load XML document
462 LoadBundleXmlHelper(wzDocument, &pixeBundle); 473 LoadBundleXmlHelper(wzDocument, &pixeBundle);
463 474
464 hr = SearchesParseFromXml(&searches, pixeBundle); 475 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
465 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 476 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
466 477
467 // execute searches 478 // execute searches
@@ -480,13 +491,14 @@ namespace Bootstrapper
480 SearchesUninitialize(&searches); 491 SearchesUninitialize(&searches);
481 } 492 }
482 } 493 }
483 [NamedFact] 494 [Fact]
484 void NoSearchesTest() 495 void NoSearchesTest()
485 { 496 {
486 HRESULT hr = S_OK; 497 HRESULT hr = S_OK;
487 IXMLDOMElement* pixeBundle = NULL; 498 IXMLDOMElement* pixeBundle = NULL;
488 BURN_VARIABLES variables = { }; 499 BURN_VARIABLES variables = { };
489 BURN_SEARCHES searches = { }; 500 BURN_SEARCHES searches = { };
501 BURN_EXTENSIONS burnExtensions = { };
490 try 502 try
491 { 503 {
492 LPCWSTR wzDocument = 504 LPCWSTR wzDocument =
@@ -499,7 +511,7 @@ namespace Bootstrapper
499 // load XML document 511 // load XML document
500 LoadBundleXmlHelper(wzDocument, &pixeBundle); 512 LoadBundleXmlHelper(wzDocument, &pixeBundle);
501 513
502 hr = SearchesParseFromXml(&searches, pixeBundle); 514 hr = SearchesParseFromXml(&searches, &burnExtensions, pixeBundle);
503 TestThrowOnFailure(hr, L"Failed to parse searches from XML."); 515 TestThrowOnFailure(hr, L"Failed to parse searches from XML.");
504 516
505 // execute searches 517 // execute searches