You are here

public function CaseSubmissionTest::testCaseSubmission in Webform CiviCRM Integration 8.5

Test Case Submission.

File

tests/src/FunctionalJavascript/CaseSubmissionTest.php, line 17

Class

CaseSubmissionTest
Tests submitting a Webform with CiviCRM: Case

Namespace

Drupal\Tests\webform_civicrm\FunctionalJavascript

Code

public function testCaseSubmission() {
  $this
    ->drupalLogin($this->rootUser);
  $this
    ->enableComponent('CiviCase');
  $this->_caseContact = $this
    ->createIndividual();
  $this
    ->drupalGet(Url::fromRoute('entity.webform.civicrm', [
    'webform' => $this->webform
      ->id(),
  ]));
  $this
    ->enableCivicrmOnWebform();

  // Configure Case tab.
  $this
    ->getSession()
    ->getPage()
    ->clickLink('Cases');
  $this
    ->getSession()
    ->getPage()
    ->selectFieldOption('case_number_of_case', 1);
  $this
    ->assertSession()
    ->assertWaitOnAjaxRequest();
  $this
    ->getSession()
    ->getPage()
    ->selectFieldOption('Update Existing Case', 'Ongoing');
  $this
    ->getSession()
    ->getPage()
    ->selectFieldOption('Case Type', 'Housing Support');
  $this
    ->getSession()
    ->getPage()
    ->checkField('Case Subject');
  $this
    ->saveCiviCRMSettings();

  //Edit contact element and remove default section.
  $this
    ->drupalGet($this->webform
    ->toUrl('edit-form'));
  $editContact = [
    'selector' => "edit-webform-ui-elements-civicrm-1-contact-1-contact-existing-operations",
    'widget' => 'Autocomplete',
    'default' => '- None -',
  ];
  $this
    ->editContactElement($editContact);
  $caseSubject = "Test Case" . substr(sha1(rand()), 0, 7);
  $this
    ->submitCaseAndVerifyResult($caseSubject);
  $caseSubject = "Update Test Case" . substr(sha1(rand()), 0, 7);
  $this
    ->submitCaseAndVerifyResult($caseSubject);
}