Chris@0: role1 = Role::create([ Chris@0: 'id' => strtolower($this->randomMachineName(8)), Chris@0: 'label' => $this->randomMachineName(8), Chris@0: ]); Chris@0: $this->role1->save(); Chris@0: Chris@0: $this->role2 = Role::create([ Chris@0: 'id' => strtolower($this->randomMachineName(8)), Chris@0: 'label' => $this->randomMachineName(8), Chris@0: ]); Chris@0: $this->role2->save(); Chris@0: Chris@0: $this->createEntityReferenceField('user', 'user', 'user_reference', 'User reference', 'user'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests user selection by roles. Chris@0: */ Chris@0: public function testUserSelectionByRole() { Chris@0: $field_definition = FieldConfig::loadByName('user', 'user', 'user_reference'); Chris@0: $handler_settings = $field_definition->getSetting('handler_settings'); Chris@0: $handler_settings['filter']['role'] = [ Chris@0: $this->role1->id() => $this->role1->id(), Chris@0: $this->role2->id() => 0, Chris@0: ]; Chris@0: $handler_settings['filter']['type'] = 'role'; Chris@0: $field_definition->setSetting('handler_settings', $handler_settings); Chris@0: $field_definition->save(); Chris@0: Chris@0: $user1 = $this->createUser(['name' => 'aabb']); Chris@0: $user1->addRole($this->role1->id()); Chris@0: $user1->save(); Chris@0: Chris@0: $user2 = $this->createUser(['name' => 'aabbb']); Chris@0: $user2->addRole($this->role1->id()); Chris@0: $user2->save(); Chris@0: Chris@0: $user3 = $this->createUser(['name' => 'aabbbb']); Chris@0: $user3->addRole($this->role2->id()); Chris@0: $user3->save(); Chris@0: Chris@0: /** @var \Drupal\Core\Entity\EntityAutocompleteMatcher $autocomplete */ Chris@0: $autocomplete = \Drupal::service('entity.autocomplete_matcher'); Chris@0: Chris@0: $matches = $autocomplete->getMatches('user', 'default', $field_definition->getSetting('handler_settings'), 'aabb'); Chris@0: $this->assertEqual(count($matches), 2); Chris@0: $users = []; Chris@0: foreach ($matches as $match) { Chris@0: $users[] = $match['label']; Chris@0: } Chris@0: $this->assertTrue(in_array($user1->label(), $users)); Chris@0: $this->assertTrue(in_array($user2->label(), $users)); Chris@0: $this->assertFalse(in_array($user3->label(), $users)); Chris@0: Chris@0: $matches = $autocomplete->getMatches('user', 'default', $field_definition->getSetting('handler_settings'), 'aabbbb'); Chris@0: $this->assertEqual(count($matches), 0, ''); Chris@0: } Chris@0: Chris@0: }