Version 1
[yaffs-website] / web / core / modules / user / tests / src / Kernel / Views / HandlerFieldPermissionTest.php
1 <?php
2
3 namespace Drupal\Tests\user\Kernel\Views;
4
5 use Drupal\views\Views;
6
7 /**
8  * Tests the permission field handler.
9  *
10  * @group user
11  * @see \Drupal\user\Plugin\views\field\Permissions
12  */
13 class HandlerFieldPermissionTest extends UserKernelTestBase {
14
15   /**
16    * Views used by this test.
17    *
18    * @var array
19    */
20   public static $testViews = ['test_field_permission'];
21
22   /**
23    * Tests the permission field handler output.
24    */
25   public function testFieldPermission() {
26     $this->setupPermissionTestData();
27
28     $view = Views::getView('test_field_permission');
29     $this->executeView($view);
30     $view->initStyle();
31     $view->render();
32     $style_plugin = $view->style_plugin;
33
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
39     // machine name.
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');
43
44     foreach ($view->result as $index => $row) {
45       $uid = $view->field['uid']->getValue($row);
46       $rendered_permission = $style_plugin->getField($index, 'permission');
47
48       $expected_output = implode(', ', $expected_permissions[$uid]);
49       $this->assertEqual($rendered_permission, $expected_output, 'The right permissions are rendered.');
50     }
51   }
52
53 }