diff --git a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php index 24dd450d85f2..1d18b3079208 100644 --- a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php +++ b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php @@ -100,27 +100,29 @@ class TextField extends CckFieldPluginBase { */ public function getFieldType(Row $row) { $widget_type = $row->getSourceProperty('widget_type'); + $settings = $row->getSourceProperty('global_settings'); if ($widget_type == 'text_textfield') { - $settings = $row->getSourceProperty('global_settings'); $field_type = $settings['text_processing'] ? 'text' : 'string'; if (empty($settings['max_length']) || $settings['max_length'] > 255) { $field_type .= '_long'; } return $field_type; } - else { - switch ($widget_type) { - case 'optionwidgets_buttons': - case 'optionwidgets_select': - return 'list_string'; - case 'optionwidgets_onoff': - return 'boolean'; - case 'text_textarea': - return 'text_long'; - default: - return parent::getFieldType($row); - } + + if ($widget_type == 'text_textarea') { + $field_type = $settings['text_processing'] ? 'text_long' : 'string_long'; + return $field_type; + } + + switch ($widget_type) { + case 'optionwidgets_buttons': + case 'optionwidgets_select': + return 'list_string'; + case 'optionwidgets_onoff': + return 'boolean'; + default: + return parent::getFieldType($row); } } diff --git a/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php b/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php index d7dfcc679eae..6d433eaf2d9a 100644 --- a/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php +++ b/core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php @@ -147,7 +147,12 @@ class TextFieldTest extends UnitTestCase { ['list_string', 'optionwidgets_buttons'], ['list_string', 'optionwidgets_select'], ['boolean', 'optionwidgets_onoff'], - ['text_long', 'text_textarea'], + ['text_long', 'text_textarea', [ + 'text_processing' => TRUE, + ]], + ['string_long', 'text_textarea', [ + 'text_processing' => FALSE, + ]], [NULL, 'undefined'], ]; } @@ -157,7 +162,8 @@ class TextFieldTest extends UnitTestCase { * @dataProvider getFieldTypeProvider */ public function testGetFieldType($expected_type, $widget_type, array $settings = []) { - $row = new Row(['widget_type' => $widget_type], ['widget_type' => []]); + $row = new Row(); + $row->setSourceProperty('widget_type', $widget_type); $row->setSourceProperty('global_settings', $settings); $this->assertSame($expected_type, $this->plugin->getFieldType($row)); }