Updated to Drupal 8.6.4, which is PHP 7.3 friendly. Also updated HTMLaw library....
[yaffs-website] / web / core / modules / filter / tests / src / Kernel / FilterDefaultConfigTest.php
1 <?php
2
3 namespace Drupal\Tests\filter\Kernel;
4
5 use Drupal\filter\Entity\FilterFormat;
6 use Drupal\KernelTests\KernelTestBase;
7 use Drupal\user\RoleInterface;
8
9 /**
10  * Tests text format default configuration.
11  *
12  * @group filter
13  */
14 class FilterDefaultConfigTest extends KernelTestBase {
15
16   public static $modules = ['system', 'user', 'filter', 'filter_test'];
17
18   protected function setUp() {
19     parent::setUp();
20
21     // Drupal\filter\FilterPermissions::permissions() builds a URL to output
22     // a link in the description.
23
24     $this->installEntitySchema('user');
25
26     // Install filter_test module, which ships with custom default format.
27     $this->installConfig(['user', 'filter_test']);
28   }
29
30   /**
31    * Tests installation of default formats.
32    */
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);
40
41     // Verify that format default property values have been added/injected.
42     $this->assertTrue($format->uuid());
43
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,
50     ]);
51
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,
67     ]);
68   }
69
70   /**
71    * Tests that changes to FilterFormat::$roles do not have an effect.
72    */
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,
79     ]);
80
81     // Attempt to change roles.
82     $format->set('roles', [
83       RoleInterface::AUTHENTICATED_ID,
84     ]);
85     $format->save();
86
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,
92     ]);
93   }
94
95 }