Namespace
Drupal\Tests\easy_email\Functional
Fichier
-
tests/src/Functional/EasyBreabcrumbConfigureTest.php
View source
<?php
namespace Drupal\Tests\easy_email\Functional;
use Drupal\Core\Serialization\Yaml;
use Drupal\easy_breadcrumb\EasyBreadcrumbConstants;
use Drupal\Tests\BrowserTestBase;
class EasyBreabcrumbConfigureTest extends BrowserTestBase {
protected static $modules = [
'easy_breadcrumb',
];
protected $defaultTheme = 'stark';
public function testAdministration() {
$assert = $this->assertSession();
$config_after_install = $this->config('easy_breadcrumb.settings')
->get();
$this->drupalGet('admin/config/user-interface/easy-breadcrumb');
$assert->statusCodeEquals(403);
$this->drupalLogin($this->createUser([
'administer easy breadcrumb',
]));
$this->drupalGet('admin/config/user-interface/easy-breadcrumb');
$assert->statusCodeEquals(200);
$this->submitForm([], 'Save configuration');
$assert->statusCodeEquals(200);
$assert->pageTextContainsOnce('The configuration options have been saved.');
$this->assertSame($config_after_install, $this->config('easy_breadcrumb.settings')
->get());
}
public function test8006DefaultConfigurationUpdate() {
$this->doUpdateTest(__DIR__ . '/fixtures/pre8006_default_configuration.yml');
}
public function test8006AfterFormSaveConfigurationUpdate() {
$this->doUpdateTest(__DIR__ . '/fixtures/pre8006_after_form_save_configuration.yml');
}
protected function doUpdateTest($fixture) {
$assert = $this->assertSession();
\Drupal::moduleHandler()->loadInclude('easy_breadcrumb', 'install');
$pre8006_install_configuration = Yaml::decode(file_get_contents($fixture));
\Drupal::database()->update('config')
->fields([
'data' => serialize($pre8006_install_configuration),
])
->condition('name', 'easy_breadcrumb.settings')
->condition('collection', '')
->execute();
easy_breadcrumb_update_8006();
$this->refreshVariables();
$config_after_update = $this->config('easy_breadcrumb.settings')
->get();
$this->assertArrayNotHasKey('dependencies', $config_after_update);
$this->assertArrayNotHasKey('add_structured_data_jsonld', $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::ADD_STRUCTURED_DATA_JSON_LD, $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::CAPITALIZATOR_FORCED_WORDS, $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::INCLUDE_INVALID_PATHS, $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::EXCLUDED_PATHS, $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::REPLACED_TITLES, $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::CUSTOM_PATHS, $config_after_update);
$this->assertArrayHasKey(EasyBreadcrumbConstants::TITLE_SEGMENT_AS_LINK, $config_after_update);
$this->assertSame(array_keys($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_IGNORED_WORDS]), array_keys(array_values($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_IGNORED_WORDS])));
$this->assertSame(array_keys($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_FORCED_WORDS]), array_keys(array_values($config_after_update[EasyBreadcrumbConstants::CAPITALIZATOR_FORCED_WORDS])));
$this->drupalLogin($this->createUser([
'administer easy breadcrumb',
]));
$this->drupalGet('admin/config/user-interface/easy-breadcrumb');
$assert->statusCodeEquals(200);
$this->submitForm([], 'Save configuration');
$assert->statusCodeEquals(200);
$assert->pageTextContainsOnce('The configuration options have been saved.');
$this->assertSame($config_after_update, $this->config('easy_breadcrumb.settings')
->get());
}
}
Classes