3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests\Selenium
;
7 use PHPUnit\Framework\Attributes\CoversNothing
;
8 use PHPUnit\Framework\Attributes\Large
;
14 class ServerSettingsTest
extends TestBase
17 * Create a test database for this test class
19 protected static bool $createDatabase = false;
24 protected function setUp(): void
30 $this->waitForElement('partialLinkText', 'Settings')->click();
35 * Saves config and asserts correct message.
37 private function saveConfig(): void
40 $ele = $this->waitForElement(
42 "//div[contains(@class, 'tab-pane') and contains(@class, 'show')"
43 . " and contains(@class, 'active')]//input[@value='Apply']",
45 $this->scrollToBottom();
49 $success = $this->waitUntilElementIsPresent('cssSelector', '.alert-success', 5000);
50 self
::assertStringContainsString('Configuration has been saved', $success->getText());
54 * Tests whether hiding a database works or not
56 public function testHideDatabase(): void
58 $this->createDatabase();
59 $this->byPartialLinkText('Features')->click();
62 $this->waitForElement('xpath', "//a[contains(@href, '#Databases')]")->click();
64 $ele = $this->waitForElement('name', 'Servers-1-hide_db');
67 $ele->sendKeys($this->databaseName
);
71 $this->isElementPresent('partialLinkText', $this->databaseName
),
74 $this->waitForElement('xpath', "//a[contains(@href, '#Databases')]")->click();
76 $this->waitForElement('name', 'Servers-1-hide_db')->clear();
79 $this->isElementPresent('partialLinkText', $this->databaseName
),
84 * Tests whether the various settings tabs are displayed when clicked
86 public function testSettingsTabsAreDisplayed(): void
88 $this->byPartialLinkText('SQL queries')->click();
91 $this->waitForElement('className', 'nav-tabs');
93 $this->byPartialLinkText('SQL Query box')->click();
95 $this->byId('Sql_box')->isDisplayed(),
98 $this->byId('Sql_queries')->isDisplayed(),
101 $this->byCssSelector("a[href='#Sql_queries']")->click();
103 $this->byId('Sql_box')->isDisplayed(),
106 $this->byId('Sql_queries')->isDisplayed(),
111 * Tests if hiding the logo works or not
113 public function testHideLogo(): void
115 $this->byPartialLinkText('Navigation panel')->click();
118 $this->waitForElement('name', 'NavigationDisplayLogo')
123 $this->isElementPresent('id', 'imgpmalogo'),
126 $this->byCssSelector("a[href='#NavigationDisplayLogo']")->click();
130 $this->isElementPresent('id', 'imgpmalogo'),