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');
}
}