annotate core/modules/user/src/Tests/Views/AccessPermissionTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
rev   line source
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 }