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 }
|