diff --git a/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php b/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php index e70fadacb1..3fdd385d1e 100644 --- a/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php +++ b/core/modules/text/src/Plugin/Field/FieldType/TextItemBase.php @@ -80,7 +80,8 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin } else { // Textfield handling. - $value = substr($random->sentences(mt_rand(1, $settings['max_length'] / 3), FALSE), 0, $settings['max_length']); + $max = ceil($settings['max_length'] / 3); + $value = substr($random->sentences(mt_rand(1, $max), FALSE), 0, $settings['max_length']); } $values = [ diff --git a/core/modules/text/tests/src/Unit/TextItemTest.php b/core/modules/text/tests/src/Unit/TextItemTest.php new file mode 100644 index 0000000000..c4f69ac00d --- /dev/null +++ b/core/modules/text/tests/src/Unit/TextItemTest.php @@ -0,0 +1,60 @@ +getMockBuilder('Drupal\Core\Cache\CacheBackendInterface') + ->disableOriginalConstructor()->getMock(), + $this->getMockBuilder('Drupal\Core\Extension\ModuleHandlerInterface') + ->disableOriginalConstructor()->getMock(), + $this->getMockBuilder('Drupal\Core\TypedData\TypedDataManagerInterface') + ->disableOriginalConstructor()->getMock(), + ); + + // Set up a config factory for the filter settings fallback format. + $config_factory = $this->getConfigFactoryStub([ + 'filter.settings' => ['fallback_format' => 'plain_text'], + ]); + $container = new ContainerBuilder(); + $container->set('plugin.manager.field.field_type', $plugin_manager); + $container->set('config.factory', $config_factory); + \Drupal::setContainer($container); + + } + + /** + * Tests creation of sample values. + * + * @covers ::generateSampleValue + */ + public function testTextFieldSampleValue() { + + $field_definition = BaseFieldDefinition::create('text') + ->setSetting('max_length', 1); + + $sample_value = TextItemBase::generateSampleValue($field_definition); + + $this->assertEquals(1, strlen($sample_value['value']), 'Sample value is correct'); + + } + +}