From 4d9ce53bfbc9e74270212f8cedec961a9f6cceff Mon Sep 17 00:00:00 2001 From: webchick <drupal@webchick.net> Date: Fri, 30 Oct 2015 10:13:09 -0400 Subject: [PATCH] Issue #2590105 by webflo, phenaproxima, snehi, alexpott: Fix undefined variable in d6_field migration --- .../migrate/process/d6/FieldSettings.php | 4 +- .../migrate/process/d6/FieldSettingsTest.php | 72 +++++++++++++++++++ 2 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 core/modules/field/tests/src/Unit/Plugin/migrate/process/d6/FieldSettingsTest.php diff --git a/core/modules/field/src/Plugin/migrate/process/d6/FieldSettings.php b/core/modules/field/src/Plugin/migrate/process/d6/FieldSettings.php index 01ef472ab72f..96be489e1d96 100644 --- a/core/modules/field/src/Plugin/migrate/process/d6/FieldSettings.php +++ b/core/modules/field/src/Plugin/migrate/process/d6/FieldSettings.php @@ -44,6 +44,7 @@ public function transform($value, MigrateExecutableInterface $migrate_executable public function getSettings($field_type, $global_settings) { $max_length = isset($global_settings['max_length']) ? $global_settings['max_length'] : ''; $max_length = empty($max_length) ? 255 : $max_length; + $allowed_values = []; if (isset($global_settings['allowed_values'])) { $list = explode("\n", $global_settings['allowed_values']); $list = array_map('trim', $list); @@ -62,9 +63,6 @@ public function getSettings($field_type, $global_settings) { $allowed_values = $list; } } - else { - $allowed_values = ''; - } $settings = array( 'text' => array( diff --git a/core/modules/field/tests/src/Unit/Plugin/migrate/process/d6/FieldSettingsTest.php b/core/modules/field/tests/src/Unit/Plugin/migrate/process/d6/FieldSettingsTest.php new file mode 100644 index 000000000000..c0a12dd61df5 --- /dev/null +++ b/core/modules/field/tests/src/Unit/Plugin/migrate/process/d6/FieldSettingsTest.php @@ -0,0 +1,72 @@ +<?php + +/** + * @file + * Contains \Drupal\Tests\field\Unit\Plugin\migrate\process\d6\FieldSettingsTest. + */ + +namespace Drupal\Tests\field\Unit\Plugin\migrate\process\d6; + +use Drupal\field\Plugin\migrate\process\d6\FieldSettings; +use Drupal\migrate\Entity\MigrationInterface; +use Drupal\migrate\MigrateExecutableInterface; +use Drupal\migrate\Row; +use Drupal\Tests\UnitTestCase; + +/** + * @coversDefaultClass \Drupal\field\Plugin\migrate\process\d6\FieldSettings + * @group field + */ +class FieldSettingsTest extends UnitTestCase { + + /** + * @covers ::getSettings + * + * @dataProvider getSettingsProvider + */ + public function testGetSettings($field_type, $field_settings, $allowed_values) { + $migration = $this->getMock(MigrationInterface::class); + $plugin = new FieldSettings([], 'd6_field_settings', [], $migration); + + $executable = $this->getMock(MigrateExecutableInterface::class); + $row = $this->getMockBuilder(Row::class) + ->disableOriginalConstructor() + ->getMock(); + + $result = $plugin->transform([$field_type, $field_settings], $executable, $row, 'foo'); + $this->assertSame($allowed_values, $result['allowed_values']); + } + + /** + * Provides field settings for testGetSettings(). + */ + public function getSettingsProvider() { + return array( + array( + 'list_integer', + array('allowed_values' => "1|One\n2|Two\n3"), + array( + '1' => 'One', + '2' => 'Two', + '3' => '3', + ), + ), + array( + 'list_string', + array('allowed_values' => NULL), + array(), + ), + array( + 'list_float', + array('allowed_values' => ""), + array(), + ), + array( + 'boolean', + array(), + array(), + ), + ); + } + +} -- GitLab