Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\user\Tests\Views;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\user\Plugin\views\access\Permission;
|
Chris@0
|
6 use Drupal\views\Plugin\views\display\DisplayPluginBase;
|
Chris@0
|
7 use Drupal\views\Views;
|
Chris@0
|
8
|
Chris@0
|
9 /**
|
Chris@0
|
10 * Tests views perm access plugin.
|
Chris@0
|
11 *
|
Chris@0
|
12 * @group user
|
Chris@0
|
13 * @see \Drupal\user\Plugin\views\access\Permission
|
Chris@0
|
14 */
|
Chris@0
|
15 class AccessPermissionTest extends AccessTestBase {
|
Chris@0
|
16
|
Chris@0
|
17 /**
|
Chris@0
|
18 * Views used by this test.
|
Chris@0
|
19 *
|
Chris@0
|
20 * @var array
|
Chris@0
|
21 */
|
Chris@0
|
22 public static $testViews = ['test_access_perm'];
|
Chris@0
|
23
|
Chris@0
|
24 /**
|
Chris@0
|
25 * Tests perm access plugin.
|
Chris@0
|
26 */
|
Chris@0
|
27 public function testAccessPerm() {
|
Chris@0
|
28 $view = Views::getView('test_access_perm');
|
Chris@0
|
29 $view->setDisplay();
|
Chris@0
|
30
|
Chris@0
|
31 $access_plugin = $view->display_handler->getPlugin('access');
|
Chris@0
|
32 $this->assertTrue($access_plugin instanceof Permission, 'Make sure the right class got instantiated.');
|
Chris@0
|
33 $this->assertEqual($access_plugin->pluginTitle(), t('Permission'));
|
Chris@0
|
34
|
Chris@0
|
35 $this->assertFalse($view->display_handler->access($this->webUser));
|
Chris@0
|
36 $this->assertTrue($view->display_handler->access($this->normalUser));
|
Chris@0
|
37 }
|
Chris@0
|
38
|
Chris@0
|
39 /**
|
Chris@0
|
40 * Tests access on render caching.
|
Chris@0
|
41 */
|
Chris@0
|
42 public function testRenderCaching() {
|
Chris@0
|
43 $view = Views::getView('test_access_perm');
|
Chris@0
|
44 $display = &$view->storage->getDisplay('default');
|
Chris@0
|
45 $display['display_options']['cache'] = [
|
Chris@0
|
46 'type' => 'tag',
|
Chris@0
|
47 ];
|
Chris@0
|
48
|
Chris@0
|
49 /** @var \Drupal\Core\Render\RendererInterface $renderer */
|
Chris@0
|
50 $renderer = \Drupal::service('renderer');
|
Chris@0
|
51 /** @var \Drupal\Core\Session\AccountSwitcherInterface $account_switcher */
|
Chris@0
|
52 $account_switcher = \Drupal::service('account_switcher');
|
Chris@0
|
53
|
Chris@0
|
54 // First access as user without access.
|
Chris@0
|
55 $build = DisplayPluginBase::buildBasicRenderable('test_access_perm', 'default');
|
Chris@0
|
56 $account_switcher->switchTo($this->normalUser);
|
Chris@0
|
57 $result = $renderer->renderPlain($build);
|
Chris@0
|
58 $this->assertNotEqual($result, '');
|
Chris@0
|
59
|
Chris@0
|
60 // Then with access.
|
Chris@0
|
61 $build = DisplayPluginBase::buildBasicRenderable('test_access_perm', 'default');
|
Chris@0
|
62 $account_switcher->switchTo($this->webUser);
|
Chris@0
|
63 $result = $renderer->renderPlain($build);
|
Chris@0
|
64 $this->assertEqual($result, '');
|
Chris@0
|
65 }
|
Chris@0
|
66
|
Chris@0
|
67 }
|