You are here

public function UserEntityLabelTest::testLabelCallback in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/user/tests/src/Kernel/UserEntityLabelTest.php \Drupal\Tests\user\Kernel\UserEntityLabelTest::testLabelCallback()
  2. 10 core/modules/user/tests/src/Kernel/UserEntityLabelTest.php \Drupal\Tests\user\Kernel\UserEntityLabelTest::testLabelCallback()

Tests label callback.

File

core/modules/user/tests/src/Kernel/UserEntityLabelTest.php, line 30

Class

UserEntityLabelTest
Tests the label callback.

Namespace

Drupal\Tests\user\Kernel

Code

public function testLabelCallback() {
  $this
    ->installSchema('system', [
    'sequences',
  ]);
  $this
    ->installEntitySchema('user');
  $account = $this
    ->createUser();
  $anonymous = User::create([
    'uid' => 0,
  ]);
  $this
    ->assertEquals($account
    ->getAccountName(), $account
    ->label());

  // Setup a random anonymous name to be sure the name is used.
  $name = $this
    ->randomMachineName();
  $this
    ->config('user.settings')
    ->set('anonymous', $name)
    ->save();
  $this
    ->assertEquals($name, $anonymous
    ->label());
  $this
    ->assertEquals($name, $anonymous
    ->getDisplayName());
  $this
    ->assertEmpty($anonymous
    ->getAccountName());

  // Set to test the altered username.
  \Drupal::state()
    ->set('user_hooks_test_user_format_name_alter', TRUE);

  // The user display name should be altered.
  $this
    ->assertEquals('<em>' . $account
    ->id() . '</em>', $account
    ->getDisplayName());

  // The user login name should not be altered.
  $this
    ->assertEquals($account->name->value, $account
    ->getAccountName());
}