function UserEntityReferenceTest::testUserSelectionByRole
Same name in other branches
- 8.9.x core/modules/user/tests/src/Kernel/UserEntityReferenceTest.php \Drupal\Tests\user\Kernel\UserEntityReferenceTest::testUserSelectionByRole()
- 10 core/modules/user/tests/src/Kernel/UserEntityReferenceTest.php \Drupal\Tests\user\Kernel\UserEntityReferenceTest::testUserSelectionByRole()
- 11.x core/modules/user/tests/src/Kernel/UserEntityReferenceTest.php \Drupal\Tests\user\Kernel\UserEntityReferenceTest::testUserSelectionByRole()
Tests user selection by roles.
File
-
core/
modules/ user/ tests/ src/ Kernel/ UserEntityReferenceTest.php, line 57
Class
- UserEntityReferenceTest
- Tests the user reference field functionality.
Namespace
Drupal\Tests\user\KernelCode
public function testUserSelectionByRole() {
$field_definition = FieldConfig::loadByName('user', 'user', 'user_reference');
$handler_settings = $field_definition->getSetting('handler_settings');
$handler_settings['filter']['role'] = [
$this->role1
->id() => $this->role1
->id(),
$this->role2
->id() => 0,
];
$handler_settings['filter']['type'] = 'role';
$field_definition->setSetting('handler_settings', $handler_settings);
$field_definition->save();
// cspell:ignore aabb aabbb aabbbb aabbbb
$user1 = $this->createUser([
'name' => 'aabb',
]);
$user1->addRole($this->role1
->id());
$user1->save();
$user2 = $this->createUser([
'name' => 'aabbb',
]);
$user2->addRole($this->role1
->id());
$user2->save();
$user3 = $this->createUser([
'name' => 'aabbbb',
]);
$user3->addRole($this->role2
->id());
$user3->save();
/** @var \Drupal\Core\Entity\EntityAutocompleteMatcherInterface $autocomplete */
$autocomplete = \Drupal::service('entity.autocomplete_matcher');
$matches = $autocomplete->getMatches('user', 'default', $field_definition->getSetting('handler_settings'), 'aabb');
$this->assertCount(2, $matches);
$users = [];
foreach ($matches as $match) {
$users[] = $match['label'];
}
$this->assertContains($user1->label(), $users);
$this->assertContains($user2->label(), $users);
$this->assertNotContains($user3->label(), $users);
$matches = $autocomplete->getMatches('user', 'default', $field_definition->getSetting('handler_settings'), 'aabbbb');
$this->assertCount(0, $matches);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.