summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwebchick2015-10-13 12:16:05 -0700
committerwebchick2015-10-13 12:16:05 -0700
commit5f5c6a488bdc19dc6301b6a4b7f55a54c3b03090 (patch)
tree13a91aa82d6761b8567111fa63f9355503b4934b
parent961bf74b9c3457d406b1278890abcd34b2162043 (diff)
Issue #2550755 by webflo, phenaproxima, zniki.ru: Migrate plugin for filefields should handle alt and title attributes
-rw-r--r--core/modules/file/src/Plugin/migrate/process/d6/CckFile.php7
-rw-r--r--core/modules/file/tests/src/Unit/Plugin/migrate/process/d6/CckFileTest.php56
2 files changed, 63 insertions, 0 deletions
diff --git a/core/modules/file/src/Plugin/migrate/process/d6/CckFile.php b/core/modules/file/src/Plugin/migrate/process/d6/CckFile.php
index e45800d..4270b79 100644
--- a/core/modules/file/src/Plugin/migrate/process/d6/CckFile.php
+++ b/core/modules/file/src/Plugin/migrate/process/d6/CckFile.php
@@ -23,6 +23,11 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
*/
class CckFile extends ProcessPluginBase implements ContainerFactoryPluginInterface {
+ /**
+ * The migration process plugin, configured for lookups in d6_file.
+ *
+ * @var \Drupal\migrate\Plugin\MigrateProcessInterface
+ */
protected $migrationPlugin;
/**
@@ -92,6 +97,8 @@ class CckFile extends ProcessPluginBase implements ContainerFactoryPluginInterfa
'target_id' => $fid,
'display' => $value['list'],
'description' => isset($options['description']) ? $options['description'] : '',
+ 'alt' => isset($options['alt']) ? $options['alt'] : '',
+ 'title' => isset($options['title']) ? $options['title'] : '',
];
}
else {
diff --git a/core/modules/file/tests/src/Unit/Plugin/migrate/process/d6/CckFileTest.php b/core/modules/file/tests/src/Unit/Plugin/migrate/process/d6/CckFileTest.php
new file mode 100644
index 0000000..b98d3a9
--- /dev/null
+++ b/core/modules/file/tests/src/Unit/Plugin/migrate/process/d6/CckFileTest.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\file\Unit\Plugin\migrate\process\d6\CckFileTest.
+ */
+
+namespace Drupal\Tests\file\Unit\Plugin\migrate\process\d6;
+
+use Drupal\file\Plugin\migrate\process\d6\CckFile;
+use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\MigrateExecutableInterface;
+use Drupal\migrate\Plugin\MigrateProcessInterface;
+use Drupal\migrate\Row;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @group file
+ */
+class CckFileTest extends UnitTestCase {
+
+ /**
+ * Tests that alt and title attributes are included in transformed values.
+ */
+ public function testTransformAltTitle() {
+ $executable = $this->prophesize(MigrateExecutableInterface::class)->reveal();
+ $row = $this->prophesize(Row::class)->reveal();
+ $migration = $this->prophesize(MigrationInterface::class)->reveal();
+
+ $migration_plugin = $this->prophesize(MigrateProcessInterface::class);
+ $migration_plugin->transform(1, $executable, $row, 'foo')->willReturn(1);
+
+ $plugin = new CckFile(array(), 'd6_cck_file', array(), $migration, $migration_plugin->reveal());
+
+ $options = array(
+ 'alt' => 'Foobaz',
+ 'title' => 'Wambooli',
+ );
+ $value = array(
+ 'fid' => 1,
+ 'list' => TRUE,
+ 'data' => serialize($options),
+ );
+
+ $transformed = $plugin->transform($value, $executable, $row, 'foo');
+ $expected = array(
+ 'target_id' => 1,
+ 'display' => TRUE,
+ 'description' => '',
+ 'alt' => 'Foobaz',
+ 'title' => 'Wambooli',
+ );
+ $this->assertSame($expected, $transformed);
+ }
+
+}