annotate core/tests/Drupal/FunctionalTests/Image/ToolkitTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\FunctionalTests\Image;
Chris@0 4
Chris@0 5 /**
Chris@0 6 * Tests image toolkit functions.
Chris@0 7 *
Chris@0 8 * @group Image
Chris@0 9 */
Chris@0 10 class ToolkitTest extends ToolkitTestBase {
Chris@17 11
Chris@0 12 /**
Chris@0 13 * Check that ImageToolkitManager::getAvailableToolkits() only returns
Chris@0 14 * available toolkits.
Chris@0 15 */
Chris@0 16 public function testGetAvailableToolkits() {
Chris@0 17 $manager = $this->container->get('image.toolkit.manager');
Chris@0 18 $toolkits = $manager->getAvailableToolkits();
Chris@0 19 $this->assertTrue(isset($toolkits['test']), 'The working toolkit was returned.');
Chris@0 20 $this->assertTrue(isset($toolkits['test:derived_toolkit']), 'The derived toolkit was returned.');
Chris@0 21 $this->assertFalse(isset($toolkits['broken']), 'The toolkit marked unavailable was not returned');
Chris@0 22 $this->assertToolkitOperationsCalled([]);
Chris@0 23 }
Chris@0 24
Chris@0 25 /**
Chris@0 26 * Tests Image's methods.
Chris@0 27 */
Chris@0 28 public function testLoad() {
Chris@0 29 $image = $this->getImage();
Chris@0 30 $this->assertTrue(is_object($image), 'Returned an object.');
Chris@0 31 $this->assertEqual($image->getToolkitId(), 'test', 'Image had toolkit set.');
Chris@0 32 $this->assertToolkitOperationsCalled(['parseFile']);
Chris@0 33 }
Chris@0 34
Chris@0 35 /**
Chris@0 36 * Test the image_save() function.
Chris@0 37 */
Chris@0 38 public function testSave() {
Chris@0 39 $this->assertFalse($this->image->save(), 'Function returned the expected value.');
Chris@0 40 $this->assertToolkitOperationsCalled(['save']);
Chris@0 41 }
Chris@0 42
Chris@0 43 /**
Chris@0 44 * Test the image_apply() function.
Chris@0 45 */
Chris@0 46 public function testApply() {
Chris@0 47 $data = ['p1' => 1, 'p2' => TRUE, 'p3' => 'text'];
Chris@0 48 $this->assertTrue($this->image->apply('my_operation', $data), 'Function returned the expected value.');
Chris@0 49
Chris@0 50 // Check that apply was called and with the correct parameters.
Chris@0 51 $this->assertToolkitOperationsCalled(['apply']);
Chris@0 52 $calls = $this->imageTestGetAllCalls();
Chris@0 53 $this->assertEqual($calls['apply'][0][0], 'my_operation', "'my_operation' was passed correctly as operation");
Chris@0 54 $this->assertEqual($calls['apply'][0][1]['p1'], 1, 'integer parameter p1 was passed correctly');
Chris@0 55 $this->assertEqual($calls['apply'][0][1]['p2'], TRUE, 'boolean parameter p2 was passed correctly');
Chris@0 56 $this->assertEqual($calls['apply'][0][1]['p3'], 'text', 'string parameter p3 was passed correctly');
Chris@0 57 }
Chris@0 58
Chris@0 59 /**
Chris@0 60 * Test the image_apply() function.
Chris@0 61 */
Chris@0 62 public function testApplyNoParameters() {
Chris@0 63 $this->assertTrue($this->image->apply('my_operation'), 'Function returned the expected value.');
Chris@0 64
Chris@0 65 // Check that apply was called and with the correct parameters.
Chris@0 66 $this->assertToolkitOperationsCalled(['apply']);
Chris@0 67 $calls = $this->imageTestGetAllCalls();
Chris@0 68 $this->assertEqual($calls['apply'][0][0], 'my_operation', "'my_operation' was passed correctly as operation");
Chris@0 69 $this->assertEqual($calls['apply'][0][1], [], 'passing no parameters was handled correctly');
Chris@0 70 }
Chris@0 71
Chris@0 72 /**
Chris@0 73 * Tests image toolkit operations inheritance by derivative toolkits.
Chris@0 74 */
Chris@0 75 public function testDerivative() {
Chris@0 76 $toolkit_manager = $this->container->get('image.toolkit.manager');
Chris@0 77 $operation_manager = $this->container->get('image.toolkit.operation.manager');
Chris@0 78
Chris@0 79 $toolkit = $toolkit_manager->createInstance('test:derived_toolkit');
Chris@0 80
Chris@0 81 // Load an overwritten and an inherited operation.
Chris@0 82 $blur = $operation_manager->getToolkitOperation($toolkit, 'blur');
Chris@0 83 $invert = $operation_manager->getToolkitOperation($toolkit, 'invert');
Chris@0 84
Chris@0 85 $this->assertIdentical('foo_derived', $blur->getPluginId(), "'Blur' operation overwritten by derivative.");
Chris@0 86 $this->assertIdentical('bar', $invert->getPluginId(), '"Invert" operation inherited from base plugin.');
Chris@0 87 }
Chris@0 88
Chris@0 89 }