Skip to content
Snippets Groups Projects
Unverified Commit 758cb9df authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3041042 by Krzysztof Domański, claudiu.cristea, Berdir, Lendude,...

Issue #3041042 by Krzysztof Domański, claudiu.cristea, Berdir, Lendude, phenaproxima: Convert UserEntityCallbacksTest to a kernel test
parent e80e4523
No related branches found
No related tags found
2 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!789Issue #3210310: Adjust Database API to remove deprecated Drupal 9 code in Drupal 10
<?php
namespace Drupal\Tests\user\Functional;
use Drupal\Tests\BrowserTestBase;
use Drupal\user\Entity\User;
/**
* Tests specific parts of the user entity like the URI callback and the label
* callback.
*
* @group user
*/
class UserEntityCallbacksTest extends BrowserTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = ['user', 'user_hooks_test'];
/**
* An authenticated user to use for testing.
*
* @var \Drupal\user\UserInterface
*/
protected $account;
/**
* An anonymous user to use for testing.
*
* @var \Drupal\user\UserInterface
*/
protected $anonymous;
protected function setUp() {
parent::setUp();
$this->account = $this->drupalCreateUser();
$this->anonymous = User::create(['uid' => 0]);
}
/**
* Test label callback.
*/
public function testLabelCallback() {
$this->assertEqual($this->account->label(), $this->account->getAccountName(), 'The username should be used as 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->assertEqual($this->anonymous->label(), $name, 'The variable anonymous should be used for name of uid 0');
$this->assertEqual($this->anonymous->getDisplayName(), $name, 'The variable anonymous should be used for display name of uid 0');
$this->assertEqual($this->anonymous->getAccountName(), '', 'The raw anonymous user name should be empty string');
// Set to test the altered username.
\Drupal::state()->set('user_hooks_test_user_format_name_alter', TRUE);
$this->assertEqual($this->account->getDisplayName(), '<em>' . $this->account->id() . '</em>', 'The user display name should be altered.');
$this->assertEqual($this->account->getAccountName(), $this->account->name->value, 'The user name should not be altered.');
}
}
<?php
namespace Drupal\Tests\user\Kernel;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\user\Traits\UserCreationTrait;
use Drupal\user\Entity\User;
/**
* Tests the label callback.
*
* @group user
*/
class UserEntityLabelCallbackTest extends KernelTestBase {
use UserCreationTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'system',
'user',
'user_hooks_test',
];
/**
* Tests label callback.
*/
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());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment