Issue #3208849 by yogeshmpawar, cilefen, phenaproxima, mohit_aghera, larowlan, danflanagan8: OEmbedWidget does not display the field's help text, only its own message

(cherry picked from commit 2c979f05ce)
merge-requests/1414/head
Alex Pott 2021-10-25 23:15:55 +01:00
parent c1cc0d5c5d
commit 1a5cc0d9ab
No known key found for this signature in database
GPG Key ID: BDA67E7EE836E5CE
2 changed files with 44 additions and 1 deletions

View File

@ -36,7 +36,7 @@ class OEmbedWidget extends StringTextfieldWidget {
$source = $items->getEntity()->getSource();
$message = $this->t('You can link to media from the following services: @providers', ['@providers' => implode(', ', $source->getProviders())]);
if (!empty($element['#value']['#description'])) {
if (!empty($element['value']['#description'])) {
$element['value']['#description'] = [
'#theme' => 'item_list',
'#items' => [$element['value']['#description'], $message],

View File

@ -0,0 +1,43 @@
<?php
namespace Drupal\Tests\media\Functional\FieldWidget;
use Drupal\field\Entity\FieldConfig;
use Drupal\Tests\media\Functional\MediaFunctionalTestBase;
/**
* @covers \Drupal\media\Plugin\Field\FieldWidget\OEmbedWidget
*
* @group media
*/
class OEmbedFieldWidgetTest extends MediaFunctionalTestBase {
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* Tests that the oEmbed field widget shows the configured help text.
*/
public function testFieldWidgetHelpText() {
$account = $this->drupalCreateUser(['create media']);
$this->drupalLogin($account);
$media_type = $this->createMediaType('oembed:video');
$source_field = $media_type->getSource()
->getSourceFieldDefinition($media_type)
->getName();
/** @var \Drupal\field\Entity\FieldConfig $field */
$field = FieldConfig::loadByName('media', $media_type->id(), $source_field);
$field->setDescription('This is help text for oEmbed field.')
->save();
$this->drupalGet('media/add/' . $media_type->id());
$assert_session = $this->assertSession();
$assert_session->pageTextContains('This is help text for oEmbed field.');
$assert_session->pageTextContains('You can link to media from the following services: YouTube, Vimeo');
}
}