selectedServer['DisableIS'] = true; UrlParams::$goto = ''; $dbiDummy = $this->createDbiDummy(); $dbi = $this->createDatabaseInterface($dbiDummy); DatabaseInterface::$instance = $dbi; $dbiDummy->addSelectDb('test_db'); $dbiDummy->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', [['1']]); $request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/') ->withQueryParams(['db' => 'test_db', 'table' => 'test_table']); $response = new ResponseRenderer(); $template = new Template(); $controller = new ZoomSearchController( $response, $template, new Search($dbi), new Relation($dbi), $dbi, new DbTableExists($dbi), $config, ); $controller($request); $expected = $template->render('table/zoom_search/index', [ 'db' => Current::$database, 'table' => Current::$table, 'goto' => 'index.php?route=/sql&server=2&lang=en', 'self' => $controller, 'geom_column_flag' => false, 'column_names' => ['id', 'name', 'datetimefield'], 'data_label' => 'name', 'keys' => [], 'criteria_column_names' => null, 'criteria_column_types' => null, 'max_plot_limit' => 500, ]); self::assertSame($expected, $response->getHTMLResult()); } public function testChangeTableInfoAction(): void { Current::$database = 'test_db'; Current::$table = 'test_table'; $config = Config::getInstance(); $config->selectedServer['DisableIS'] = true; $_POST['field'] = 'datetimefield'; $dbiDummy = $this->createDbiDummy(); $dbi = $this->createDatabaseInterface($dbiDummy); DatabaseInterface::$instance = $dbi; $dbiDummy->addSelectDb('test_db'); $dbiDummy->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', [['1']]); $request = ServerRequestFactory::create()->createServerRequest('POST', 'http://example.com/') ->withQueryParams(['db' => 'test_db', 'table' => 'test_table']) ->withParsedBody(['change_tbl_info' => '1']); $response = new ResponseRenderer(); $template = new Template(); $controller = new ZoomSearchController( $response, $template, new Search($dbi), new Relation($dbi), $dbi, new DbTableExists($dbi), $config, ); $controller($request); // phpcs:disable Generic.Files.LineLength.TooLong $operators = <<<'HTML' HTML; // phpcs:enable $value = <<<'HTML' HTML; $expected = [ 'field_type' => 'datetime', 'field_collation' => '', 'field_operators' => $operators, 'field_value' => $value, ]; self::assertSame($expected, $response->getJSONResult()); } }