| 1 number_settings.test | public NumberFieldSettingsTestCase::testNumberIntegerFieldSettings() | 
Test number_integer field settings.
File
- core/modules/ field/ modules/ number/ tests/ number_settings.test, line 125 
- Tests for number.module settings.
Class
- NumberFieldSettingsTestCase
- Tests for number field type settings.
Code
public function testNumberIntegerFieldSettings() {
  // Create a field with settings to validate.
  $field_name = 'field_' . backdrop_strtolower($this->randomName());
  $this->field = array(
    'field_name' => $field_name,
    'type' => 'number_integer',
  );
  field_create_field($this->field);
  $this->instance = array(
    'field_name' => $field_name,
    'entity_type' => 'node',
    'bundle' => 'post',
    'widget' => array(
      'type' => 'number',
    ),
    'display' => array(
      'default' => array(
        'type' => 'number_integer',
      ),
    ),
  );
  field_create_instance($this->instance);
  // Admin user sets various min/max values to an integer field.
  // Maximum value is smaller than Minimum.
  $edit = array(
    'instance[settings][min]' => 300,
    'instance[settings][max]' => 10,
  );
  $this->backdropGet("admin/structure/types/manage/post/fields/$field_name");
  $this->backdropPost(NULL, $edit, t('Save settings'));
  $this->assertRaw(format_string('%max must be greater than, or equal to, %min.', array(
    '%max' => 'Maximum',
    '%min' => 'Minimum',
  )), 'Integer field min setting greater max setting rejected');
  // Maximum and Minimum exceed the values a signed int(11) database field can
  // store.
  $min_db_integer = -2147483647;
  $max_db_integer = 2147483647;
  $min = -3000000000;
  $max = 4000000000;
  $edit = array(
    'instance[settings][min]' => -3000000000,
    'instance[settings][max]' => 4000000000,
  );
  $this->backdropGet("admin/structure/types/manage/post/fields/$field_name");
  $this->backdropPost(NULL, $edit, t('Save settings'));
  $this->assertRaw(format_string('%min is smaller than the smallest value the database can save. Choose a value equal to or higher than %db_min.', array(
    '%min' => $min,
    '%db_min' => $min_db_integer,
  )), 'Integer field min setting outside db range rejected');
  $this->assertRaw(format_string('%max is greater than the largest value the database can save. Choose a value equal to or lower than %db_max.', array(
    '%max' => $max,
    '%db_max' => $max_db_integer,
  )), 'Integer field max setting outside db range rejected');
  // Proper values should pass.
  $edit = array(
    'instance[settings][min]' => -2000000000,
    'instance[settings][max]' => 2000000000,
  );
  $this->backdropGet("admin/structure/types/manage/post/fields/$field_name");
  $this->backdropPost(NULL, $edit, t('Save settings'));
  $this->assertRaw(format_string('Saved %field_name configuration.', array(
    '%field_name' => $field_name,
  )), 'Proper integer field min/max settings saved');
}
