3 namespace Drupal\Tests\filter\Kernel;
5 use Drupal\filter\Entity\FilterFormat;
6 use Drupal\KernelTests\KernelTestBase;
7 use Drupal\user\RoleInterface;
10 * Tests text format default configuration.
14 class FilterDefaultConfigTest extends KernelTestBase {
16 public static $modules = ['system', 'user', 'filter', 'filter_test'];
18 protected function setUp() {
21 // Drupal\filter\FilterPermissions::permissions() builds a URL to output
22 // a link in the description.
24 $this->installEntitySchema('user');
26 // Install filter_test module, which ships with custom default format.
27 $this->installConfig(['user', 'filter_test']);
31 * Tests installation of default formats.
33 public function testInstallation() {
34 // Verify that the format was installed correctly.
35 $format = FilterFormat::load('filter_test');
36 $this->assertTrue((bool) $format);
37 $this->assertEqual($format->id(), 'filter_test');
38 $this->assertEqual($format->label(), 'Test format');
39 $this->assertEqual($format->get('weight'), 2);
41 // Verify that format default property values have been added/injected.
42 $this->assertTrue($format->uuid());
44 // Verify that the loaded format does not contain any roles.
45 $this->assertEqual($format->get('roles'), NULL);
46 // Verify that the defined roles in the default config have been processed.
47 $this->assertEqual(array_keys(filter_get_roles_by_format($format)), [
48 RoleInterface::ANONYMOUS_ID,
49 RoleInterface::AUTHENTICATED_ID,
52 // Verify enabled filters.
53 $filters = $format->get('filters');
54 $this->assertEqual($filters['filter_html_escape']['status'], 1);
55 $this->assertEqual($filters['filter_html_escape']['weight'], -10);
56 $this->assertEqual($filters['filter_html_escape']['provider'], 'filter');
57 $this->assertEqual($filters['filter_html_escape']['settings'], []);
58 $this->assertEqual($filters['filter_autop']['status'], 1);
59 $this->assertEqual($filters['filter_autop']['weight'], 0);
60 $this->assertEqual($filters['filter_autop']['provider'], 'filter');
61 $this->assertEqual($filters['filter_autop']['settings'], []);
62 $this->assertEqual($filters['filter_url']['status'], 1);
63 $this->assertEqual($filters['filter_url']['weight'], 0);
64 $this->assertEqual($filters['filter_url']['provider'], 'filter');
65 $this->assertEqual($filters['filter_url']['settings'], [
66 'filter_url_length' => 72,
71 * Tests that changes to FilterFormat::$roles do not have an effect.
73 public function testUpdateRoles() {
74 // Verify role permissions declared in default config.
75 $format = FilterFormat::load('filter_test');
76 $this->assertEqual(array_keys(filter_get_roles_by_format($format)), [
77 RoleInterface::ANONYMOUS_ID,
78 RoleInterface::AUTHENTICATED_ID,
81 // Attempt to change roles.
82 $format->set('roles', [
83 RoleInterface::AUTHENTICATED_ID,
87 // Verify that roles have not been updated.
88 $format = FilterFormat::load('filter_test');
89 $this->assertEqual(array_keys(filter_get_roles_by_format($format)), [
90 RoleInterface::ANONYMOUS_ID,
91 RoleInterface::AUTHENTICATED_ID,