You are here

function FormsElementsTableSelectFunctionalTest::testAdvancedSelect in SimpleTest 7

Test the #js_select property.

File

tests/form.test, line 228
Unit tests for the Drupal Form API.

Class

FormsElementsTableSelectFunctionalTest
Test the tableselect form element for expected behavior.

Code

function testAdvancedSelect() {

  // When #multiple = TRUE a Select all checkbox should be displayed by default.
  $this
    ->drupalGet('form_test/tableselect/advanced-select/multiple-true-default');
  $this
    ->assertFieldByXPath('//th[@class="select-all"]', NULL, t('Display a "Select all" checkbox by default when #multiple is TRUE.'));

  // When #js_select is set to FALSE, a "Select all" checkbox should not be displayed.
  $this
    ->drupalGet('form_test/tableselect/advanced-select/multiple-true-no-advanced-select');
  $this
    ->assertNoFieldByXPath('//th[@class="select-all"]', NULL, t('Do not display a "Select all" checkbox when #js_select is FALSE.'));

  // A "Select all" checkbox never makes sense when #multiple = FALSE, regardless of the value of #js_select.
  $this
    ->drupalGet('form_test/tableselect/advanced-select/multiple-false-default');
  $this
    ->assertNoFieldByXPath('//th[@class="select-all"]', NULL, t('Do not display a "Select all" checkbox when #multiple is FALSE.'));
  $this
    ->drupalGet('form_test/tableselect/advanced-select/multiple-false-advanced-select');
  $this
    ->assertNoFieldByXPath('//th[@class="select-all"]', NULL, t('Do not display a "Select all" checkbox when #multiple is FALSE, even when #js_select is TRUE.'));
}