View source
<?php
namespace Drupal\image_replace\Tests;
class ImageReplaceTestBase extends \DrupalWebTestCase {
protected function createImageField($name, $type_name, array $field_settings = array(), array $instance_settings = array(), array $widget_settings = array()) {
$field = array(
'field_name' => $name,
'type' => 'image',
'settings' => array(),
'cardinality' => !empty($field_settings['cardinality']) ? $field_settings['cardinality'] : 1,
);
$field['settings'] = array_merge($field['settings'], $field_settings);
field_create_field($field);
$instance = array(
'field_name' => $field['field_name'],
'entity_type' => 'node',
'label' => $name,
'bundle' => $type_name,
'required' => !empty($instance_settings['required']),
'settings' => array(
'default_image' => NULL,
),
'widget' => array(
'type' => 'image_image',
'settings' => array(),
),
);
$instance['settings'] = array_merge($instance['settings'], $instance_settings);
$instance['widget']['settings'] = array_merge($instance['widget']['settings'], $widget_settings);
return field_create_instance($instance);
}
protected function createImageStyle($name) {
$style = image_style_save(array(
'name' => $name,
'label' => $this
->randomString(),
));
$effect = array(
'name' => 'image_replace',
'data' => array(),
'isid' => $style['isid'],
);
image_effect_save($effect);
return $style;
}
protected function createTestFiles() {
$original_uri = file_unmanaged_copy(__DIR__ . '/fixtures/original.png', 'public://', FILE_EXISTS_RENAME);
$this
->assertTrue($this
->imageIsOriginal($original_uri));
$this
->assertFalse($this
->imageIsReplacement($original_uri));
$original_file = file_save((object) array(
'filename' => drupal_basename($original_uri),
'uri' => $original_uri,
'status' => FILE_STATUS_PERMANENT,
'filemime' => file_get_mimetype($original_uri),
));
$replacement_uri = file_unmanaged_copy(__DIR__ . '/fixtures/replacement.png', 'public://', FILE_EXISTS_RENAME);
$this
->assertTrue($this
->imageIsReplacement($replacement_uri));
$this
->assertFalse($this
->imageIsOriginal($replacement_uri));
$replacement_file = file_save((object) array(
'filename' => drupal_basename($replacement_uri),
'uri' => $replacement_uri,
'status' => FILE_STATUS_PERMANENT,
'filemime' => file_get_mimetype($replacement_uri),
));
return array(
$original_file,
$replacement_file,
);
}
protected function imageIsOriginal($image_uri) {
$expected_info = array(
'extension' => 'png',
'height' => 90,
'mime_type' => 'image/png',
'width' => 120,
);
$image_info = image_get_info($image_uri);
unset($image_info['file_size']);
ksort($image_info);
return $expected_info === $image_info;
}
protected function imageIsReplacement($image_uri) {
$expected_info = array(
'extension' => 'png',
'height' => 60,
'mime_type' => 'image/png',
'width' => 80,
);
$image_info = image_get_info($image_uri);
unset($image_info['file_size']);
ksort($image_info);
return $expected_info === $image_info;
}
}