function EntityUnitTest::testLabel

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testLabel()
  2. 10 core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testLabel()
  3. 11.x core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testLabel()

@covers ::label
@group legacy

File

core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php, line 176

Class

EntityUnitTest
@coversDefaultClass \Drupal\Core\Entity\Entity[[api-linebreak]] @group Entity @group Access

Namespace

Drupal\Tests\Core\Entity

Code

public function testLabel() {
  $this->addExpectedDeprecationMessage('Entity type ' . $this->entityTypeId . ' defines a label callback. Support for that is deprecated in drupal:8.0.0 and will be removed in drupal:9.0.0. Override the EntityInterface::label() method instead. See https://www.drupal.org/node/3050794');
  // Make a mock with one method that we use as the entity's uri_callback. We
  // check that it is called, and that the entity's label is the callback's
  // return value.
  $callback_label = $this->randomMachineName();
  $property_label = $this->randomMachineName();
  $callback_container = $this->createMock(get_class());
  $callback_container->expects($this->once())
    ->method(__FUNCTION__)
    ->will($this->returnValue($callback_label));
  $this->entityType
    ->expects($this->at(0))
    ->method('get')
    ->with('label_callback')
    ->will($this->returnValue([
    $callback_container,
    __FUNCTION__,
  ]));
  $this->entityType
    ->expects($this->at(2))
    ->method('getKey')
    ->with('label')
    ->will($this->returnValue('label'));
  // Set a dummy property on the entity under test to test that the label can
  // be returned form a property if there is no callback.
  $this->entityTypeManager
    ->expects($this->at(1))
    ->method('getDefinition')
    ->with($this->entityTypeId)
    ->will($this->returnValue([
    'entity_keys' => [
      'label' => 'label',
    ],
  ]));
  $this->entity->label = $property_label;
  $this->assertSame($callback_label, $this->entity
    ->label());
  $this->assertSame($property_label, $this->entity
    ->label());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.