You are here

function ToolkitTestBase::assertToolkitOperationsCalled in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/system/src/Tests/Image/ToolkitTestBase.php \Drupal\system\Tests\Image\ToolkitTestBase::assertToolkitOperationsCalled()

Assert that all of the specified image toolkit operations were called exactly once once, other values result in failure.

Parameters

$expected: Array with string containing with the operation name, e.g. 'load', 'save', 'crop', etc.

12 calls to ToolkitTestBase::assertToolkitOperationsCalled()
ImageEffectsTest::testConvertEffect in core/modules/image/src/Tests/ImageEffectsTest.php
Tests the ConvertImageEffect plugin.
ImageEffectsTest::testCropEffect in core/modules/image/src/Tests/ImageEffectsTest.php
Test the image_crop_effect() function.
ImageEffectsTest::testDesaturateEffect in core/modules/image/src/Tests/ImageEffectsTest.php
Test the image_desaturate_effect() function.
ImageEffectsTest::testResizeEffect in core/modules/image/src/Tests/ImageEffectsTest.php
Test the image_resize_effect() function.
ImageEffectsTest::testRotateEffect in core/modules/image/src/Tests/ImageEffectsTest.php
Test the image_rotate_effect() function.

... See full list

File

core/modules/system/src/Tests/Image/ToolkitTestBase.php, line 83
Contains \Drupal\system\Tests\Image\ToolkitTestBase.

Class

ToolkitTestBase
Base class for image manipulation testing.

Namespace

Drupal\system\Tests\Image

Code

function assertToolkitOperationsCalled(array $expected) {

  // If one of the image operations is expected, apply should be expected as
  // well.
  $operations = array(
    'resize',
    'rotate',
    'crop',
    'desaturate',
    'create_new',
    'scale',
    'scale_and_crop',
    'my_operation',
    'convert',
  );
  if (count(array_intersect($expected, $operations)) > 0 && !in_array('apply', $expected)) {
    $expected[] = 'apply';
  }

  // Determine which operations were called.
  $actual = array_keys(array_filter($this
    ->imageTestGetAllCalls()));

  // Determine if there were any expected that were not called.
  $uncalled = array_diff($expected, $actual);
  if (count($uncalled)) {
    $this
      ->assertTrue(FALSE, SafeMarkup::format('Expected operations %expected to be called but %uncalled was not called.', array(
      '%expected' => implode(', ', $expected),
      '%uncalled' => implode(', ', $uncalled),
    )));
  }
  else {
    $this
      ->assertTrue(TRUE, SafeMarkup::format('All the expected operations were called: %expected', array(
      '%expected' => implode(', ', $expected),
    )));
  }

  // Determine if there were any unexpected calls.
  // If all unexpected calls are operations and apply was expected, we do not
  // count it as an error.
  $unexpected = array_diff($actual, $expected);
  if (count($unexpected) && (!in_array('apply', $expected) || count(array_intersect($unexpected, $operations)) !== count($unexpected))) {
    $this
      ->assertTrue(FALSE, SafeMarkup::format('Unexpected operations were called: %unexpected.', array(
      '%unexpected' => implode(', ', $unexpected),
    )));
  }
  else {
    $this
      ->assertTrue(TRUE, 'No unexpected operations were called.');
  }
}