public function MembershipSubmissionTest::testSubmitMembershipQueryParams in Webform CiviCRM Integration 8.5
Test submitting a Membership using query params
File
- tests/
src/ FunctionalJavascript/ MembershipSubmissionTest.php, line 182
Class
- MembershipSubmissionTest
- Tests submitting a Webform with CiviCRM: Contact with Membership (Free)
Namespace
Drupal\Tests\webform_civicrm\FunctionalJavascriptCode
public function testSubmitMembershipQueryParams() {
$this
->createMembershipType(1, TRUE, 'Basic');
$this
->createMembershipType(1, TRUE, 'Basic Plus');
$this
->drupalLogin($this->rootUser);
$this
->drupalGet(Url::fromRoute('entity.webform.civicrm', [
'webform' => $this->webform
->id(),
]));
$this
->enableCivicrmOnWebform();
// Configure Membership tab.
$this
->getSession()
->getPage()
->clickLink('Memberships');
$this
->getSession()
->getPage()
->selectFieldOption('membership_1_number_of_membership', 1);
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->getSession()
->getPage()
->selectFieldOption('civicrm_1_membership_1_membership_membership_type_id', '- User Select -');
$this
->htmlOutput();
$this
->saveCiviCRMSettings();
$this
->drupalGet($this->webform
->toUrl('edit-form'));
$this
->assertSession()
->waitForField('CiviCRM Options');
// Add the Default -> [current-page:query:membership]
$membershipElementEdit = $this
->assertSession()
->elementExists('css', '[data-drupal-selector="edit-webform-ui-elements-civicrm-1-membership-1-membership-membership-type-id-operations"] a.webform-ajax-link');
$membershipElementEdit
->click();
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->getSession()
->getPage()
->checkField('properties[extra][aslist]');
$this
->assertSession()
->checkboxChecked('properties[extra][aslist]');
$this
->htmlOutput();
$this
->getSession()
->getPage()
->clickLink('Advanced');
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->htmlOutput();
$fieldset = $this
->assertSession()
->elementExists('css', '[data-drupal-selector="edit-default"]');
$fieldset
->click();
$this
->getSession()
->getPage()
->fillField('Default value', '[current-page:query:membership]');
$this
->getSession()
->getPage()
->pressButton('Save');
$this
->drupalLogout();
$this
->drupalGet($this->webform
->toUrl('canonical', [
'query' => [
'membership' => 2,
],
]));
$this
->htmlOutput();
// ToDo ->
$this
->assertPageNoErrorMessages();
$this
->assertSession()
->waitForField('First Name');
$this
->getSession()
->getPage()
->fillField('First Name', 'Frederick');
$this
->getSession()
->getPage()
->fillField('Last Name', 'Pabst');
$this
->assertSession()
->pageTextContains('Basic Plus');
$this
->getSession()
->getPage()
->pressButton('Submit');
$this
->htmlOutput();
// ToDo ->
$this
->assertPageNoErrorMessages();
$this
->assertSession()
->pageTextContains('New submission added to CiviCRM Webform Test.');
$api_result = \Drupal::service('webform_civicrm.utils')
->wf_civicrm_api('membership', 'get', [
'sequential' => 1,
]);
$this
->assertEquals(1, $api_result['count']);
$membership = reset($api_result['values']);
$this
->assertEquals('Basic Plus', $membership['membership_name']);
$this
->assertEquals('1', $membership['status_id']);
}