public function AjaxInGroupTest::testSimpleAjaxFormValue in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxInGroupTest.php \Drupal\FunctionalJavascriptTests\Ajax\AjaxInGroupTest::testSimpleAjaxFormValue()
Submits forms with select and checkbox elements via Ajax.
File
- core/
tests/ Drupal/ FunctionalJavascriptTests/ Ajax/ AjaxInGroupTest.php, line 36
Class
- AjaxInGroupTest
- Tests that form elements in groups work correctly with AJAX.
Namespace
Drupal\FunctionalJavascriptTests\AjaxCode
public function testSimpleAjaxFormValue() {
$this
->drupalGet('/ajax_forms_test_get_form');
$assert_session = $this
->assertSession();
$assert_session
->responseContains('Test group');
$assert_session
->responseContains('AJAX checkbox in a group');
$session = $this
->getSession();
$checkbox_original = $session
->getPage()
->findField('checkbox_in_group');
$this
->assertNotNull($checkbox_original, 'The checkbox_in_group is on the page.');
$original_id = $checkbox_original
->getAttribute('id');
// Triggers an AJAX request/response.
$checkbox_original
->check();
// The response contains a new nested "test group" form element, similar
// to the one already in the DOM except for a change in the form build id.
$checkbox_new = $assert_session
->waitForElement('xpath', "//input[@name='checkbox_in_group' and not(@id='{$original_id}')]");
$this
->assertNotNull($checkbox_new, 'DOM update: clicking the checkbox refreshed the checkbox_in_group structure');
$assert_session
->responseContains('Test group');
$assert_session
->responseContains('AJAX checkbox in a group');
$assert_session
->responseContains('AJAX checkbox in a nested group');
$assert_session
->responseContains('Another AJAX checkbox in a nested group');
}