You are here

public function SearchByPagePathsTest::setUp in Search by Page 8

Overrides SearchByPageTesterTest::setUp

File

tests/src/Functional/search_by_page.test, line 1024
Tests for the Search by Page module. By Jennifer Hodgdon of Poplar ProductivityWare, www.poplarware.com

Class

SearchByPagePathsTest
Functionality tests for Search by Page Paths.

Namespace

Drupal\Tests\search_by_page\Functional

Code

public function setUp() {
  parent::setUp('search', 'search_by_page', 'search_by_page_paths', 'search_by_page_test', 'dblog');
  $this
    ->setUpEnvironments();
  $this->superuser = $this
    ->drupalCreateUser(array(
    'administer nodes',
    'access content',
    'administer content types',
    'administer blocks',
    'administer search',
    'search content',
    'administer search by page',
    $this
      ->searchPerm($this->envinfo1),
    'access administration pages',
    'administer site configuration',
    'administer users',
    'administer permissions',
    'view test private content',
    'access site reports',
  ));
  $this->noprivuser = $this
    ->drupalCreateUser(array(
    $this
      ->searchPerm($this->envinfo1),
    'access content',
    'search content',
  ));
  $this->privuser = $this
    ->drupalCreateUser(array(
    'access content',
    'search content',
    $this
      ->searchPerm($this->envinfo1),
    'view test private content',
  ));

  // Verify that the priv user can see the pages.
  $this
    ->drupalLogin($this->privuser);
  $this
    ->drupalGet('search_by_page_test_priv_page');
  $this
    ->assertText('Trees', "Private page can be seen.");
  $this
    ->drupalGet('search_by_page_test_pub_page');
  $this
    ->assertText('Trees', "Public page can be seen.");
  $this
    ->drupalGet('search_by_page_test_another_page');
  $this
    ->assertText('Trees', "Another page can be seen.");

  // Verify that the non-priv user can see only some of the pages.
  $this
    ->drupalLogin($this->noprivuser);
  $this
    ->drupalGet('search_by_page_test_priv_page');
  $this
    ->assertNoText('Trees', "Private page cannot be seen.");
  $this
    ->drupalGet('search_by_page_test_pub_page');
  $this
    ->assertText('Trees', "Public page can be seen.");
  $this
    ->drupalGet('search_by_page_test_another_page');
  $this
    ->assertText('Trees', "Another page can be seen.");
  $this
    ->drupalLogin($this->superuser);

  // Set up indexing of pages.
  $this
    ->drupalPostForm('admin/config/search/search_by_page/edit/' . $this->envid1, array(
    'button_label' => t('Search pages'),
  ), 'Save configuration');
  $path_add_path = 'admin/config/search/search_by_page/edit/' . $this->envid1 . '/paths/add';
  $this
    ->drupalPostForm($path_add_path, array(
    'path' => 'search_by_page_test_priv_page',
    'title' => t("Private page"),
    'type' => t('Page'),
    'snippet' => 'yes',
    'role' => $this
      ->getNewRoleID($this->privuser),
  ), 'Create new indexed page');
  $this
    ->drupalPostForm($path_add_path, array(
    'path' => 'search_by_page_test_pub_page',
    'title' => t("Public page"),
    'type' => t('Page'),
    'snippet' => 'yes',
    'role' => $this
      ->getNewRoleID($this->noprivuser),
  ), 'Create new indexed page');
  $this
    ->drupalPostForm($path_add_path, array(
    'path' => 'search_by_page_test_another_page',
    'title' => t("Public page"),
    'type' => t('Page'),
    'snippet' => t('Trees: Orange and Lemon'),
    'role' => $this
      ->getNewRoleID($this->noprivuser),
  ), 'Create new indexed page');
  $this
    ->drupalGet('search_by_page_test_queried_page', array(
    'query' => array(
      'a' => 3,
    ),
  ));
  $this
    ->assertText('three', 'First query page shows query text');
  $this
    ->drupalGet('search_by_page_test_queried_page', array(
    'query' => array(
      'a' => 4,
    ),
  ));
  $this
    ->assertText('four', 'Second query page shows query text');
  $this
    ->drupalPostForm($path_add_path, array(
    'path' => 'search_by_page_test_queried_page?a=3',
    'title' => t("Public page with query"),
    'type' => t('Page'),
    'snippet' => 'yes',
    'role' => $this
      ->getNewRoleID($this->noprivuser),
  ), 'Create new indexed page');
  $this
    ->drupalPostForm($path_add_path, array(
    'path' => 'search_by_page_test_queried_page?a=4',
    'title' => t("Public page with other query"),
    'type' => t('Page'),
    'snippet' => 'yes',
    'role' => $this
      ->getNewRoleID($this->noprivuser),
  ), 'Create new indexed page');
  $this
    ->drupalPostForm($path_add_path, array(
    'path' => 'search_by_page_test_exclude_page',
    'title' => t("Public page with excluded text"),
    'type' => t('Page'),
    'snippet' => 'yes',
    'role' => $this
      ->getNewRoleID($this->noprivuser),
  ), 'Create new indexed page');
  \Drupal::service('cache.bootstrap')
    ->invalidateAll();
  variable_initialize();
  $this
    ->doCronRun();
  $this
    ->drupalLogin($this->superuser);
  $this
    ->drupalGet('admin/reports/dblog');
  $this
    ->assertText(t('Cron run completed'), 'Log shows cron run completed');
}