Issue #2809521 by martin107, Lendude, vaplas: Convert AJAX part of \Drupal\system\Tests\Ajax\AjaxInGroupTest to WebDriverTestBase
parent
9b4ce9a01b
commit
7e55e67b01
|
@ -1,33 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Drupal\system\Tests\Ajax;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests that form elements in groups work correctly with AJAX.
|
|
||||||
*
|
|
||||||
* @group Ajax
|
|
||||||
*/
|
|
||||||
class AjaxInGroupTest extends AjaxTestBase {
|
|
||||||
|
|
||||||
protected function setUp() {
|
|
||||||
parent::setUp();
|
|
||||||
|
|
||||||
$this->drupalLogin($this->drupalCreateUser(['access content']));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Submits forms with select and checkbox elements via Ajax.
|
|
||||||
*/
|
|
||||||
public function testSimpleAjaxFormValue() {
|
|
||||||
$this->drupalGet('/ajax_forms_test_get_form');
|
|
||||||
$this->assertText('Test group');
|
|
||||||
$this->assertText('AJAX checkbox in a group');
|
|
||||||
|
|
||||||
$this->drupalPostAjaxForm(NULL, ['checkbox_in_group' => TRUE], 'checkbox_in_group');
|
|
||||||
$this->assertText('Test group');
|
|
||||||
$this->assertText('AJAX checkbox in a group');
|
|
||||||
$this->assertText('AJAX checkbox in a nested group');
|
|
||||||
$this->assertText('Another AJAX checkbox in a nested group');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Drupal\FunctionalJavascriptTests\Ajax;
|
||||||
|
|
||||||
|
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that form elements in groups work correctly with AJAX.
|
||||||
|
*
|
||||||
|
* @group Ajax
|
||||||
|
*/
|
||||||
|
class AjaxInGroupTest extends WebDriverTestBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected static $modules = ['ajax_forms_test'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function setUp() {
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->drupalLogin($this->drupalCreateUser(['access content']));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Submits forms with select and checkbox elements via Ajax.
|
||||||
|
*/
|
||||||
|
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 a 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');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue