3 namespace Drupal\Tests\user\Kernel\Field;
5 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
6 use Drupal\Core\Entity\FieldableEntityInterface;
7 use Drupal\KernelTests\KernelTestBase;
8 use Drupal\user\Entity\User;
11 * Tests the user_name formatter.
15 class UserNameFormatterTest extends KernelTestBase {
22 public static $modules = ['field', 'user', 'system'];
27 protected $entityType;
42 protected function setUp() {
45 $this->installConfig(['field']);
46 $this->installEntitySchema('user');
47 $this->installSchema('system', ['sequences']);
49 $this->entityType = 'user';
50 $this->bundle = $this->entityType;
51 $this->fieldName = 'name';
55 * Renders fields of a given entity with a given display.
57 * @param \Drupal\Core\Entity\FieldableEntityInterface $entity
58 * The entity object with attached fields to render.
59 * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
60 * The display to render the fields in.
63 * The rendered entity fields.
65 protected function renderEntityFields(FieldableEntityInterface $entity, EntityViewDisplayInterface $display) {
66 $content = $display->build($entity);
67 $content = $this->render($content);
72 * Tests the formatter output.
74 public function testFormatter() {
75 $user = User::create([
76 'name' => 'test name',
80 $result = $user->{$this->fieldName}->view(['type' => 'user_name']);
81 $this->assertEqual('username', $result[0]['#theme']);
82 $this->assertEqual(spl_object_hash($user), spl_object_hash($result[0]['#account']));
84 $result = $user->{$this->fieldName}->view(['type' => 'user_name', 'settings' => ['link_to_entity' => FALSE]]);
85 $this->assertEqual($user->getDisplayName(), $result[0]['#markup']);
87 $user = User::getAnonymousUser();
89 $result = $user->{$this->fieldName}->view(['type' => 'user_name']);
90 $this->assertEqual('username', $result[0]['#theme']);
91 $this->assertEqual(spl_object_hash($user), spl_object_hash($result[0]['#account']));
93 $result = $user->{$this->fieldName}->view(['type' => 'user_name', 'settings' => ['link_to_entity' => FALSE]]);
94 $this->assertEqual($user->getDisplayName(), $result[0]['#markup']);
95 $this->assertEqual($this->config('user.settings')->get('anonymous'), $result[0]['#markup']);