3 namespace Drupal\Tests\user\Kernel\Views;
5 use Drupal\views\Views;
8 * Tests the permission field handler.
11 * @see \Drupal\user\Plugin\views\field\Permissions
13 class HandlerFieldPermissionTest extends UserKernelTestBase {
16 * Views used by this test.
20 public static $testViews = ['test_field_permission'];
23 * Tests the permission field handler output.
25 public function testFieldPermission() {
26 $this->setupPermissionTestData();
28 $view = Views::getView('test_field_permission');
29 $this->executeView($view);
32 $style_plugin = $view->style_plugin;
34 $expected_permissions = [];
35 $expected_permissions[$this->users[0]->id()] = [];
36 $expected_permissions[$this->users[1]->id()] = [];
37 $expected_permissions[$this->users[2]->id()][] = t('Administer permissions');
38 // View user profiles comes first, because we sort by the permission
40 $expected_permissions[$this->users[3]->id()][] = t('View user information');
41 $expected_permissions[$this->users[3]->id()][] = t('Administer permissions');
42 $expected_permissions[$this->users[3]->id()][] = t('Administer users');
44 foreach ($view->result as $index => $row) {
45 $uid = $view->field['uid']->getValue($row);
46 $rendered_permission = $style_plugin->getField($index, 'permission');
48 $expected_output = implode(', ', $expected_permissions[$uid]);
49 $this->assertEqual($rendered_permission, $expected_output, 'The right permissions are rendered.');