function MediaEmbedFilterTest::testDependencies
Tests that the 'media_embed' filter handles dependency removal.
File
-
core/
modules/ media/ tests/ src/ Kernel/ MediaEmbedFilterTest.php, line 525
Class
Namespace
Drupal\Tests\media\KernelCode
public function testDependencies() : void {
$role_id = $this->drupalCreateRole([], NULL, 'Test role');
$filter_format = FilterFormat::create([
'format' => 'media_embed_dependencies_test',
'name' => 'Media embed dependencies test',
'roles' => [
$role_id,
],
]);
$filter_format->setFilterConfig('media_embed', [
'settings' => [
'allowed_view_modes' => [
'foobar' => 'foobar',
],
'default_view_mode' => 'foobar',
],
]);
$filter_format->save();
$this->assertSame('foobar', $filter_format->get('filters')['media_embed']['settings']['default_view_mode']);
$this->assertSame([
'foobar' => 'foobar',
], $filter_format->get('filters')['media_embed']['settings']['allowed_view_modes']);
$this->assertTrue(in_array('core.entity_view_mode.media.foobar', $filter_format->getDependencies()['config']));
$role = Role::load($role_id);
$this->assertContains($filter_format->getPermissionName(), $role->getPermissions());
// Confirm that after the 'media.foobar' view mode has been deleted, the
// media embed filter handles the dependency removal correctly so that the
// filter format is not deleted as well.
$view_mode = EntityViewMode::load('media.foobar');
$view_mode->delete();
/** @var \Drupal\filter\FilterFormatInterface $filter_format */
$filter_format = FilterFormat::load('media_embed_dependencies_test');
$this->assertNotNull($filter_format);
$this->assertArrayNotHasKey('config', $filter_format->getDependencies());
$role = Role::load($role_id);
$this->assertContains($filter_format->getPermissionName(), $role->getPermissions());
// Since the foobar display mode has been removed, the media_embed filter
// settings should be updated to use the default view mode only.
$this->assertSame(EntityDisplayRepositoryInterface::DEFAULT_DISPLAY_MODE, $filter_format->get('filters')['media_embed']['settings']['default_view_mode']);
$this->assertSame([
EntityDisplayRepositoryInterface::DEFAULT_DISPLAY_MODE => EntityDisplayRepositoryInterface::DEFAULT_DISPLAY_MODE,
], $filter_format->get('filters')['media_embed']['settings']['allowed_view_modes']);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.