ElementsTableSelectTest.php

Same filename in this branch
  1. 8.9.x core/modules/system/tests/src/Functional/Form/ElementsTableSelectTest.php
Same filename and directory in other branches
  1. 9 core/modules/system/tests/src/FunctionalJavascript/Form/ElementsTableSelectTest.php
  2. 9 core/modules/system/tests/src/Functional/Form/ElementsTableSelectTest.php
  3. 10 core/modules/system/tests/src/FunctionalJavascript/Form/ElementsTableSelectTest.php
  4. 10 core/modules/system/tests/src/Functional/Form/ElementsTableSelectTest.php
  5. 11.x core/modules/system/tests/src/FunctionalJavascript/Form/ElementsTableSelectTest.php
  6. 11.x core/modules/system/tests/src/Functional/Form/ElementsTableSelectTest.php

Namespace

Drupal\Tests\system\FunctionalJavascript\Form

File

core/modules/system/tests/src/FunctionalJavascript/Form/ElementsTableSelectTest.php

View source
<?php

namespace Drupal\Tests\system\FunctionalJavascript\Form;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests the tableselect form element for expected behavior.
 *
 * @group Form
 */
class ElementsTableSelectTest extends WebDriverTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'form_test',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * Test the presence of ajax functionality for all options.
     */
    public function testAjax() {
        // Test checkboxes (#multiple == TRUE).
        $this->drupalGet('form_test/tableselect/multiple-true');
        $session = $this->getSession();
        $page = $session->getPage();
        for ($i = 1; $i <= 3; $i++) {
            $row = 'row' . $i;
            $page->hasUncheckedField($row);
            $page->checkField($row);
            $this->assertSession()
                ->assertWaitOnAjaxRequest();
            // Check current row and previous rows are checked.
            for ($j = 1; $j <= $i; $j++) {
                $other_row = 'row' . $j;
                $page->hasCheckedField($other_row);
            }
        }
        // Test radios (#multiple == FALSE).
        $this->drupalGet('form_test/tableselect/multiple-false');
        for ($i = 1; $i <= 3; $i++) {
            $row = 'input[value="row' . $i . '"]';
            $page->hasUncheckedField($row);
            $this->click($row);
            $this->assertSession()
                ->assertWaitOnAjaxRequest();
            $page->hasCheckedField($row);
            // Check other rows are not checked
            for ($j = 1; $j <= 3; $j++) {
                if ($j == $i) {
                    continue;
                }
                $other_row = 'edit-tableselect-row' . $j;
                $page->hasUncheckedField($other_row);
            }
        }
    }

}

Classes

Title Deprecated Summary
ElementsTableSelectTest Tests the tableselect form element for expected behavior.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.