function FormTest::testSelectSorting

Tests sorting and not sorting of options in a select element.

File

core/modules/system/tests/src/Functional/Form/FormTest.php, line 528

Class

FormTest
Tests various form element validation mechanisms.

Namespace

Drupal\Tests\system\Functional\Form

Code

public function testSelectSorting() : void {
  $this->drupalGet('form-test/select');
  // Verify the order of the select options.
  $this->validateSelectSorting('unsorted', [
    'uso_first_element',
    'uso_second',
    'uso_zz_group',
    'uso_gc',
    'uso_ga',
    'uso_gb',
    'uso_yy_group',
    'uso_ge',
    'uso_gd',
    'uso_gf',
    'uso_xx_group',
    'uso_gz',
    'uso_gi',
    'uso_gh',
    'uso_d',
    'uso_c',
    'uso_b',
    'uso_a',
  ]);
  $this->validateSelectSorting('sorted', [
    'sso_a',
    'sso_d',
    'sso_first_element',
    'sso_b',
    'sso_c',
    'sso_second',
    'sso_xx_group',
    'sso_gz',
    'sso_gh',
    'sso_gi',
    'sso_yy_group',
    'sso_ge',
    'sso_gd',
    'sso_gf',
    'sso_zz_group',
    'sso_ga',
    'sso_gb',
    'sso_gc',
  ]);
  $this->validateSelectSorting('sorted_none', [
    'sno_empty',
    'sno_first_element',
    'sno_second',
    'sno_zz_group',
    'sno_ga',
    'sno_gb',
    'sno_gc',
    'sno_a',
    'sno_d',
    'sno_b',
    'sno_c',
    'sno_xx_group',
    'sno_gz',
    'sno_gi',
    'sno_gh',
    'sno_yy_group',
    'sno_ge',
    'sno_gd',
    'sno_gf',
  ]);
  $this->validateSelectSorting('sorted_none_no_start', [
    'snn_empty',
    'snn_a',
    'snn_d',
    'snn_first_element',
    'snn_b',
    'snn_c',
    'snn_second',
    'snn_xx_group',
    'snn_gz',
    'snn_gi',
    'snn_gh',
    'snn_yy_group',
    'snn_ge',
    'snn_gd',
    'snn_gf',
    'snn_zz_group',
    'snn_ga',
    'snn_gb',
    'snn_gc',
  ]);
  // Verify that #sort_order and #sort_start are not in the page.
  $this->assertSession()
    ->responseNotContains('#sort_order');
  $this->assertSession()
    ->responseNotContains('#sort_start');
}

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