Commit c7a69429 authored by catch's avatar catch
Browse files

Issue #3272516 by Wim Leers, yogeshmpawar, bnjmnm, catch: Deprecate...

Issue #3272516 by Wim Leers, yogeshmpawar, bnjmnm, catch: Deprecate FilterInterface::getHTMLRestrictions()' forbidden_tags functionality
parent 27389d1d
Loading
Loading
Loading
Loading
+0 −28
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ class ValidatorsTest extends KernelTestBase {
    'ckeditor5_plugin_conditions_test',
    'editor',
    'filter',
    'filter_test',
    'media',
    'media_library',
    'views',
@@ -462,33 +461,6 @@ public function providerPair(): array {
      ],
      'violations' => [],
    ];
    $data['INVALID: forbidden tags'] = [
      'settings' => [
        'toolbar' => [
          'items' => [],
        ],
        'plugins' => [],
      ],
      'image_upload' => [
        'status' => FALSE,
      ],
      'filters' => [
        'filter_test_restrict_tags_and_attributes' => [
          'id' => 'filter_test_restrict_tags_and_attributes',
          'provider' => 'filter_test',
          'status' => TRUE,
          'weight' => 0,
          'settings' => [
            'restrictions' => [
              'forbidden_tags' => ['p' => FALSE],
            ],
          ],
        ],
      ],
      'violations' => [
        '' => 'CKEditor 5 needs at least the &lt;p&gt; and &lt;br&gt; tags to be allowed to be able to function. They are forbidden by the "<em class="placeholder">Tag and attribute restricting filter</em>" (<em class="placeholder">filter_test_restrict_tags_and_attributes</em>) filter.',
      ],
    ];
    $restricted_html_format_filters = Yaml::parseFile(__DIR__ . '/../../../../../profiles/standard/config/install/filter.format.restricted_html.yml')['filters'];
    $data['INVALID: the default restricted_html text format'] = [
      'settings' => [
+4 −0
Original line number Diff line number Diff line
@@ -297,6 +297,10 @@ public function getHtmlRestrictions() {
      $restrictions = array_reduce($filters, function ($restrictions, $filter) {
        $new_restrictions = $filter->getHTMLRestrictions();

        if (isset($new_restrictions['forbidden_tags'])) {
          @trigger_error('forbidden_tags for FilterInterface::getHTMLRestrictions() is deprecated in drupal:9.4.0 and is removed from drupal:10.0.0', E_USER_DEPRECATED);
        }

        // The first filter with HTML restrictions provides the initial set.
        if (!isset($restrictions)) {
          return $new_restrictions;
+1 −1
Original line number Diff line number Diff line
@@ -198,7 +198,7 @@ public function process($text, $langcode);
   *             be attribute values (which may use a wildcard, e.g. "xsd:*"),
   *             the possible values are TRUE or FALSE: to mark the attribute
   *             value as allowed or forbidden, respectively
   *     -  'forbidden_tags': (optional) the forbidden tags
   *     -  'forbidden_tags': (deprecated) the forbidden tags
   *
   *   There is one special case: the "wildcard tag", "*": any attribute
   *   restrictions on that pseudotag apply to all tags.
+24 −0
Original line number Diff line number Diff line
@@ -509,4 +509,28 @@ public function testSleep() {
    $this->assertNotContains('filterCollection', $vars);
  }

  /**
   * Tests deprecated "forbidden tags" functionality.
   *
   * @group legacy
   */
  public function testForbiddenTagsDeprecated(): void {
    $this->expectDeprecation('forbidden_tags for FilterInterface::getHTMLRestrictions() is deprecated in drupal:9.4.0 and is removed from drupal:10.0.0');
    FilterFormat::create([
      'format' => 'forbidden_tags_deprecation_test',
      'name' => 'Forbidden tags deprecation test',
      'filters' => [
        'filter_test_restrict_tags_and_attributes' => [
          'status' => TRUE,
          'settings' => [
            'restrictions' => [
              'forbidden_tags' => ['p' => FALSE],
            ],
          ],
        ],
      ],
    ])->save();
    FilterFormat::load('forbidden_tags_deprecation_test')->getHtmlRestrictions();
  }

}