From 75da9df22dee2d31f3725adca82be0216b70e369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kurucz=20Istv=C3=A1n?= <never@nevergone.hu> Date: Wed, 11 May 2022 14:12:22 +0200 Subject: [PATCH] Test refactor and "Filtered HTML" test. --- tests/src/Kernel/MigrateFilterFormatTest.php | 56 +++++++++++++++++--- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/tests/src/Kernel/MigrateFilterFormatTest.php b/tests/src/Kernel/MigrateFilterFormatTest.php index 69aab0e..947fca9 100644 --- a/tests/src/Kernel/MigrateFilterFormatTest.php +++ b/tests/src/Kernel/MigrateFilterFormatTest.php @@ -12,22 +12,66 @@ use Drupal\filter\FilterFormatInterface; */ class MigrateFilterFormatTest extends MigrateDrupal5TestBase { + /** + * @var \Drupal\filter\FilterPluginManager + */ + protected $filterPluginManager; + /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); + $this->filterPluginManager = \Drupal::service('plugin.manager.filter'); $this->executeMigration('d5_filter_format'); } /** - * Test "Empty input format" filter format. + * Asserts various aspects of a filter format entity. + * + * @see \Drupal\Tests\filter\Kernel\Migrate\d7\MigrateFilterFormatTest::assertEntity + * + * @param string $id + * The format ID. + * @param string $label + * The expected label of the format. + * @param array $enabled_filters + * The expected filters in the format, keyed by ID with weight as values. + * + * @internal + */ + protected function assertEntity(string $id, string $label, array $enabled_filters): void { + /** @var \Drupal\filter\FilterFormatInterface $entity */ + $entity = FilterFormat::load($id); + $this->assertInstanceOf(FilterFormatInterface::class, $entity); + $this->assertSame($label, $entity->label()); + // get('filters') will return enabled filters only, not all of them. + $this->assertSame(array_keys($enabled_filters), array_keys($entity->get('filters'))); + foreach ($entity->get('filters') as $filter_id => $filter) { + $this->assertSame($filter['weight'], $enabled_filters[$filter_id]); + } + } + + /** + * Test 'Empty input format' filter format. */ public function testEmptyFilterFormat() { - $filter_format = FilterFormat::load('empty_input_format'); - $this->assertInstanceOf(FilterFormatInterface::class, $filter_format); - // Check filter status. - $filters = $filter_format->get('filters'); - $this->assertEmpty($filters); + $this->assertEntity('empty_input_format', 'Empty input format', []); + } + + /** + * Test 'Filtered HTML' filter format. + */ + public function testFilteredHtmlFilterFormat() { + $this->assertEntity('filtered_html', 'Filtered HTML', ['filter_url' => 0, 'filter_html' => 1, 'filter_autop' => 2]); + // filter_html + $filter_plugin = $this->filterPluginManager->createInstance('filter_html'); + $filter_config = FilterFormat::load('filtered_html')->filters('filter_html')->getConfiguration(); + $this->assertSame($filter_plugin->getPluginDefinition()['settings']['allowed_html'], $filter_config['settings']['allowed_html']); + $this->assertEquals(TRUE, $filter_config['settings']['filter_html_help']); + // filter_url + $filter_plugin = $this->filterPluginManager->createInstance('filter_url'); + $filter_config = FilterFormat::load('filtered_html')->filters('filter_url')->getConfiguration(); + $this->assertSame($filter_plugin->getPluginDefinition()['settings']['filter_url_length'], $filter_config['settings']['filter_url_length']); } } -- GitLab