3 namespace Drupal\Tests\user\Kernel\Views;
5 use Drupal\user\Entity\Role;
6 use Drupal\views\Entity\View;
7 use Drupal\views\Views;
10 * Tests the roles filter handler.
14 * @see \Drupal\user\Plugin\views\filter\Roles
16 class HandlerFilterRolesTest extends UserKernelTestBase {
19 * Views used by this test.
23 public static $testViews = ['test_user_name'];
26 * Tests that role filter dependencies are calculated correctly.
28 public function testDependencies() {
29 $role = Role::create(['id' => 'test_user_role']);
31 $view = View::load('test_user_name');
35 $this->assertEqual($expected, $view->getDependencies());
37 $display = &$view->getDisplay('default');
38 $display['display_options']['filters']['roles_target_id'] = [
39 'id' => 'roles_target_id',
40 'table' => 'user__roles',
41 'field' => 'roles_target_id',
42 'value' => ['test_user_role' => 'test_user_role'],
43 'plugin_id' => 'user_roles',
46 $expected['config'][] = 'user.role.test_user_role';
47 $this->assertEqual($expected, $view->getDependencies());
49 $view = View::load('test_user_name');
50 $display = &$view->getDisplay('default');
51 $display['display_options']['filters']['roles_target_id'] = [
52 'id' => 'roles_target_id',
53 'table' => 'user__roles',
54 'field' => 'roles_target_id',
56 'test_user_role' => 'test_user_role',
58 'operator' => 'empty',
59 'plugin_id' => 'user_roles',
62 unset($expected['config']);
63 $this->assertEqual($expected, $view->getDependencies());
65 $view = View::load('test_user_name');
66 $display = &$view->getDisplay('default');
67 $display['display_options']['filters']['roles_target_id'] = [
68 'id' => 'roles_target_id',
69 'table' => 'user__roles',
70 'field' => 'roles_target_id',
72 'test_user_role' => 'test_user_role',
74 'operator' => 'not empty',
75 'plugin_id' => 'user_roles',
78 $this->assertEqual($expected, $view->getDependencies());
80 $view = Views::getView('test_user_name');
82 $view->initHandlers();
83 $this->assertEqual(array_keys($view->filter['roles_target_id']->getValueOptions()), ['test_user_role']);
85 $view = View::load('test_user_name');
86 $display = &$view->getDisplay('default');
87 $display['display_options']['filters']['roles_target_id'] = [
88 'id' => 'roles_target_id',
89 'table' => 'user__roles',
90 'field' => 'roles_target_id',
92 'plugin_id' => 'user_roles',
95 $this->assertEqual($expected, $view->getDependencies());