createDatabaseInterface(); DatabaseInterface::$instance = $dbi; $config = Config::getInstance(); $this->object = new NavigationTree(new Template($config), $dbi, new Relation($dbi), $config); } /** * Very basic rendering test. */ public function testRenderState(): void { $result = $this->object->renderState(new ResponseRenderer(), new UserPrivileges()); self::assertStringContainsString('recentFavoriteTablesWrapper', $result); } /** * Very basic path rendering test. */ public function testRenderPath(): void { $result = $this->object->renderPath(new ResponseRenderer(), new UserPrivileges()); self::assertIsString($result); self::assertStringContainsString('list_container', $result); } /** * Very basic select rendering test. */ public function testRenderDbSelect(): void { $result = $this->object->renderDbSelect(new ResponseRenderer(), new UserPrivileges()); self::assertStringContainsString('pma_navigation_select_database', $result); } public function testDatabaseGrouping(): void { Current::$database = ''; $config = Config::getInstance(); $config->set('NavigationTreeDbSeparator', '__'); // phpcs:disable Generic.Files.LineLength.TooLong $dummyDbi = $this->createDbiDummy(); $dummyDbi->addResult( 'SELECT `SCHEMA_NAME` FROM `INFORMATION_SCHEMA`.`SCHEMATA`, (SELECT DB_first_level FROM ( SELECT DISTINCT SUBSTRING_INDEX(SCHEMA_NAME, \'__\', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA WHERE TRUE ) t ORDER BY DB_first_level ASC LIMIT 0, 100) t2 WHERE TRUE AND 1 = LOCATE(CONCAT(DB_first_level, \'__\'), CONCAT(SCHEMA_NAME, \'__\')) ORDER BY SCHEMA_NAME ASC', [['functions__a'], ['functions__b']], ['SCHEMA_NAME'], ); $dummyDbi->addResult( 'SELECT COUNT(*) FROM ( SELECT DISTINCT SUBSTRING_INDEX(SCHEMA_NAME, \'__\', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA WHERE TRUE ) t', [['2']], ); $dummyDbi->addResult( 'SELECT COUNT(*) FROM ( SELECT DISTINCT SUBSTRING_INDEX(SCHEMA_NAME, \'__\', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA WHERE TRUE ) t', [['2']], ); // phpcs:enable $dbi = $this->createDatabaseInterface($dummyDbi); DatabaseInterface::$instance = $dbi; $object = new NavigationTree(new Template($config), $dbi, new Relation($dbi), $config); $result = $object->renderState(new ResponseRenderer(), new UserPrivileges()); self::assertStringContainsString('