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 }
|