diff -u b/core/modules/media/src/Entity/Media.php b/core/modules/media/src/Entity/Media.php --- b/core/modules/media/src/Entity/Media.php +++ b/core/modules/media/src/Entity/Media.php @@ -95,17 +95,30 @@ /** * {@inheritdoc} */ + public function label() { + return $this->getName(); + } + + /** + * {@inheritdoc} + */ public function getName() { - $media_source = $this->getSource(); - return !empty($this->get('name')->value) ? $this->get('name')->value : $media_source->getMetadata($this, $media_source->getPluginDefinition()['default_name_metadata_attribute']); + $name = $this->get('name'); + + if ($name->isEmpty()) { + $media_source = $this->getSource(); + return $media_source->getMetadata($this, $media_source->getPluginDefinition()['default_name_metadata_attribute']); + } + else { + return $name->value; + } } /** * {@inheritdoc} */ public function setName($name) { - $this->set('name', $name); - return $this; + return $this->set('name', $name); } /** diff -u b/core/modules/media/tests/src/Kernel/MediaSourceTest.php b/core/modules/media/tests/src/Kernel/MediaSourceTest.php --- b/core/modules/media/tests/src/Kernel/MediaSourceTest.php +++ b/core/modules/media/tests/src/Kernel/MediaSourceTest.php @@ -26,8 +26,10 @@ $this->assertEquals('default_name', $media_source->getPluginDefinition()['default_name_metadata_attribute'], 'Default metadata attribute is not used for the default name.'); $this->assertEquals('media:' . $media->getType() . ':' . $media->uuid(), $media_source->getMetadata($media, 'default_name'), 'Value of the default name metadata attribute does not look correct.'); $this->assertEquals('media:' . $media->getType() . ':' . $media->uuid(), $media->getName(), 'Default name was not used correctly by getName().'); + $this->assertEquals($media->getName(), $media->label(), 'Default name and label are not the same.'); $media->save(); $this->assertEquals('media:' . $media->getType() . ':' . $media->uuid(), $media->getName(), 'Default name was not saved correctly.'); + $this->assertEquals($media->getName(), $media->label(), 'The label changed during save.'); // Make sure that the user-supplied name is used. /** @var \Drupal\media\MediaInterface $media */ @@ -41,6 +43,7 @@ $this->assertEquals('media:' . $media->getType() . ':' . $media->uuid(), $media_source->getMetadata($media, 'default_name'), 'Value of the default name metadata attribute does not look correct.'); $media->save(); $this->assertEquals($name, $media->getName(), 'User-supplied name was not set correctly.'); + $this->assertEquals($media->getName(), $media->label(), 'The user-supplied name does not match the label.'); // Change the default name attribute and see if it is used to set the name. $name = 'Old Major'; @@ -53,6 +56,7 @@ $this->assertEquals($name, $media_source->getMetadata($media, 'alternative_name'), 'Value of the default name metadata attribute does not look correct.'); $media->save(); $this->assertEquals($name, $media->getName(), 'Default name was not set correctly.'); + $this->assertEquals($media->getName(), $media->label(), 'The default name does not match the label.'); } /**