SettingsFormTest.php in Nagios Monitoring 8
File
tests/src/Functional/SettingsFormTest.php
View source
<?php
namespace Drupal\Tests\nagios\Functional;
use Drupal\Tests\BrowserTestBase;
class SettingsFormTest extends BrowserTestBase {
protected static $modules = [
'nagios',
];
protected $defaultTheme = 'stark';
private $settingsUser;
private $modulesUser;
private const SETTINGS_PATH = 'admin/config/system/nagios';
private const IGNORED_MODULES_PATH = 'admin/config/system/nagios/ignored_modules';
protected function setUp() : void {
parent::setUp();
$this->settingsUser = $this
->drupalCreateUser([
'administer site configuration',
]);
$this->modulesUser = $this
->drupalCreateUser([
'administer nagios ignore',
]);
}
public function testSettingsPageExists() {
$this
->drupalLogin($this->settingsUser);
$this
->drupalGet(self::SETTINGS_PATH);
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains('Unique ID');
}
public function testIgnoredModulesPageExists() {
$this
->drupalLogin($this->modulesUser);
$this
->drupalGet(self::IGNORED_MODULES_PATH);
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->pageTextContains('Select those modules that should be ignored for requirement checks.');
}
public function testSettingsPagePermissions() {
$this
->drupalLogin($this->settingsUser);
$this
->drupalGet(self::SETTINGS_PATH);
$this
->assertSession()
->statusCodeEquals(200);
$this
->drupalLogin($this->modulesUser);
$this
->drupalGet(self::SETTINGS_PATH);
$this
->assertSession()
->statusCodeEquals(403);
}
public function testIgnoredModulesPagePermissions() {
$this
->drupalLogin($this->settingsUser);
$this
->drupalGet(self::IGNORED_MODULES_PATH);
$this
->assertSession()
->statusCodeEquals(403);
$this
->drupalLogin($this->modulesUser);
$this
->drupalGet(self::IGNORED_MODULES_PATH);
$this
->assertSession()
->statusCodeEquals(200);
}
}