public function WebformCardsAutoForwardJavaScriptTest::testAutoForward in Webform 8.5
Same name and namespace in other branches
- 6.x modules/webform_cards/tests/src/FunctionalJavaScript/WebformCardsAutoForwardJavaScriptTest.php \Drupal\Tests\webform_cards\FunctionalJavaScript\WebformCardsAutoForwardJavaScriptTest::testAutoForward()
Test webform cards auto-forward.
File
- modules/
webform_cards/ tests/ src/ FunctionalJavaScript/ WebformCardsAutoForwardJavaScriptTest.php, line 24
Class
- WebformCardsAutoForwardJavaScriptTest
- Tests for webform cards auto-forward.
Namespace
Drupal\Tests\webform_cards\FunctionalJavaScriptCode
public function testAutoForward() {
$session = $this
->getSession();
$page = $session
->getPage();
$assert_session = $this
->assertSession();
/**************************************************************************/
$this
->drupalGet('/webform/test_cards_auto_forward');
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="textfield"]');
// Check that enter in textfield auto-forwards.
$this
->executeJqueryEvent('#edit-textfield', 'keydown', [
'which' => 13,
]);
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="radios_example"]');
// Check that radios auto-forwards.
$session
->executeScript('jQuery("#edit-radios-one").mouseup();');
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="radios_other_example"]');
// Check that clicking radios other 'Other…' does NOT auto-forward.
$session
->executeScript('jQuery("#edit-radios-other-radios-other-").mouseup();');
$assert_session
->waitForElement('css', '#edit-radios-other-other');
$this
->assertCssSelect('.webform-card--active[data-webform-key="radios_other_example"]');
// Check that clicking radios other option does auto-forward.
$session
->executeScript('jQuery("#edit-radios-other-radios-one").mouseup();');
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="scale"]');
// Check that clicking scale does auto-forward.
$session
->executeScript('jQuery("#edit-scale-1").change();');
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="rating"]');
// Check that clicking rating does auto-forward.
$session
->executeScript("jQuery('#edit-rating').val('1').change()");
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="image_select"]');
// Check that image select does auto-forward.
$session
->executeScript("jQuery('#edit-image-select').val('kitten_1').change()");
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="radios_multiple"]');
// Check that clicking multiple radios does NOT auto-forward.
$session
->executeScript('jQuery("#edit-radios-multiple-1-one, #edit-radios-multiple-1-two").mouseup();');
// Check that the form can be submitted.
$page
->pressButton('edit-submit');
$assert_session
->pageTextContains('New submission added to Test: Webform: Cards auto-forward.');
/**************************************************************************/
$this
->drupalGet('/webform/test_cards_auto_forward_hide');
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="radios_example"]');
// Check that next button is hidden.
$this
->assertElementNotVisible('#edit-cards-prev');
$this
->assertElementNotVisible('#edit-cards-next');
// Move to the next page.
// Click the radio's label because radio is not visible.
$this
->click('label[for="edit-radios-one"]');
$assert_session
->waitForElement('css', '.webform-card--active[data-webform-key="radios_other_example"]');
// Go back to previous page.
$this
->assertElementVisible('#edit-cards-prev');
$this
->assertElementNotVisible('#edit-cards-next');
$page
->pressButton('edit-cards-prev');
$assert_session
->waitForElementVisible('css', '#edit-cards-next');
// Check that next button is now visible.
$this
->assertElementVisible('#edit-cards-next');
}