View source
<?php
namespace Drupal\Tests\config_rewrite\Kernel;
use Drupal\KernelTests\KernelTestBase;
class ConfigRewriteTest extends KernelTestBase {
public static $modules = [
'system',
'user',
'config_rewrite',
'config_rewrite_test',
'config_rewrite_test_rewrite',
'language',
];
protected $activeConfigStorage;
protected $configRewriter;
protected $languageConfigFactoryOverride;
protected function setUp() {
parent::setUp();
$this->configRewriter = $this->container
->get('config_rewrite.config_rewriter');
$this->activeConfigStorage = $this->container
->get('config.storage');
$this->languageConfigFactoryOverride = $this->container
->get('language.config_factory_override');
$this
->installSchema('system', [
'sequence',
]);
$this
->installEntitySchema('user_role');
$this
->installConfig([
'language',
'config_rewrite_test',
]);
}
public function testConfigRewrite() {
$expected_original_data = [
'label' => 'Test 1',
'is_admin' => FALSE,
'permissions' => [
'access user profiles',
],
];
$data = $this->activeConfigStorage
->read('user.role.test1');
$this
->assertIdentical($data['label'], $expected_original_data['label']);
$this
->assertIdentical($data['permissions'], $expected_original_data['permissions']);
$this->configRewriter
->rewriteModuleConfig('config_rewrite_test_rewrite');
$expected_rewritten_data = [
'label' => 'Test 1 rewritten',
'is_admin' => FALSE,
'permissions' => [
'access user profiles',
'change own username',
],
];
$user_role = $this->activeConfigStorage
->read('user.role.test1');
$this
->assertEquals($user_role['label'], $expected_rewritten_data['label']);
$this
->assertEquals($user_role['is_admin'], $expected_rewritten_data['is_admin']);
$this
->assertEquals($user_role['permissions'], $expected_rewritten_data['permissions']);
$expected_rewritten_data = [
'label' => 'Test 2 rewritten',
'is_admin' => FALSE,
'permissions' => [
'access user profiles',
'change own username',
],
];
$user_role = $this->activeConfigStorage
->read('user.role.test2');
$this
->assertEquals($user_role['label'], $expected_rewritten_data['label']);
$this
->assertEquals($user_role['is_admin'], $expected_rewritten_data['is_admin']);
$this
->assertEquals($user_role['permissions'], $expected_rewritten_data['permissions']);
$this
->assertFalse(isset($user_role['config_rewrite']));
$expected_rewritten_data = [
'label' => 'Test 3 replaced',
'is_admin' => FALSE,
'permissions' => [
'change own username',
],
];
$user_role = $this->activeConfigStorage
->read('user.role.test3');
$this
->assertEquals($user_role['label'], $expected_rewritten_data['label']);
$this
->assertEquals($user_role['is_admin'], $expected_rewritten_data['is_admin']);
$this
->assertEquals($user_role['permissions'], $expected_rewritten_data['permissions']);
$this
->assertFalse(isset($user_role['config_rewrite']));
$expected_rewritten_data = [
'label' => 'Test 4 réécrit',
];
$user_role = $this->languageConfigFactoryOverride
->getOverride('fr', 'user.role.test4')
->get();
$this
->assertEquals($user_role['label'], $expected_rewritten_data['label']);
$expected_rewritten_data = [
'label' => 'Test 5 rewritten & replaced',
'permissions' => [
'change own username',
],
];
$user_role = $this->activeConfigStorage
->read('user.role.test5');
$this
->assertEquals($user_role['label'], $expected_rewritten_data['label']);
$this
->assertArrayNotHasKey('is_admin', $user_role);
$this
->assertEquals($user_role['permissions'], $expected_rewritten_data['permissions']);
$this
->assertFalse(isset($user_role['config_rewrite']));
}
}