simple_page_manager-1.0.0-alpha1/tests/src/Functional/PageAccessTest.php

tests/src/Functional/PageAccessTest.php
<?php

namespace Drupal\Tests\simple_page_manager\Functional;

/**
 * Tests page access.
 *
 * @group simple_page_manager
 */
class PageAccessTest extends PageTestBase {

  /**
   * Tests none access.
   */
  public function testNoneAccess() {
    $assert_session = $this->assertSession();

    $this->drupalLogin($this->drupalCreateUser([
      'administer pages',
    ]));

    $this->createPage([
      'label' => 'Page',
      'id' => 'page',
      'path' => '/page',
      'access[type]' => 'none',
    ]);

    $this->drupalGet('/page');
    $assert_session->statusCodeEquals(200);
    $assert_session->pageTextContains('Page');
  }

  /**
   * Tests permission access.
   */
  public function testPermissionAccess() {
    $assert_session = $this->assertSession();

    $this->drupalLogin($this->drupalCreateUser([
      'administer pages',
    ]));

    $this->createPage([
      'label' => 'Page',
      'id' => 'page',
      'path' => '/page',
      'access[type]' => 'permission',
      'access[permission]' => 'administer pages',
    ]);

    $this->drupalLogout();

    $this->drupalGet('/page');
    $assert_session->statusCodeEquals(403);

    $this->drupalLogin($this->drupalCreateUser([
      'administer pages',
    ]));

    $this->drupalGet('/page');
    $assert_session->statusCodeEquals(200);
    $assert_session->pageTextContains('Page');

  }

  /**
   * Tests role access.
   */
  public function testRoleAccess() {
    $role = $this->drupalCreateRole(['access content'], 'tester');

    $assert_session = $this->assertSession();

    $this->drupalLogin($this->drupalCreateUser([
      'administer pages',
    ]));

    $this->createPage([
      'label' => 'Page',
      'id' => 'page',
      'path' => '/page',
      'access[type]' => 'role',
      'access[role]' => $role,
    ]);

    $this->drupalLogout();

    $user = $this->drupalCreateUser();
    $user->addRole($role);
    $user->save();

    $this->drupalLogin($user);

    $this->drupalGet('/page');
    $assert_session->statusCodeEquals(200);
    $assert_session->pageTextContains('Page');

    $this->drupalLogout();

    $this->drupalGet('/page');
    $assert_session->statusCodeEquals(403);
  }

  /**
   * Tests role access type missing a selected role.
   */
  public function testRoleAccessTypeMissingASelectedRole() {
    $assert_session = $this->assertSession();

    $this->drupalLogin($this->drupalCreateUser([
      'administer pages',
    ]));

    $this->createPage([
      'label' => 'Page',
      'id' => 'page',
      'path' => '/page',
      'access[type]' => 'role',
    ]);

    $assert_session->pageTextContains('You must select a role when using the Role access type.');
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc