function HandlerFilterRolesTest::testDependencies

Same name and namespace in other branches
  1. 9 core/modules/user/tests/src/Kernel/Views/HandlerFilterRolesTest.php \Drupal\Tests\user\Kernel\Views\HandlerFilterRolesTest::testDependencies()
  2. 10 core/modules/user/tests/src/Kernel/Views/HandlerFilterRolesTest.php \Drupal\Tests\user\Kernel\Views\HandlerFilterRolesTest::testDependencies()
  3. 11.x core/modules/user/tests/src/Kernel/Views/HandlerFilterRolesTest.php \Drupal\Tests\user\Kernel\Views\HandlerFilterRolesTest::testDependencies()

Tests that role filter dependencies are calculated correctly.

File

core/modules/user/tests/src/Kernel/Views/HandlerFilterRolesTest.php, line 29

Class

HandlerFilterRolesTest
Tests the roles filter handler.

Namespace

Drupal\Tests\user\Kernel\Views

Code

public function testDependencies() {
    $role = Role::create([
        'id' => 'test_user_role',
    ]);
    $role->save();
    $view = View::load('test_user_name');
    $expected = [
        'module' => [
            'user',
        ],
    ];
    $this->assertEqual($expected, $view->getDependencies());
    $display =& $view->getDisplay('default');
    $display['display_options']['filters']['roles_target_id'] = [
        'id' => 'roles_target_id',
        'table' => 'user__roles',
        'field' => 'roles_target_id',
        'value' => [
            'test_user_role' => 'test_user_role',
        ],
        'plugin_id' => 'user_roles',
    ];
    $view->save();
    $expected['config'][] = 'user.role.test_user_role';
    $this->assertEqual($expected, $view->getDependencies());
    $view = View::load('test_user_name');
    $display =& $view->getDisplay('default');
    $display['display_options']['filters']['roles_target_id'] = [
        'id' => 'roles_target_id',
        'table' => 'user__roles',
        'field' => 'roles_target_id',
        'value' => [
            'test_user_role' => 'test_user_role',
        ],
        'operator' => 'empty',
        'plugin_id' => 'user_roles',
    ];
    $view->save();
    unset($expected['config']);
    $this->assertEqual($expected, $view->getDependencies());
    $view = View::load('test_user_name');
    $display =& $view->getDisplay('default');
    $display['display_options']['filters']['roles_target_id'] = [
        'id' => 'roles_target_id',
        'table' => 'user__roles',
        'field' => 'roles_target_id',
        'value' => [
            'test_user_role' => 'test_user_role',
        ],
        'operator' => 'not empty',
        'plugin_id' => 'user_roles',
    ];
    $view->save();
    $this->assertEqual($expected, $view->getDependencies());
    $view = Views::getView('test_user_name');
    $view->initDisplay();
    $view->initHandlers();
    $this->assertEqual(array_keys($view->filter['roles_target_id']
        ->getValueOptions()), [
        'test_user_role',
    ]);
    $view = View::load('test_user_name');
    $display =& $view->getDisplay('default');
    $display['display_options']['filters']['roles_target_id'] = [
        'id' => 'roles_target_id',
        'table' => 'user__roles',
        'field' => 'roles_target_id',
        'value' => [],
        'plugin_id' => 'user_roles',
    ];
    $view->save();
    $this->assertEqual($expected, $view->getDependencies());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.