summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Hojtsy2017-04-25 15:20:32 (GMT)
committerGabor Hojtsy2017-04-25 15:20:32 (GMT)
commit4b8961ed15b7958ee72a08be8e0be96e8546c094 (patch)
tree2fdb0f6a5bf652203ba38a10def21cafe4efdd5e
parent882537ab5699f4a8e63dfb86d52f1679bb8c718a (diff)
Issue #2849861 by masipila, joelpittet, jeffwpetersen, xjm: D6 text area formatting settings not respected when migrating to D8
-rw-r--r--core/modules/text/src/Plugin/migrate/cckfield/TextField.php28
-rw-r--r--core/modules/text/tests/src/Unit/Migrate/TextFieldTest.php10
2 files changed, 23 insertions, 15 deletions
diff --git a/core/modules/text/src/Plugin/migrate/cckfield/TextField.php b/core/modules/text/src/Plugin/migrate/cckfield/TextField.php
index 24dd450..1d18b30 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 d7dfcc6..6d433ea 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));
}