ckeditor_font-8.x-1.x-dev/tests/src/Kernel/UpgradePathTest.php

tests/src/Kernel/UpgradePathTest.php
<?php

declare(strict_types = 1);

namespace Drupal\Tests\ckeditor_font\Kernel;

use Drupal\editor\Entity\Editor;
use Drupal\filter\Entity\FilterFormat;
use Drupal\Tests\ckeditor5\Kernel\SmartDefaultSettingsTest;

/**
 * @covers \Drupal\ckeditor_font\Plugin\CKEditor4To5Upgrade\Font
 * @group ckeditor_font
 * @group ckeditor5
 * @requires module ckeditor5
 * @internal
 */
class UpgradePathTest extends SmartDefaultSettingsTest {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'ckeditor_font',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $filter_config = [
      'filter_html' => [
        'status' => 1,
        'settings' => [
          'allowed_html' => '<p> <br> <strong>',
        ],
      ],
    ];
    FilterFormat::create([
      'format' => 'ckeditor_font_both',
      'name' => 'Both ckeditor_font CKE4 buttons',
      'filters' => $filter_config,
    ])->setSyncing(TRUE)->save();
    FilterFormat::create([
      'format' => 'ckeditor_font_font_only',
      'name' => 'Only the Font ckeditor_font CKE4 button',
      'filters' => $filter_config,
    ])->setSyncing(TRUE)->save();
    FilterFormat::create([
      'format' => 'ckeditor_font_fontsize_only',
      'name' => 'Only the FontSize ckeditor_font CKE4 button',
      'filters' => $filter_config,
    ])->setSyncing(TRUE)->save();

    $generate_editor_settings = function (array $ckeditor_font_buttons) {
      return [
        'toolbar' => [
          'rows' => [
            0 => [
              [
                'name' => 'Basic Formatting',
                'items' => [
                  'Bold',
                  'Format',
                ],
              ],
              [
                'name' => 'ckeditor_font buttons',
                'items' => $ckeditor_font_buttons,
              ],
            ],
          ],
        ],
        'plugins' => [
          // The CKEditor 4 plugin functionality has no settings.
        ],
      ];
    };

    Editor::create([
      'format' => 'ckeditor_font_both',
      'editor' => 'ckeditor',
      'settings' => $generate_editor_settings([
        'Font',
        'FontSize',
      ]),
    ])->setSyncing(TRUE)->save();
    Editor::create([
      'format' => 'ckeditor_font_font_only',
      'editor' => 'ckeditor',
      'settings' => $generate_editor_settings([
        'Font',
      ]),
    ])->setSyncing(TRUE)->save();
    Editor::create([
      'format' => 'ckeditor_font_fontsize_only',
      'editor' => 'ckeditor',
      'settings' => $generate_editor_settings([
        'FontSize',
      ]),
    ])->setSyncing(TRUE)->save();
  }

  /**
   * {@inheritdoc}
   */
  public function provider() {
    parent::provider();

    // The three permutations of possible CKEditor 4 buttons, but all without
    // any settings in CKEditor 4.
    yield "both CKEditor 4 buttons" => [
      'format_id' => 'ckeditor_font_both',
      'filters_to_drop' => [],
      'expected_ckeditor5_settings' => [
        'toolbar' => [
          'items' => [
            'bold',
            '|',
            'fontFamily',
            'fontSize',
          ],
        ],
        'plugins' => [
          'ckeditor_font_font' => [
            'font_sizes' => '',
            'font_names' => '',
            'supportAllFamilyValues' => FALSE,
            'supportAllSizeValues' => FALSE,
          ],
        ],
      ],
      'expected_superset' => '',
      'expected_fundamental_compatibility_violations' => [],
      'expected_db_logs' => [],
      'expected_messages' => [],
    ];
    yield "LTR CKEditor 4 button only" => [
      'format_id' => 'ckeditor_font_font_only',
      'filters_to_drop' => [],
      'expected_ckeditor5_settings' => [
        'toolbar' => [
          'items' => [
            'bold',
            '|',
            'fontFamily',
          ],
        ],
        'plugins' => [
          'ckeditor_font_font' => [
            'font_sizes' => '',
            'font_names' => '',
            'supportAllFamilyValues' => FALSE,
            'supportAllSizeValues' => FALSE,
          ],
        ],
      ],
      'expected_superset' => '',
      'expected_fundamental_compatibility_violations' => [],
      'expected_db_logs' => [],
      'expected_messages' => [],
    ];
    yield "FontSize CKEditor 4 button only" => [
      'format_id' => 'ckeditor_font_fontsize_only',
      'filters_to_drop' => [],
      'expected_ckeditor5_settings' => [
        'toolbar' => [
          'items' => [
            'bold',
            '|',
            'fontSize',
          ],
        ],
        'plugins' => [
          'ckeditor_font_font' => [
            'font_sizes' => '',
            'font_names' => '',
            'supportAllFamilyValues' => FALSE,
            'supportAllSizeValues' => FALSE,
          ],
        ],
      ],
      'expected_superset' => '',
      'expected_fundamental_compatibility_violations' => [],
      'expected_db_logs' => [],
      'expected_messages' => [],
    ];

    // @todo test cases where the CKEditor 4 plugin does have settings.
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc