You are here

public function DomainContentActionsTest::testDomainContentActions in Domain Access 8

Tests domain content actions.

File

domain_content/tests/src/Functional/DomainContentActionsTest.php, line 15

Class

DomainContentActionsTest
Tests the assign / unassign actions on a Domain Content view.

Namespace

Drupal\Tests\domain_content\Functional

Code

public function testDomainContentActions() {

  // This user should be able to see everything.
  $this->admin_user = $this
    ->drupalCreateUser([
    'administer domains',
    'access administration pages',
    'access domain content',
    'access domain content editors',
    'publish to any domain',
    'assign editors to any domain',
    // Edit access is required. This is fastest.
    'bypass node access',
  ]);
  $this
    ->drupalLogin($this->admin_user);

  // Create users and content.
  $this
    ->createDomainContent();
  $url = 'admin/content/domain-content/all_affiliates';
  $this
    ->drupalGet($url);

  // All the content should be on domain one.
  $old_domain = $this->domains['one_example_com'];
  $new_domain = $this->domains['two_example_com'];

  // Domains are linked in the output.
  $this
    ->assertRaw($old_domain
    ->label() . '</a>');
  $this
    ->assertNoRaw($new_domain
    ->label() . '</a>');

  // Add some content to domain two.
  $edit = [
    'node_bulk_form[0]' => TRUE,
    'node_bulk_form[1]' => TRUE,
    'action' => 'domain_access_add_action.two_example_com',
  ];
  $this
    ->submitForm($edit, 'Apply to selected items');

  // Both domains should be present.
  $this
    ->assertRaw($old_domain
    ->label() . '</a>');
  $this
    ->assertRaw($new_domain
    ->label() . '</a>');

  // Remove some content from domain two.
  $edit = [
    'node_bulk_form[0]' => TRUE,
    'node_bulk_form[1]' => TRUE,
    'action' => 'domain_access_remove_action.two_example_com',
  ];
  $this
    ->submitForm($edit, 'Apply to selected items');

  // Domains are linked properly in the output.
  $this
    ->assertRaw($old_domain
    ->label() . '</a>');
  $this
    ->assertNoRaw($new_domain
    ->label() . '</a>');

  // There should be five elements.
  $this
    ->assertRaw('node_bulk_form[4]');

  // Remove one from all affiliates.
  $edit = [
    'node_bulk_form[0]' => TRUE,
    'action' => 'domain_access_none_action',
  ];
  $this
    ->submitForm($edit, 'Apply to selected items');

  // There should be four elements.
  $this
    ->assertRaw('node_bulk_form[3]');
  $this
    ->assertNoRaw('node_bulk_form[4]');
}