You are here

public function WebformSubmissionViewsTest::testSubmissionViews in Webform 8.5

Same name and namespace in other branches
  1. 6.x tests/src/Functional/WebformSubmissionViewsTest.php \Drupal\Tests\webform\Functional\WebformSubmissionViewsTest::testSubmissionViews()

Tests submissions views.

File

tests/src/Functional/WebformSubmissionViewsTest.php, line 73

Class

WebformSubmissionViewsTest
Tests for webform submission views integration.

Namespace

Drupal\Tests\webform\Functional

Code

public function testSubmissionViews() {
  $uid = $this->rootUser
    ->id();
  $this
    ->drupalLogin($this->rootUser);

  /**************************************************************************/

  // Global.

  /**************************************************************************/

  // Setup global submissions and user submissions views.
  \Drupal::configFactory()
    ->getEditable('webform.settings')
    ->set('settings.default_submission_views', [
    'global' => [
      'view' => 'webform_submissions:embed_default',
      'title' => 'Global submissions',
      'global_routes' => [
        'entity.webform_submission.collection',
      ],
      'webform_routes' => [],
      'node_routes' => [],
    ],
    'user' => [
      'view' => 'webform_submissions:embed_default',
      'title' => 'User submissions',
      'global_routes' => [
        'entity.webform_submission.user',
      ],
      'webform_routes' => [],
      'node_routes' => [],
    ],
  ])
    ->save();

  // Check global submissions entity list is replaced by the view.
  $this
    ->drupalGet('/admin/structure/webform/submissions/manage');
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_default');

  // Check user submissions entity list is replaced by the view.
  $this
    ->drupalGet("/user/{$uid}/submissions");
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_default');

  // Clear global submission views replace.
  \Drupal::configFactory()
    ->getEditable('webform.settings')
    ->set('settings.default_submission_views_replace.global_routes', [])
    ->save();

  // Check global submissions entity list is displayed.
  $this
    ->drupalGet('/admin/structure/webform/submissions/manage');
  $this
    ->assertRaw('webform-results-table');
  $this
    ->assertNoRaw('view-id-webform_submissions view-display-id-embed_default');

  // Check global submissions views is moved to dedicated path.
  $this
    ->clickLink('Global submissions');
  $this
    ->assertUrl('/admin/structure/webform/submissions/manage/global');
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_default');

  // Check user submissions entity list is displayed.
  $this
    ->drupalGet("/user/{$uid}/submissions");
  $this
    ->assertRaw('webform-results-table');
  $this
    ->assertNoRaw('view-id-webform_submissions view-display-id-embed_default');

  // Check user submissions entity list is moved to dedicated path.
  $this
    ->clickLink('User submissions');
  $this
    ->assertUrl("/user/{$uid}/submissions/user");
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_default');

  /**************************************************************************/

  // Webform.

  /**************************************************************************/

  // Post a submission and save a draft.
  $webform = Webform::load('test_submission_views');
  $this
    ->postSubmission($webform);
  $this
    ->postSubmission($webform);
  $this
    ->postSubmission($webform, [], 'Save Draft');
  $this
    ->postSubmission($webform, [], 'Save Draft');

  // Check webform submissions views.
  $this
    ->drupalGet('/admin/structure/webform/manage/test_submission_views/results/submissions');
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_administer');

  // Check webform user views.
  $this
    ->drupalGet('/webform/test_submission_views/drafts');
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_default');

  // Clear global webform views replace.
  \Drupal::configFactory()
    ->getEditable('webform.settings')
    ->set('settings.default_submission_views_replace.webform_routes', [])
    ->save();

  // Check webform submissions entity list is displayed.
  $this
    ->drupalGet('/admin/structure/webform/manage/test_submission_views/results/submissions');
  $this
    ->assertRaw('webform-results-table');
  $this
    ->assertNoRaw('view-id-webform_submissions view-display-id-embed_administer');

  // Check webform submissions views is moved to dedicated path.
  $this
    ->clickLink('Administer submissions');
  $this
    ->assertUrl('/admin/structure/webform/manage/test_submission_views/results/submissions/admin');
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_administer');

  // Check webform submissions entity list is displayed.
  $this
    ->drupalGet('/webform/test_submission_views/drafts');
  $this
    ->assertRaw('webform-results-table');
  $this
    ->assertNoRaw('view-id-webform_submissions view-display-id-embed_default');

  // Check webform submissions entity list is moved to dedicated path.
  $this
    ->clickLink('User submissions');
  $this
    ->assertUrl('/webform/test_submission_views/drafts/user');
  $this
    ->assertNoRaw('webform-results-table');
  $this
    ->assertRaw('view-id-webform_submissions view-display-id-embed_default');
}