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 <a href="/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Entity.php/class/Entity/8.9.x" title="Defines a base entity class." class="local">\Drupal\Core\Entity\Entity</a> @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.