You are here

protected function ViewsUserOutputTest::setUp in Workbench Access 8

Overrides BrowserTestBase::setUp

File

tests/src/Functional/ViewsUserOutputTest.php, line 95

Class

ViewsUserOutputTest
Defines a class for testing workbench access views.

Namespace

Drupal\Tests\workbench_access\Functional

Code

protected function setUp() {
  parent::setUp();

  // Create some sections and some nodes in them.
  $sections = [
    'Some section',
    'Another section',
    'More sections',
  ];
  foreach ($sections as $section) {
    $this->terms[$section] = Term::create([
      'vid' => 'editorial_section',
      'name' => $section . ' term',
    ]);
    $this->terms[$section]
      ->save();
    foreach ([
      ' node 1',
      ' node 2',
    ] as $stub) {
      $title = $section . $stub;
      $this->nodes[$title] = Node::create([
        'type' => 'article',
        'title' => $title,
        'status' => 1,
        'field_workbench_access' => $this->terms[$section],
      ]);
      $this->nodes[$title]
        ->save();
    }
  }

  // Create a user who can access content etc.
  $permissions = [
    'create article content',
    'edit any article content',
    'access content',
    'delete any article content',
    'administer nodes',
    'access user profiles',
    'use workbench access',
  ];
  $this->user = $this
    ->createUser($permissions);
  $this->user
    ->save();
  $this->userStorage = \Drupal::service('workbench_access.user_section_storage');
  $this->scheme = AccessScheme::load('editorial_section');

  // Store taxonomy schemes.
  $values = array_values(array_map(function (TermInterface $term) {
    return $term
      ->id();
  }, $this->terms));
  $this->userStorage
    ->addUser($this->scheme, $this->user, $values);
  $this->user2 = $this
    ->createUser($permissions);
  $this->user2
    ->save();
  $this->userStorage
    ->addUser($this->scheme, $this->user2, $values);
}