annotate core/modules/user/tests/src/Functional/UserEntityCallbacksTest.php @ 17:129ea1e6d783

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:21:36 +0000
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\user\Functional;
Chris@0 4
Chris@0 5 use Drupal\Tests\BrowserTestBase;
Chris@0 6 use Drupal\user\Entity\User;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Tests specific parts of the user entity like the URI callback and the label
Chris@0 10 * callback.
Chris@0 11 *
Chris@0 12 * @group user
Chris@0 13 */
Chris@0 14 class UserEntityCallbacksTest extends BrowserTestBase {
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Modules to enable.
Chris@0 18 *
Chris@0 19 * @var array
Chris@0 20 */
Chris@0 21 public static $modules = ['user', 'user_hooks_test'];
Chris@0 22
Chris@0 23 /**
Chris@0 24 * An authenticated user to use for testing.
Chris@0 25 *
Chris@0 26 * @var \Drupal\user\UserInterface
Chris@0 27 */
Chris@0 28 protected $account;
Chris@0 29
Chris@0 30 /**
Chris@0 31 * An anonymous user to use for testing.
Chris@0 32 *
Chris@0 33 * @var \Drupal\user\UserInterface
Chris@0 34 */
Chris@0 35 protected $anonymous;
Chris@0 36
Chris@0 37 protected function setUp() {
Chris@0 38 parent::setUp();
Chris@0 39
Chris@0 40 $this->account = $this->drupalCreateUser();
Chris@0 41 $this->anonymous = User::create(['uid' => 0]);
Chris@0 42 }
Chris@0 43
Chris@0 44 /**
Chris@0 45 * Test label callback.
Chris@0 46 */
Chris@0 47 public function testLabelCallback() {
Chris@0 48 $this->assertEqual($this->account->label(), $this->account->getUsername(), 'The username should be used as label');
Chris@0 49
Chris@0 50 // Setup a random anonymous name to be sure the name is used.
Chris@0 51 $name = $this->randomMachineName();
Chris@0 52 $this->config('user.settings')->set('anonymous', $name)->save();
Chris@0 53 $this->assertEqual($this->anonymous->label(), $name, 'The variable anonymous should be used for name of uid 0');
Chris@0 54 $this->assertEqual($this->anonymous->getDisplayName(), $name, 'The variable anonymous should be used for display name of uid 0');
Chris@0 55 $this->assertEqual($this->anonymous->getUserName(), '', 'The raw anonymous user name should be empty string');
Chris@0 56
Chris@0 57 // Set to test the altered username.
Chris@0 58 \Drupal::state()->set('user_hooks_test_user_format_name_alter', TRUE);
Chris@0 59
Chris@0 60 $this->assertEqual($this->account->getDisplayName(), '<em>' . $this->account->id() . '</em>', 'The user display name should be altered.');
Chris@0 61 $this->assertEqual($this->account->getUsername(), $this->account->name->value, 'The user name should not be altered.');
Chris@0 62 }
Chris@0 63
Chris@0 64 }