function ToolkitTestBase::assertToolkitOperationsCalled
Same name in other branches
- 8.9.x core/modules/system/src/Tests/Image/ToolkitTestBase.php \Drupal\system\Tests\Image\ToolkitTestBase::assertToolkitOperationsCalled()
- 8.9.x core/tests/Drupal/FunctionalTests/Image/ToolkitTestBase.php \Drupal\FunctionalTests\Image\ToolkitTestBase::assertToolkitOperationsCalled()
Tests that only allowed image toolkit operations are called.
Parameters
$expected: Array with string containing with the operation name, e.g. 'load', 'save', 'crop', etc.
File
-
core/
tests/ Drupal/ FunctionalTests/ Image/ ToolkitTestBase.php, line 94
Class
- ToolkitTestBase
- Base class for image manipulation testing.
Namespace
Drupal\FunctionalTests\ImageCode
public function assertToolkitOperationsCalled(array $expected) {
// If one of the image operations is expected, apply should be expected as
// well.
$operations = [
'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, new FormattableMarkup('Expected operations %expected to be called but %uncalled was not called.', [
'%expected' => implode(', ', $expected),
'%uncalled' => implode(', ', $uncalled),
]));
}
else {
$this->assertTrue(TRUE, new FormattableMarkup('All the expected operations were called: %expected', [
'%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, new FormattableMarkup('Unexpected operations were called: %unexpected.', [
'%unexpected' => implode(', ', $unexpected),
]));
}
else {
$this->assertTrue(TRUE, 'No unexpected operations were called.');
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.