2 declare(strict_types = 1);
23 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
33 $this->setUpBackendUserFromFixture(1);
46 $treeList = $queryGenerator->getTreeList($id, $depth);
48 static::assertSame($id, $treeList);
60 $treeList = $queryGenerator->getTreeList($id, $depth);
62 static::assertSame($id, $treeList);
74 $treeList = $queryGenerator->getTreeList($id, $depth);
76 static::assertSame(1, $treeList);
89 $treeList = $queryGenerator->getTreeList($id, $depth, $begin);
91 static::assertSame(
'', $treeList);
103 $treeList = $queryGenerator->getTreeList($id, $depth);
105 static::assertSame($id, $treeList);
113 $this->importCSVDataSet(__DIR__ .
'/Fixtures/DataSet/TestGetPageTreeStraightTreeSet.csv');
119 $treeList = $queryGenerator->getTreeList($id, $depth, 0,
'hidden = 0');
121 static::assertSame(
'1,2,3,4,5', $treeList);
133 $this->importCSVDataSet(__DIR__ .
'/Fixtures/DataSet/TestGetPageTreeStraightTreeSet.csv');
136 $treeList = $queryGenerator->getTreeList($id, $depth);
138 static::assertSame($expectation, $treeList);
180 $this->importCSVDataSet(__DIR__ .
'/Fixtures/DataSet/TestGetPageTreeStraightTreeSet.csv');
183 $treeList = $queryGenerator->getTreeList($id, $depth, -1);
185 static::assertSame($expectation, $treeList);
226 $this->importCSVDataSet(__DIR__ .
'/Fixtures/DataSet/TestGetPageTreeBranchedTreeSet.csv');
229 $treeList = $queryGenerator->getTreeList($id, $depth);
231 static::assertSame(
'1,2,3,4,5', $treeList);
243 $this->importCSVDataSet(__DIR__ .
'/Fixtures/DataSet/TestGetPageTreeBranchedTreeSet.csv');
246 $treeList = $queryGenerator->getTreeList($id, $depth, $begin);
248 static::assertSame(
'2,3,4,5', $treeList);
260 $this->importCSVDataSet(__DIR__ .
'/Fixtures/DataSet/TestGetPageTreeBranchedTreeSet.csv');
263 $treeList = $queryGenerator->getTreeList($id, $depth, $begin);
265 static::assertSame(
'3,5', $treeList);
276 'unix timestamp' => [
279 "pid = '1522863047'",
281 'pid 5134 as string' => [
286 'unix timestamp as string' => [
289 "pid = '1522863047'",
291 'ISO 8601 date string' => [
292 '2018-04-04T17:30:47Z',
294 "pid = '1522863047'",
296 'pid 5134 and second input value 5135' => [
299 'pid >= 5134 AND pid <= 5135',
302 'ISO 8601 date string as first and second input' => [
303 '2018-04-04T17:30:47Z',
304 '2018-04-04T17:30:48Z',
305 'pid >= 1522863047 AND pid <= 1522863048',
329 'type' =>
'FIELD_pid',
330 'comparison' => $comparison,
331 'inputValue' => $inputValue,
332 'inputValue1' => $inputValue1,
336 $queryGenerator->init(
'queryConfig',
'aTable');
337 $this->assertSame($expected, trim($queryGenerator->getQuery($inputConf),
"\n\r"));
345 'INJ%quoteCharacter%ECT',
348 'INJ %quoteCharacter%%commentStart% %commentEnd%%quoteCharacter% ECT'
351 foreach ($injectors as $injector) {
352 foreach ($comparisons as $comparison) {
356 'queryTable' =>
'tt_content',
357 'queryFields' =>
'uid,' . $injector,
358 'queryGroup' => $injector,
359 'queryOrder' => $injector,
360 'queryLimit' => $injector,
361 'queryConfig' => serialize([
363 'operator' => $injector,
364 'type' =>
'FIELD_category_field',
365 'comparison' => $comparison,
366 'inputValue' => $injector,
370 'operator' => $injector,
371 'type' =>
'FIELD_category_field',
372 'comparison' => $comparison,
373 'inputValue' => $injector,
394 $databasePlatform = GeneralUtility::makeInstance(ConnectionPool::class)
395 ->getConnectionForTable(
'tt_content')->getDatabasePlatform();
397 '%quoteCharacter%' => $databasePlatform->getStringLiteralQuoteCharacter(),
398 '%commentStart%' => $databasePlatform->getSqlCommentStartString(),
399 '%commentEnd%' => $databasePlatform->getSqlCommentEndString()
401 $injector = str_replace(array_keys($replacements), $replacements, $injector);
405 $queryGenerator->init(
'queryConfig', $settings[
'queryTable']);
406 $queryGenerator->makeSelectorTable($settings);
407 $queryGenerator->enablePrefix =
true;
409 $queryString = $queryGenerator->getQuery($queryGenerator->queryConfig);
410 $query = $queryGenerator->getSelectQuery($queryString);
412 self::assertStringNotContainsString($injector, $query);
417 foreach ($settings as $settingKey => &$settingValue) {
418 if (is_string($settingValue)) {
419 $settingValue = str_replace(array_keys($replacements), $replacements, $settingValue);
421 if (is_array($settingValue)) {