3 namespace Drupal\Tests\system\FunctionalJavascript\Form;
5 use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
8 * Tests the tableselect form element for expected behavior.
12 class ElementsTableSelectTest extends WebDriverTestBase {
17 protected static $modules = ['form_test'];
20 * Test the presence of ajax functionality for all options.
22 public function testAjax() {
23 // Test checkboxes (#multiple == TRUE).
24 $this->drupalGet('form_test/tableselect/multiple-true');
25 $session = $this->getSession();
26 $page = $session->getPage();
27 for ($i = 1; $i <= 3; $i++) {
29 $page->hasUncheckedField($row);
30 $page->checkField($row);
31 $this->assertSession()->assertWaitOnAjaxRequest();
32 // Check current row and previous rows are checked.
33 for ($j = 1; $j <= $i; $j++) {
34 $other_row = 'row' . $j;
35 $page->hasCheckedField($other_row);
39 // Test radios (#multiple == FALSE).
40 $this->drupalGet('form_test/tableselect/multiple-false');
41 for ($i = 1; $i <= 3; $i++) {
42 $row = 'input[value="row' . $i . '"]';
43 $page->hasUncheckedField($row);
45 $this->assertSession()->assertWaitOnAjaxRequest();
46 $page->hasCheckedField($row);
47 // Check other rows are not checked
48 for ($j = 1; $j <= 3; $j++) {
52 $other_row = 'edit-tableselect-row' . $j;
53 $page->hasUncheckedField($other_row);