You are here

public function ConvolutionSharpenTest::testConvolutionSharpenEffect in Image Effects 8.2

Same name and namespace in other branches
  1. 8.3 tests/src/Functional/Effect/ConvolutionSharpenTest.php \Drupal\Tests\image_effects\Functional\Effect\ConvolutionSharpenTest::testConvolutionSharpenEffect()
  2. 8 tests/src/Functional/Effect/ConvolutionSharpenTest.php \Drupal\Tests\image_effects\Functional\Effect\ConvolutionSharpenTest::testConvolutionSharpenEffect()

Convolution sharpen effect test.

@dataProvider providerToolkits

Parameters

string $toolkit_id: The id of the toolkit to set up.

string $toolkit_config: The config object of the toolkit to set up.

array $toolkit_settings: The settings of the toolkit to set up.

File

tests/src/Functional/Effect/ConvolutionSharpenTest.php, line 36

Class

ConvolutionSharpenTest
Convolution sharpen effect test.

Namespace

Drupal\Tests\image_effects\Functional\Effect

Code

public function testConvolutionSharpenEffect($toolkit_id, $toolkit_config, array $toolkit_settings) {
  $this
    ->changeToolkit($toolkit_id, $toolkit_config, $toolkit_settings);
  $original_uri = $this
    ->getTestImageCopyUri('core/tests/fixtures/files/image-test.png');
  $derivative_uri = 'public://test-images/image-test-derived.png';

  // Add convolution sharpen effect to the test image style.
  $effect = [
    'id' => 'image_effects_convolution_sharpen',
    'data' => [
      'level' => 10,
    ],
  ];
  $uuid = $this
    ->addEffectToTestStyle($effect);

  // Apply the operation, via the effect.
  $image = $this->imageFactory
    ->get($original_uri);
  $effect = $this->testImageStyle
    ->getEffect($uuid);
  $effect
    ->applyEffect($image);

  // Toolkit-specific tests.
  switch ($this->imageFactory
    ->getToolkitId()) {
    case 'gd':

      // For the GD toolkit, just test derivative image is valid.
      $image
        ->save($derivative_uri);
      $derivative_image = $this->imageFactory
        ->get($derivative_uri);
      $this
        ->assertTrue($derivative_image
        ->isValid());
      break;
    case 'imagemagick':

      // For the Imagemagick toolkit, check the command line argument has
      // been formatted properly.
      $find = $image
        ->getToolkit()
        ->arguments()
        ->find('/^./', NULL, [
        'image_toolkit_operation' => 'convolution',
      ]);
      $arg = array_shift($find);
      $this
        ->assertEqual("-morphology Convolve '3x3:-0.1,-0.1,-0.1 -0.1,1.8,-0.1 -0.1,-0.1,-0.1'", $arg['argument']);
      break;
  }

  // Remove effect.
  $this
    ->removeEffectFromTestStyle($uuid);
}