3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests
;
7 use PhpMyAdmin\Current
;
8 use PhpMyAdmin\Dbal\DatabaseInterface
;
9 use PhpMyAdmin\ParseAnalyze
;
10 use PhpMyAdmin\ResponseRenderer
;
11 use PHPUnit\Framework\Attributes\CoversClass
;
13 #[CoversClass(ParseAnalyze::class)]
14 class ParseAnalyzeTest
extends AbstractTestCase
16 protected function setUp(): void
20 DatabaseInterface
::$instance = $this->createDatabaseInterface();
23 public function testSqlQuery(): void
25 Current
::$lang = 'en';
26 ResponseRenderer
::getInstance()->setAjax(false);
28 $actual = ParseAnalyze
::sqlQuery('SELECT * FROM `sakila`.`actor`', 'sakila_test');
30 self
::assertSame('sakila', $actual[1]);
31 self
::assertSame('actor', $actual[2]);
32 self
::assertTrue($actual[0]->flags
->reload
);
33 self
::assertNotEmpty($actual[0]->selectTables
);
34 self
::assertSame([['actor', 'sakila']], $actual[0]->selectTables
);
35 self
::assertNotEmpty($actual[0]->selectExpressions
);
36 self
::assertSame(['*'], $actual[0]->selectExpressions
);
39 public function testSqlQuery2(): void
41 Current
::$lang = 'en';
42 ResponseRenderer
::getInstance()->setAjax(false);
44 $actual = ParseAnalyze
::sqlQuery('SELECT `first_name`, `title` FROM `actor`, `film`', 'sakila');
46 self
::assertSame('sakila', $actual[1]);
47 self
::assertSame('', $actual[2]);
48 self
::assertFalse($actual[0]->flags
->reload
);
49 self
::assertNotEmpty($actual[0]->selectTables
);
50 self
::assertSame([['actor', null], ['film', null]], $actual[0]->selectTables
);
51 self
::assertNotEmpty($actual[0]->selectExpressions
);
52 self
::assertSame(['`first_name`', '`title`'], $actual[0]->selectExpressions
);