Chris@17: drupalLogin($this->drupalCreateUser(['access content'])); Chris@17: } Chris@17: Chris@17: /** Chris@17: * Submits forms with select and checkbox elements via Ajax. Chris@17: */ Chris@17: public function testSimpleAjaxFormValue() { Chris@17: $this->drupalGet('/ajax_forms_test_get_form'); Chris@17: Chris@17: $assert_session = $this->assertSession(); Chris@17: $assert_session->responseContains('Test group'); Chris@17: $assert_session->responseContains('AJAX checkbox in a group'); Chris@17: Chris@17: $session = $this->getSession(); Chris@17: $checkbox_original = $session->getPage()->findField('checkbox_in_group'); Chris@17: $this->assertNotNull($checkbox_original, 'The checkbox_in_group is on the page.'); Chris@17: $original_id = $checkbox_original->getAttribute('id'); Chris@17: Chris@17: // Triggers a AJAX request/response. Chris@17: $checkbox_original->check(); Chris@17: Chris@17: // The response contains a new nested "test group" form element, similar Chris@17: // to the one already in the DOM except for a change in the form build id. Chris@17: $checkbox_new = $assert_session->waitForElement('xpath', "//input[@name='checkbox_in_group' and not(@id='$original_id')]"); Chris@17: $this->assertNotNull($checkbox_new, 'DOM update: clicking the checkbox refreshed the checkbox_in_group structure'); Chris@17: Chris@17: $assert_session->responseContains('Test group'); Chris@17: $assert_session->responseContains('AJAX checkbox in a group'); Chris@17: $assert_session->responseContains('AJAX checkbox in a nested group'); Chris@17: $assert_session->responseContains('Another AJAX checkbox in a nested group'); Chris@17: } Chris@17: Chris@17: }