View source
<?php
namespace Drupal\image\Tests\Migrate\d7;
use Drupal\image\Entity\ImageStyle;
use Drupal\image\ImageStyleInterface;
use Drupal\image\ImageEffectBase;
use Drupal\migrate_drupal\Tests\d7\MigrateDrupal7TestBase;
class MigrateImageStylesTest extends MigrateDrupal7TestBase {
public static $modules = array(
'image',
);
protected function setUp() {
parent::setUp();
$this
->installConfig(static::$modules);
$this
->executeMigration('d7_image_styles');
}
public function testImageStylesMigration() {
$this
->assertEntity('custom_image_style_1', "Custom image style 1", [
'image_scale_and_crop',
'image_desaturate',
], [
[
'width' => 55,
'height' => 55,
],
[],
]);
$this
->assertEntity('custom_image_style_2', "Custom image style 2", [
'image_resize',
'image_rotate',
], [
[
'width' => 55,
'height' => 100,
],
[
'degrees' => 45,
'bgcolor' => '#FFFFFF',
'random' => false,
],
]);
$this
->assertEntity('custom_image_style_3', "Custom image style 3", [
'image_scale',
'image_crop',
], [
[
'width' => 150,
'height' => NULL,
'upscale' => false,
],
[
'width' => 50,
'height' => 50,
'anchor' => 'left-top',
],
]);
}
protected function assertEntity($id, $label, array $expected_effect_plugins, array $expected_effect_config) {
$style = ImageStyle::load($id);
$this
->assertTrue($style instanceof ImageStyleInterface);
$this
->assertIdentical($id, $style
->id());
$this
->assertIdentical($label, $style
->label());
$effects = $style
->getEffects();
$this
->assertIdentical(count($effects), count($expected_effect_plugins));
$index = 0;
foreach ($effects as $effect) {
$this
->assertTrue($effect instanceof ImageEffectBase);
$this
->assertIdentical($expected_effect_plugins[$index], $effect
->getPluginId());
$config = $effect
->getConfiguration();
$this
->assertIdentical($expected_effect_config[$index], $config['data']);
$index++;
}
}
}