You are here

DomainContentActionsTest.php in Domain Access 8

File

domain_content/tests/src/Functional/DomainContentActionsTest.php
View source
<?php

namespace Drupal\Tests\domain_content\Functional;


/**
 * Tests the assign / unassign actions on a Domain Content view.
 *
 * @group domain_content
 */
class DomainContentActionsTest extends DomainContentTestBase {

  /**
   * Tests domain content actions.
   */
  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]');
  }

}

Classes

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