databases = [ 'sakila', 'employees', ]; $template = new Template(); $transformations = new Transformations(); $relationCleanup = new RelationCleanup( $GLOBALS['dbi'], new Relation($GLOBALS['dbi'], $template) ); $response = new ResponseRenderer(); $controller = new DatabasesController( $response, $template, $transformations, $relationCleanup, $GLOBALS['dbi'] ); $this->dummyDbi->addSelectDb('mysql'); $controller->index(); $this->assertAllSelectsConsumed(); $actual = $response->getHTMLResult(); $this->assertStringContainsString('data-filter-row="SAKILA"', $actual); $this->assertStringContainsString('sakila', $actual); $this->assertStringContainsString('utf8_general_ci', $actual); $this->assertStringContainsString('title="Unicode, case-insensitive"', $actual); $this->assertStringContainsString('data-filter-row="SAKILA"', $actual); $this->assertStringContainsString('employees', $actual); $this->assertStringContainsString('latin1_swedish_ci', $actual); $this->assertStringContainsString('title="Swedish, case-insensitive"', $actual); $this->assertStringContainsString('2', $actual); $this->assertStringContainsString('name="pos" value="0"', $actual); $this->assertStringContainsString('name="sort_by" value="SCHEMA_NAME"', $actual); $this->assertStringContainsString('name="sort_order" value="asc"', $actual); $this->assertStringContainsString(__('Enable statistics'), $actual); $this->assertStringContainsString(__('No privileges to create databases'), $actual); $this->assertStringNotContainsString(__('Indexes'), $actual); $response = new ResponseRenderer(); $controller = new DatabasesController( $response, $template, $transformations, $relationCleanup, $GLOBALS['dbi'] ); $cfg['ShowCreateDb'] = true; $is_create_db_priv = true; $_REQUEST['statistics'] = '1'; $_REQUEST['sort_by'] = 'SCHEMA_TABLES'; $_REQUEST['sort_order'] = 'desc'; $this->dummyDbi->addSelectDb('mysql'); $controller->index(); $this->assertAllSelectsConsumed(); $actual = $response->getHTMLResult(); $this->assertStringNotContainsString(__('Enable statistics'), $actual); $this->assertStringContainsString(__('Indexes'), $actual); $this->assertStringContainsString('name="sort_by" value="SCHEMA_TABLES"', $actual); $this->assertStringContainsString('name="sort_order" value="desc"', $actual); $this->assertStringContainsString('name="statistics" value="1"', $actual); $this->assertStringContainsString('title="3912174"', $actual); $this->assertStringContainsString('3,912,174', $actual); $this->assertStringContainsString('title="4358144"', $actual); $this->assertStringContainsString('4.2', $actual); $this->assertStringContainsString('MiB', $actual); $this->assertStringContainsString('name="db_collation"', $actual); } public function testCreateDatabaseAction(): void { $response = new ResponseRenderer(); $response->setAjax(true); $template = new Template(); $transformations = new Transformations(); $controller = new DatabasesController( $response, $template, $transformations, new RelationCleanup($this->dbi, new Relation($this->dbi, $template)), $this->dbi ); $_POST['new_db'] = 'test_db_error'; $controller->create(); $actual = $response->getJSONResult(); $this->assertArrayHasKey('message', $actual); $this->assertStringContainsString('