dummyDbi = $this->createDbiDummy(); $this->dbi = $this->createDatabaseInterface($this->dummyDbi); DatabaseInterface::$instance = $this->dbi; Current::$database = 'pma_test'; Current::$table = ''; Config::getInstance()->selectedServer['DisableIS'] = false; } public function testIndexAction(): void { $config = Config::getInstance(); $config->selectedServer['only_db'] = ''; $template = new Template(); $response = new ResponseRenderer(); $controller = new DatabasesController($response, $template, $this->dbi); $this->dummyDbi->addResult( 'SELECT `SCHEMA_NAME` FROM `INFORMATION_SCHEMA`.`SCHEMATA`', [['sakila'], ['employees']], ['SCHEMA_NAME'], ); $this->dummyDbi->addSelectDb('mysql'); $controller($this->createStub(ServerRequest::class)); $this->dummyDbi->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, DatabaseInterface::getInstance()); $config->settings['ShowCreateDb'] = true; UserPrivileges::$isCreateDatabase = true; $_REQUEST['statistics'] = '1'; $_REQUEST['sort_by'] = 'SCHEMA_TABLES'; $_REQUEST['sort_order'] = 'desc'; $this->dummyDbi->addSelectDb('mysql'); $controller($this->createStub(ServerRequest::class)); $this->dummyDbi->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); } }