You are here

public function DoubleFieldFieldTestCase::testInstanceSettings in Double Field 7.2

Test widgets in field admin UI.

File

tests/double_field_field.test, line 31
Tests for Double Field schema and field settings.

Class

DoubleFieldFieldTestCase
Test case for Double field schema.

Code

public function testInstanceSettings() {

  // Delete the node to unlock field settings form.
  node_delete(1);

  // Iterate through all field types.
  foreach (DoubleFieldField::getAllFieldTypes() as $field_type => $field_label) {
    $instance = new DoubleFieldField($field_type);

    // Test widget form.
    $input = $instance
      ->getSettingsFormInput($this->field_name);
    $this
      ->drupalPost($this->field_settings_page, $input, t('Save settings'));

    // Test field settings form.
    $this
      ->drupalGet($this->field_settings_page);
    $validators = $instance
      ->getSettingsFormValidators();
    $this
      ->validate($validators, 'Field settings form is valid');

    // Check form elements states.
    $drupal_settings = $this
      ->drupalGetSettings();
    foreach (array(
      'first',
      'second',
    ) as $subfield) {
      $result[] = $drupal_settings['states']["#edit-field-settings-{$subfield}-maxlength"]['visible'][":input[name='field[settings][{$subfield}][type]']"]['value'] == 'varchar';
      $result[] = $drupal_settings['states']["#edit-field-settings-{$subfield}-size"]['visible'][":input[name='field[settings][{$subfield}][type]']"][0]['value'] == 'int';
      $result[] = $drupal_settings['states']["#edit-field-settings-{$subfield}-size"]['visible'][":input[name='field[settings][{$subfield}][type]']"][1]['value'] == 'float';
      $result[] = $drupal_settings['states']["#edit-field-settings-{$subfield}-precision"]['visible'][":input[name='field[settings][{$subfield}][type]']"]['value'] == 'decimal';
      $result[] = $drupal_settings['states']["#edit-field-settings-{$subfield}-scale"]['visible'][":input[name='field[settings][{$subfield}][type]']"]['value'] == 'decimal';
    }
    $this
      ->assertTrue(count($result) == count(array_filter($result)), 'Form states is correct');
  }
}