1.20.x common.test CommonBackdropRenderTestCase::testBackdropRenderFormElements()

Test rendering form elements without passing through form_builder().

File

modules/simpletest/tests/common.test, line 2058
Tests for common.inc functionality.

Class

CommonBackdropRenderTestCase
Tests for backdrop_render().

Code

function testBackdropRenderFormElements() {
  // Define a series of form elements.
  $element = array(
    '#type' => 'button',
    '#value' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'submit'));

  $element = array(
    '#type' => 'textfield',
    '#title' => $this->randomName(),
    '#value' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'text'));

  $element = array(
    '#type' => 'password',
    '#title' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'password'));

  $element = array(
    '#type' => 'textarea',
    '#title' => $this->randomName(),
    '#value' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//textarea');

  $element = array(
    '#type' => 'radio',
    '#title' => $this->randomName(),
    '#value' => FALSE,
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'radio'));

  $element = array(
    '#type' => 'checkbox',
    '#title' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'checkbox'));

  $element = array(
    '#type' => 'select',
    '#title' => $this->randomName(),
    '#options' => array(
      0 => $this->randomName(),
      1 => $this->randomName(),
    ),
  );
  $this->assertRenderedElement($element, '//select');

  $element = array(
    '#type' => 'file',
    '#title' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'file'));

  $element = array(
    '#type' => 'item',
    '#title' => $this->randomName(),
    '#markup' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//div[contains(@class, :class) and contains(., :markup)]/label[contains(., :label)]', array(
    ':class' => 'form-type-item',
    ':markup' => $element['#markup'],
    ':label' => $element['#title'],
  ));

  $element = array(
    '#type' => 'hidden',
    '#title' => $this->randomName(),
    '#value' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'hidden'));

  $element = array(
    '#type' => 'link',
    '#title' => $this->randomName(),
    '#href' => $this->randomName(),
    '#options' => array(
      'absolute' => TRUE,
    ),
  );
  $this->assertRenderedElement($element, '//a[@href=:href and contains(., :title)]', array(
    ':href' => url($element['#href'], array('absolute' => TRUE)),
    ':title' => $element['#title'],
  ));

  $element = array(
    '#type' => 'fieldset',
    '#title' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//fieldset/legend[contains(., :title)]', array(
    ':title' => $element['#title'],
  ));

  $element['item'] = array(
    '#type' => 'item',
    '#title' => $this->randomName(),
    '#markup' => $this->randomName(),
  );
  $this->assertRenderedElement($element, '//fieldset/div/div[contains(@class, :class) and contains(., :markup)]', array(
    ':class' => 'form-type-item',
    ':markup' => $element['item']['#markup'],
  ));
}